. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
主题 : :  为什么在debug里就不需要bx啦?  [已解决] 回复[ 3次 ]   点击[ 278次 ]  
regex
[帖 主] [ 发表时间:2009-12-31 23:31 ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
我在学习第五章5.3的时候, 按照书上的思路用debug做了实验, 在debug里
1:mov ax,ffff
2:mov ds,ax
3:mov ax,[6]
4:mov ah,0
5:mov dx,0
6:add dx,ax
这样写, 调试到第三句的时候debug显示:MOV AX,[0006] ,调试正确, 
而通过masm编译的话, 这里变成了MOV AX,0006, 相当于给AX赋值啦!
当然标准写法是书上的, 我也基本理解, 不过就是想问问而已。 谢谢大家, 顺祝新年好
imjihye
[第1楼] [ 回复时间:2010-01-01 10:59 ] 
荣誉值:0
信誉值:0
注册日期:2010-01-01 10:35
当你看5.4就知道原因了   在masm编译的时候MOV AX,[0006]相当与MOV AX,0006  而debug里对MOV AX,[0006]的解释不变
要想在masm编译的时候不改变程序的愿意有2中方法
1.mov ax,0ffffh
  mov ds,ax
  mov bx,6
  mov ax,[bx]
按照上面的显然有些麻烦
2.利用段前缀
mov ax,0ffffh
mov ds,ax
mov ax,ds:[6]
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved