1.编写汇编代码并将代码文件命名为以.asm结尾的文件,我命名的是huibian.asm。
程序功能:计算2的三次方
assume cs:abc//定义代码段地址
abc SEGMENT
MOV ax, 2;//将2送入ax寄存器
ADD ax, ax;//ax=ax*2
ADD ax, ax;//ax=ax*2
MOV ax, 4c00h;//将ax寄存器的值放入4000h的内存中
INT 21h;//21号中断调用
abc ends
end//程序结束
2.打开vscode的Dos系统(下载MASM插件)
3.可以输入指令cls清空屏幕,方便观察。然后输入masm huibian.asm。这里是对文件进行编译。
出现了assembling:huibian.asm说明编译成功,会生成huibian.obj文件,即二进制目标文件。
4.执行命令行link huibian.asm,这里的意思是链接程序执行中需要用到的库函数。
这里出现了四个链接库,由于我的程序不需要用到,所有都选择回车跳过。 这时候会在当前文件夹下生成huibian.exe文件。
5.运行huibian.exe文件,然后观察内存。
可以直接用huibian.exe指令执行这个文件,为了方便演示,我选择用单步执行的方式进行运行。 可以看到,ax最后等于0008H,说明程序运行成功。然后现在用p命令退出程序(当遇到INT中断时,要使用p命名执行,而不能使用t命令) 程序正常退出。
6.总结
1.首先通过文本编辑器写出huibian.asm文件。
2.然后通过MASM.exe将huibian.asm文件编译为机器码文件,即huibian.obj文件。
3.然后在链接为exe文件。
4.执行exe时,操作系统的cmd会将exe文件写入空闲内存,并修改DS寄存器,然后装入64B(100H)的PSP文件,修改CS寄存器的值为DS+10H,IP寄存器的值为0。
5.然后CPU开始根据CS:IP的地址开始运行程序。
|