8086七种寻址方式

寻址方式的速度是由指令周期决定的,写一个效率高的程序也就需要了解这些不同指令执行的速度

指令周期:是取出一条指令并执行这条指令的时间

查询指令执行的表可以看出寻址方式排序如下

                                           指令周期

1.寄存器寻址                          2
2.立即数寻址                          4
3、寄存器间接寻址方式         13  
4、直接寻址方式                    14
5、基址变址寻址方式             16
6、寄存器相对寻址方式          17
7、相对基址变址寻址方式       20 

1寄存器寻址

 操作数在CPU的寄存器中,指令指定寄存器号,这种寻址速度快,它不需要访问存储器中的操作数,因为所有的操作数都在寄存器中,例子如下

mov ds,ax

2立即数寻址    

操作数在指令中,紧跟在操作码之后,这样的操作数成为立即数    

mov ax,1122h

3寄存器间接寻址方式

操作数在存储器中,操作数有效地址在SI,DI,BX,BP这四个寄存器之一中,在默认情况下,如果有效地址在SI,DI和BX中,则以DS段寄存器之内容为段值。如果有效地址在BP中,则以SS段寄存器之内容为段值

mov ax,[di]     mov ax,[si]  mov ax,[bx] 默认在ds中

mov ax,[bp]    默认在ss中

4直接寻址方式

操作数在存储器中,操作数的地址中的偏移量直接跟在操作码之后,默认情况下基址存放在DS中,这个时候不需要加前缀,如果是加了别的前缀,如ss,则表示基址在ss中

mov ax,[1000h]

5基址变址寻址方式

操作数在存储器中,操作数的地址在基址寄存器和变址寄存器中

bx+si/di        bp+si/di

mov ax,[bx+si] / [bx+di] /[bp+si] /[bp+di]

6寄存器相对寻址方式

操作数在存储器中,操作数有效地址在SI,DI,BX,BP这四个寄存器加上偏移量

mov ax,[bx+offset]    / [bp+offset]    /[si+offset]    / [di+offset]

7相对基址变址寻址方式

操作数在存储器中,操作数的地址在基址寄存器和变址寄存器加上偏移量

mov ax,[bx+si+offset]   /[bx+di+offset]    /[bp+si+offset]        /[bp+di+offset]

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值