指令寻址方式(二)

以下为存放于存储器中的寻址方式:
1、直接寻址:指令中直接给出操作数在内存中的偏移地址

 eg:MOV  AX,[1200H]

将偏移地址1200H传送给AX(AX是16位寄存器)

 直接寻址方式下,操作数默认在数据段,但允许段重设,即由指令给出所在逻辑段

 eg:MOV  AX,ES: [1200H]。           ES: 段重设符

2、寄存器间接寻址:操作数存放在内存中,数据在内存中的偏移地址为方括号中通用寄存器的内容 。

仅有4个通用寄存器可用于存放数据的偏移地址。(BX,BP,SI,DI命名为:间址寄存器)间接寻址的一般格式为:[间接寄存器]

 eg:MOV  BX , 1200H

          MOV  AX , [BX]

操作数的段地址(数据处于哪个段)取决于选择哪一个简址寄存器:

     BX,SI,DI      →     默认在数据段

     BP               →     默认在堆栈段

3、寄存器相对寻址:操作数的偏移地址为寄存器的内容加上一个位移量

     eg:MOV  AX ,[BX+DATA]

DATE为任意8bit或16bit常数,段地址由所选间址寄存器决定

     eg:MOV  AX ,2000H       立即寻址,把2000H常数直接传输给AX

             MOV  DS ,AX              寄存器间接寻址,把AX传输给DS

             MOV  BX ,1200H        立即寻址,把1200H常数传输给BX

             MOV  AL ,[BX]5          寄存器相对寻址,BX偏移地址+5传输给AL

4、 基址、变址寻址:操作数的偏移地址为,一个基址寄存器的内容 + 一个变址寄存

       器的内容

操作数的段地址由选择的基址寄存器决定

基址寄存器为BX,默认在数据段

基址寄存器为BP,默认在堆栈段

基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。

       eg:MOV  SI , 1100H

               MOV  BX, SI

               MOV   AX , [SI + BX]         也可表示为[BX][SI]

5、基址、变址、相对寻址:操作数的偏移地址为,基址寄存器内容+变址寄存器内容+位移量

 操作数的段地址由选择的基址寄存器决定

 基址变址相对寻址方式主要用于二维表格操作。

       eg:MOV DI ,1100H

               MOV  BP, DI

               MOV  AL ,[BP][DI]5       因为基址寄存器选择BP,表示操作数在堆栈段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值