今天写了个8086的汇编程序,以此来说明汇编及常用工具的使用。
1、首先建一个汇编源文件test.asm,用记事本编辑
data SEGMENT
string DB 'hello,world!$'
data ENDS
code SEGMENT BYTE
ASSUME CS:code,DS:data
main:
MOV AX,data
MOV DS,AX
LEA DX,string
MOV AH,09h
INT 21h
MOV AH,4ch
INT 21h
code ENDS
END main
2、使用masm进行编译。masm.exe可以直接双击运行,也可以在命令窗口下运行。下面以双击示例
键入test[.asm]enter
键入[test][.obj]enter
键入test[.lst] enter 为了生成.lst文件,直接enter则不生成.lst文件
键入test[.crf] enter同上
这时如果源文件没有错误,则生成test.obj、test.lst、test.crf三个文件,可用记事本打开test.lst文件,看看里面的内容
3、使用link进行链接。link也有两种用法,现也以双击运行为例
键入test[.obj] enter
键入[test][.exe] enter
键入test[.map] enter 直接enter将不生成.map文件
由于没用到.lib文件,故下一个直接enter,这时将生成test.exe、test.map文件。可打开test.map查看内容。
收获:以前只知道用masm、link生成目标文件和可执行文件,不清楚其他文件的作用,也即是对汇编过程的不了解。
了解汇编过程对于学习汇编会有很大帮助,刚才生成的.lst文件和.map文件对于分析汇编过程帮助很大。学习一定要有专研
精神。