程序员汇编语言

debug和masm编译的区别

2018-08-07  本文已影响12人  柠檬就是酸

先新建asm文档,写出如下代码:

assume cs:codeseg
codeseg segment
zhaochenyu:mov ax,2000H
           mov ds,ax
           mov al,[0]
           mov bl,[1]
           mov cl,[2]
           mov dl,[3]

           mov ax,4c00H
           int 21H
codeseg ends
end zhaochenyu 
然后在dosbox中进行编译链接, 1.png

此时,debug这个程序,输入:

debug 2.exe

在debug中查看寄存器状态并使用d命令查看段地址2000,偏移地址为0的空间内容,一共四个字节:

2.png

接下来t命令单步执行程序:

3.png 注意看到指令变成了mov BL,01,下一步中BL被赋值成了01,而不是将段地址ds为2000,偏移地址为1的内存单元中的内容赋值到了BL中,使用u命令查看: 4.png

可以看出来,中括号[]是没用的。

但是在debug中使用a命令写指令中括号[]就有用了。

可以看出来,在debug中写命令和用编辑器写好asm文件然后masm编译是不一样的。具体原因在onenote中。

上一篇下一篇

猜你喜欢

热点阅读