曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5863|回复: 0
打印 上一主题 下一主题

[8086] 使用MASM5

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2009-3-31 23:47:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-20 10:54 , Processed in 0.074518 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表