曲径通幽论坛

标题: 使用MASM5 [打印本页]

作者: beyes    时间: 2009-3-31 23:47
标题: 使用MASM5
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]




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2