Oaer、廆、 发表于 2013-4-18 18:18:25

程序5.3的小问题bs:bx

先上上不懂的代码
                            mov ax,0fffh
                            mov ds,ax
                            mou bx,6
                            mov al,
                      此时的值为什么是ds:bx呢?
             明明bx是寄存器,但为什么可以做偏移地址?
         如果寄存器bx可以做偏移地址、那么ax、cx、dx等寄存器都可以做偏移地址嘛?

Oaer、廆、 发表于 2013-4-18 18:22:43

不好意思,标题打错了是ds:bx。

C习生 发表于 2013-4-18 18:46:32

前排学习    强烈支持楼主ing……

724464865 发表于 2013-4-18 20:02:18

感恩无私的分享与奉献 :)

小名明SIU 发表于 2013-4-18 23:20:57

物理地址=段地址+偏移地址,就是说除了段地址,剩下的就是偏移地址了,,这个是寄存器间接寻址,就是把内存的物理地址的偏移地址放在bx里,段地址放在ds里(默认的),也可以加上段前缀,这个时候段地址就是段前缀的段寄存器的内容了,默认情况下和ds:bx(也可以是ds:这种形式)是一样的。还有就是在8086也就是16位的时候寄存器间接寻址的寄存器只能是bx bp si di ,32位时代可以是eax ebx ecx edxesi edi ebp esp。希望对你有用

紫色/tp雲天 发表于 2013-4-18 23:41:01

mov ax,0fffh
mov ds,ax
mou bx,6
mov al,

你的最后一个代码是不是错了,mov al, 这个从来没见过。。。
页: [1]
查看完整版本: 程序5.3的小问题bs:bx