王爽汇编+25
在8086平台,debug工具和汇编源程序编译器对指令的解释会有差别。
例如我们将内存单元2000:0、2000:1、2000:2和2000:3的内容分别送到寄存器al、bl、cl和dl中。
debug工具里的实现:
在汇编源程序里实现然后编译连接再debug查看
可以看见2者在处理[0],[1],[2],[3]内存单元的数据时明显不同,debug工具能正确的理解这是内存单元的偏移地址,但是汇编源程序编译器编译后把它当作立即数了,方括号莫名其妙没了
要想汇编源程序编译器能正确识别的解决办法有2种:
1,使用bx寄存器中转,既先将内存单元偏移地址送人bx寄存器,再传通过[bx]送入al,bl,cl,dl中
2,显示声明数据段ds寄存器 ,既把原来的[0]改成ds:[0]
显然大多数人更愿意用第二种,当然用哪一种随便你
我这里分别试试2种
使用bx寄存器中转
这时方括号就出来了,说明被正确识别为内存单元偏移地址了
使用ds段寄存器显示声明
此时已经正确识别了。