. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  为什么在debug里就不需要bx啦?  [已解决] 回复[ 3次 ]   点击[ 277次 ]  
regex
[帖 主]   [ 发表时间:2009-12-31 23:31 ]   [引用]   [回复]   [ top ] 
荣誉值: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 ]   [引用]   [回复]   [ top ] 
荣誉值: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]
regex
[第2楼]   [ 回复时间:2010-01-01 12:25 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
哦, 还没看到那呢~~, 多谢老兄指点, 顺祝元旦好
regex
[第3楼]   [ 回复时间:2010-01-01 15:30 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
此贴由 贴主 于 [ 2010-01-01 15:30 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved