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命令写指令中括号[]就有用了。