关于寻址方式的疑惑
本帖最后由 bu_gui 于 2013-8-9 21:57 编辑我想问下,在有的书中有mov ax,类似的语句,这种寻址方式如何解释啊! 带比例因子的寻址方式。
在8086汇编下是没有的,80X86增加的寻址方式。
16位 ,一个基址寄存器,一个变址寄存器,一个偏移量。这两个寄存器都是16位的,不能是8位。
32位 ,显然其中的1可以省略不写,它是比例因子,可以是1,2,4,8,······`.
这两个寄存器都是32位的,不能是16位。
假如你有一个数组,每个元素为8字节。
edi 增加1, 就会指向下一个元素的第2个字节(有个偏移量2)
再看,
先add dei,8
同样会指向下一个元素的第2个字节
我想这不是数学公式的简变换,而是新增的硬件上支持的为更方便,更具执行效率的做法。 哪里写的?我目前学到第十章没有看到这种寻址方式,而且把这条寻址方式写入编译器,编译的时候会报错。
你是不是看错了呢,还是书写错了,还是我还是一个菜鸟:sweat: 这类似于c语言的数组 bx里边的值+ax里边的值*4 然后+2 最终的值做为偏移地址。段加偏移寻到物理地址里边的值(由于是ax所以是一个字两个字节给了ax)。 就是 把段地址(默认应该是DS)的值*16(H)+(bx+ax*4+2) 所得到的值 这个内存单元里的值赋值给ax 很简单呀,不知道bx是几,估计应该是0吧 [ ]中的内容其实非常容易理解,无非就是把数据段ds对对应的[ ]中的便宜地址中的数据,存放到ax中
但是为什么这么设计呢,个人理解,可能是为了硬件上的便利~ {:5_109:}朋友请参阅~~~~{:7_148:}8086汇编语言七种寻址方式 {:5_107:}..................... 只为升级,,不用理我:loveliness::loveliness::loveliness:
页:
[1]