bu_gui 发表于 2013-8-9 21:55:29

关于寻址方式的疑惑

本帖最后由 bu_gui 于 2013-8-9 21:57 编辑

我想问下,在有的书中有mov ax,类似的语句,这种寻址方式如何解释啊!

Dardy 发表于 2013-8-9 21:55:30

带比例因子的寻址方式。
在8086汇编下是没有的,80X86增加的寻址方式。
16位   ,一个基址寄存器,一个变址寄存器,一个偏移量。这两个寄存器都是16位的,不能是8位。

32位   ,显然其中的1可以省略不写,它是比例因子,可以是1,2,4,8,······`.
                                       这两个寄存器都是32位的,不能是16位。
假如你有一个数组,每个元素为8字节。

edi 增加1, 就会指向下一个元素的第2个字节(有个偏移量2)

再看,
先add dei,8
同样会指向下一个元素的第2个字节
我想这不是数学公式的简变换,而是新增的硬件上支持的为更方便,更具执行效率的做法。

小咒 发表于 2013-8-10 03:33:14

哪里写的?我目前学到第十章没有看到这种寻址方式,而且把这条寻址方式写入编译器,编译的时候会报错。
你是不是看错了呢,还是书写错了,还是我还是一个菜鸟:sweat:

海柯 发表于 2013-8-10 10:27:03

这类似于c语言的数组

Crazy迷恋. 发表于 2013-8-10 10:56:07

bx里边的值+ax里边的值*4 然后+2 最终的值做为偏移地址。段加偏移寻到物理地址里边的值(由于是ax所以是一个字两个字节给了ax)。

牡丹花下死做鬼 发表于 2013-8-10 10:59:45

就是 把段地址(默认应该是DS)的值*16(H)+(bx+ax*4+2) 所得到的值 这个内存单元里的值赋值给ax

1236 发表于 2013-8-10 15:04:14

很简单呀,不知道bx是几,估计应该是0吧

wangjie5540 发表于 2013-8-11 11:07:53

[ ]中的内容其实非常容易理解,无非就是把数据段ds对对应的[ ]中的便宜地址中的数据,存放到ax中

但是为什么这么设计呢,个人理解,可能是为了硬件上的便利~

Crazy迷恋. 发表于 2013-8-22 23:01:57

{:5_109:}朋友请参阅~~~~{:7_148:}8086汇编语言七种寻址方式

蒍嗳變乖/ka 发表于 2013-8-24 11:51:34

{:5_107:}.....................

绝世公子 发表于 2013-8-24 18:11:55

只为升级,,不用理我:loveliness::loveliness::loveliness:
页: [1]
查看完整版本: 关于寻址方式的疑惑