寻址方式
简介
直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址,这五种寻址方式属于存储器寻址,用于说明操作数所在存储单元的地址。由于总线接口单元BIU能根据需要自动引用段寄存器得到段值,所以这五种方式也就是确定存放操作数的存储单元有效地址EA的方法。有效地址EA是一个16位的无符号数,在利用这五种方法计算有效地址时,所得的结果认为是一个无符号数。 除了这些基本的寻址方式外,还有固定寻址和I/O端口寻址等。
特点
1:寄存器直接寻址: 你就想成:其实你已经站在你要找的"门户号(家)"面前了,直接敲门进去就OK了! 例子: MOV AX,【2000H】 MOV AX,2000H --2000H为存放操作数单元号的符号地址 上面两者是不等效的 2:寄存器间接寻址方式: 你就想成:你已经站在你要找的"门户号(家)"的"单元号",你要找到它,必须知道它在当前"单元号"几楼.假如它在6楼,那你就上到6楼就OK了!!注意,最高只有16楼,因为什么呢?那就用DEBUG的D命令看看呀,慢慢数哦,呵呵!! 例子: MOV AX,【BX】 计算公式: 物理地址=16d*(DS)+(BX) 物理地址=16d*(DS)+(SI) 物理地址=16d*(DS)+(DI) 物理地址=16d*(SS)+(BP) 3:寄存器相对寻址方式: 你就想成:你要找的"门户号(家)"其实就在你家的楼上或者楼下,你要找到它,就 必须知道它在你楼上几楼,或者在楼下几楼!就OK了! 例子: MOV AX,COUNT【SI】 MOV AX,【COUNT+SI】 其中 COUNT为位移量的符号地址 计算公式: 物理地址=16d*(DS)+(BX)+8位位移量 或+(SI) 或 16位位偏移量 或+(DI) 物理地址=16d*(SS)+(BP)+8位偏移量 4:基址变址寻址方式: 你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",你要找到它,就必须知道它是该栋的哪个"单元号",并且住在几楼!那样你就可以找到它了 ! 例子: MOV AX,【BX】【DI】 MOV AX,【BX+DI】 计算公式: 物理地址=16d*(DS)+(BX)+(SI) 或+(DI) 物理地址=16d*(SS)+(BP)+(SI) 或+(DI) 5:相对基址变址寻址方式: 你就想成:你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",它比你高几层楼或者低几层楼,然后用的你目前的楼数+/-就可以得出你要找的住在几楼了! 例子: MOV,AX,MASK【BX】【SI】 MOV,AX,MASK【BX+SI】 MOV,AX,【MASK+BX+SI】 以上三个例子是等效的!! 计算公式: 物理地址=16d*(DS)+(BX)+(SI)+8位位移量 或+(DI) 或 16位位偏移量 物理地址=16d*(SS)+(BP)+(SI)+8位位移量 或+(DI) 或 16位位偏移量