1、找到一段起始地址为SA:0000(即起始地址的偏移地址为0)的容量足够的空闲内存区。
2、在这段内存区的前256个字节中,创建一个称为程序段前缀(PSP)的数据区,DOS利用PSP来和被加载程序进行通信。
3、从这段内存区的256字节处开始(在PSP的后面),将程序装入,程序的地址被设为SA+10H:0;空闲内存区从SA:0开始,0~255字节为PSP,从256字节处开始存放程序,为更好地区分PSP和程序,DOS将划分到不同的段中,如下这样的地址安排:
空闲内存区:SA:0
PSP区:SA:0
程序区:SA+10H:0
注意:PSP区和程序区虽然物理地址连续,却有不同的段地址。
4、将该内存区的段地址(SA)存入DS中,初始化其它相关寄存器后,设置CS:IP指向程序的入口(SA+10H:0)。
要运行汇编程序,可以有很多的方法,也可以用一些专门的软件,但众所周知,汇编的话,是即使用记事本也是可以写出来然后在DOS环境下运行的,只要有MASM.EXE和LINK.EXE即可,当我们在记事本里写好汇编程序时,应把它保存成.asm的格式,如sort.asm,然后在开始->运行中输入cmd,转到你存放程序的文件夹,最好所有的文件都是用英文命名,如我的是在D盘的huibian文件夹中
2.然后再输入masm 以及你的文件名敲回车,再在默认的情况下连敲三次回车,此时如果有错误和提醒,它会显示,否则就是 0,如图
3.再输入link 以及你的文件名,连敲几次回车,这时电脑会自动生成一个你的文件的目标文件,如我的文件名是maxxx
4.这时,你就可以直接运行程序 了,如我的运行结果为0054
5.当然,如果你觉得你的程序有问题,也可以用debug 进行调试,输入u可以直接看到你的每一步指令,直到出现最后一条 int 21h 为止,记住它前面的地址码,用g跳转可以直接执行到最后一步看到最后结果,如图
①安装好dosbox,然后找到“dosbox...options.bat”,双击它,(别急着点dosbox.exe)。
图1
②在d出的文本编辑器(如,记事本)中调整设置,找到[autoexec]所在行,添加两行(以d:\为例):
mount c: d:\
c:
图2
③下载并安装好nasm(一种小的汇编软件)
建议在dosbox中汇编并运行(按图3下文件、打开、解到d:\123);也可以在windows下汇编,dosbox里运行(这个我之前写过……)
图3
④打开dosbox,依次输入命令
cd 123
nasm
可以看到nasm安装成功并且能使用了,下一步是准备汇编代码
⑤在d:\123目录下新建一个文本文档123.txt
输入以下代码并保存(XXX可以随便改,$符号要保留)
org 256
jmp begin
s db 'hello, world! @author: XXX$'
begin:
mov dx,s
mov ah,9
int 21h
mov ax,4c00h
int 21h
⑥在dosbox的黑窗口里面继续输入以下命令
nasm 123.txt -o 123.com
123
然后就可以看到输出的字符串
hello, world! @author: XXX
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)