|
1、编译文件:
其中, Source listing [NUL.LST]: _
编译程序提示输入列表文件名称,这个文件是编译器将源程序编译为目标文件过程中产生的中间结果。可以让编译器不生成这个文件。
Cross_reference [NUL.CRF]: _
编译程序提示输入交叉引用文件的名称,这个文件同列表文件一样,是编译器将原程序编译为目标文件过程中产生的中间结果。可以让编译器不生成这个文件。
2、链接文件
.MAP 是镜像文件,可以忽略生成
.LIB 是库文件。库文件中包含了一些可以调用的子程序,如果程序中调用了某一个苦文件中的子程序,就需要在链接的时候,将这个库文件和我们的目标文件链接到一起,生成可执行文件。
3、简捷的编译连接过程
编译:
masm c:\test; (注意,语句后面有一个分号)
这样,就会在 masm.exe 所在的目录下生成目标文件 test.obj,并在编译的过程中自动忽略中间文件的生成。
连接:
link test;
这样,在当前路径生成 test.exe 。自动忽略中间文件的生成。
4、Debug 和 MASM 对汇编指令不同的处理
在Debug中,如 mov ax,[0] 类似指令,表示将 ds:0 处的数据送入 ax 中。
在汇编原程序中, mov ax,[0] 被编译器当作指令 "mov ax, 0” 处理。
假如要原程序中实现将内存 2000:0, 2000:1, 2000:2, 2000:3 单元中的数据送入 al,bl,cl,dl 中,我们可以将偏移地址先送入 bx 寄存器中,用 [bx] 的方式来访问内存单元。如可以这样访问 2000:0 单元:
mov ax,2000h
mov ds,ax
mov bx,0
mov al,[bx]
上面的方法虽然可以,但比较麻烦,更简便的为:
mov ax,2000h
mov ds,ax
mov al,ds:[0] |
|