鱼C论坛

 找回密码
 立即注册
查看: 1751|回复: 5

程序5.3的小问题bs:bx

[复制链接]
发表于 2013-4-18 18:18:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
先上上不懂的代码
                            mov ax,0fffh
                            mov ds,ax
                            mou bx,6
                            mov al,[ds]
                      此时[ds]的值为什么是ds:bx呢?
             明明bx是寄存器,但为什么可以做偏移地址?
           如果寄存器bx可以做偏移地址、那么ax、cx、dx等寄存器都可以做偏移地址嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-4-18 18:22:43 | 显示全部楼层
不好意思,标题打错了是ds:bx。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-18 18:46:32 | 显示全部楼层
前排学习    强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-18 20:02:18 | 显示全部楼层
感恩无私的分享与奉献 :)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-18 23:20:57 | 显示全部楼层
物理地址=段地址+偏移地址,就是说除了段地址,剩下的就是偏移地址了,[bx],这个是寄存器间接寻址,就是把内存的物理地址的偏移地址放在bx里,段地址放在ds里(默认的),也可以加上段前缀,这个时候段地址就是段前缀的段寄存器的内容了,默认情况下[bx]和ds:bx(也可以是ds:[bx]这种形式)是一样的。还有就是在8086也就是16位的时候寄存器间接寻址的寄存器只能是bx bp si di ,32位时代可以是eax ebx ecx edx  esi edi ebp esp。希望对你有用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-18 23:41:01 | 显示全部楼层
mov ax,0fffh
mov ds,ax
mou bx,6
mov al,[ds]

你的最后一个代码是不是错了,mov al,[ds] 这个从来没见过。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 22:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表