编译并进入debug模式

masm是微软出的汇编编译器,支持8088/8086架构的汇编语言,在DOS下运行,需要下载。masm包括:

(1)编辑程序edit.exe

(2)汇编程序masm.exe

(3)连接程序link.exe

(3)调试程序debug.exe

基本使用方法如下,仅供参考:

用之前最好把上面的几个文件保存到盘符下的文件夹里,文件夹名字尽量简单明了,一切为了操作简单。

(1)最好不要用edit.exe,而用记事本编辑汇编程序,这样操作比较方便。保存时,文件类型选为所有文件,再在文件名后面加上.asm,保存即可。

 

 

 1.下载dosbox并安装

   2.举个例子,在D盘新建一个文件夹dosbox,用于存放exe可执行文件
 3、安装DOSBox,完成后双击打开DOSBox
 4、在输入框状态下z:\>
 z:\>mount c d:\
 5、把D盘作为模拟的C文件夹位置
 z:\>c:
 进入c盘

 

敲命令进入masm所在文件夹,输入masm *.asm(*表示文件名)回车。 注意:最好*.asm在当前DOS提示符的路径下面,否则会出现找不到*.asm的提示。

这时会提示

Object filename [*.OBJ]:

表示要生成的目标文件名称,必须填,然后回车。提示

Source listing [NUL.LST]:

表示是否要生成列表文件,填写这生成.lst文件,不填则放弃生成.lst文件。.lst文件用记事本打开能看到源代码的语法错误,查错想当方便,****强烈建议生成****。回车后提示

Cross-reference [NUL.CRF]:

表示生成交叉引用文件.crf,如果有多个.obj文件参与连接就要生成,回车后显示错误数量等信息,编译完成。

(3)输入link *(.obj文件名)

一路回车,返回时已经生成了*.exe。

(4)debug使用比较复杂,将专门介绍。

 6、在输入框状态下c:\>
 c:\>cd dosbox 进入dosbox文件夹。在输入框状态下输入debug *.exe进入debug模式。

 

 

debug:

-g 直接运行程序

-t 执行一句

-d x y, 输出偏移地址为x到y(闭区间)存储的值,都是8个bit的字节

-q 推出debug模式

 

不错的总结:

 

汇编

汇编除法:

对于除数是8位,则被除数是16位存在AX中,除完后,商在AL,余数在AH

对于除数是16位,则被除数是32位存在DX(高位)AX(低位)中,除完后,商在AX,余数在DX

 

把寄存器DL中的数字输出。(可能为1位或者2位数)

https://zhuanlan.zhihu.com/p/50139518

子程序:(1位或者两位十进制数)

PRINT PROC NEAR
PUSH DX
XOR AH,AH
MOV AL,DL
MOV DH,10
DIV DH
CMP AL,0
JZ ONE
PUSH AX
MOV DL,AL
ADD DL,'0'
MOV AH,02H
INT 21H
POP AX
ONE:
MOV DL,AH
ADD DL,'0'
MOV AH,02H
INT 21H

POP DX

RET
PRINT ENDP