微机原理笔记——寻址方式

寻址方式

数据寻址方式

1.立即寻址

定义

指令中直接给出操作数,操作数紧跟在操作码之后

立即寻址方式常用来寄存器赋初始值并且只能用于源操作数,不能用于目的操作数

评价

立即寻址不需要额外的存储器访问,因为访问速度快,但是需要占用较多的字节

实例
MOV AL,34H

执行指令后,立即数34H送入AL寄存器中

MOV AX ,8726H
直接寻址

2.寄存器寻址

定义

将操作数存放在CPU内部的寄存器中,由指令指定寄存器号,可用于该寻址方式的寄存器可以是通用寄存器和段寄存器,但是代码段寄存器CS不能做为目的操作数

评价

因为寄存器数目远少于存诸器单元的数目,所以减少了字节数,有因为指令的操作都在CPU内部进行,不需要访问存储器,因此执行速度很快

实例
MOV AX,BX

若指令执行前AX=1234H,BX=5678H

则执行指令后,AX=5678H,BX=5678H

3直接寻址

定义

指令中直接给出操作数的有效地址,操作数一般会放在数据段(DS)中,但也可以放在其他段中,具体要放在哪一段,应通过段跨越前缀决定

评价

搜索范围广

实例

若数据放在数据段中

MOV AX,DS:[3000H]

指令中给出了操作数的有效地址3000H,对应的段寄存器是DS。如DS=2000H,则源操作数在数据段中的物理地址为2000H*16+3000=23000H

假设23000H单元的值为10H,23001H单元的值为20H

执行指令后 AX=2010H,AH=20H,AL=10H

4.寄存器间接寻址

定义

操作数的有效地址放在基址寄存器(BX,BP)或者变址寄存器(SI,DI)或者通用寄存器

如果将有效地址放在BP或者SP中,则默认段寄存器是SS

其他为DS

评价

方便处理一维数组或者表格的问题,通过执行指令访问一个单元之后,只需要修改用于间接寻址的寄存器就可以访问后续的内容了

实例
MOV AX,[BX]

若DS=3000H,BX=1000H,则源操作数的地址为3000H*16+1000H=31000H

5.寄存器相对寻址

定义

操作数的有效地址是一个基址寄存器(BX,BP)或者变址寄存器(SI,DI)或者通用寄存器和指令中指定的一个偏移量(Displacement)之和

实例
MOV AX,[SI+Disp]

若DS=1000H,SI=2000H,Disp=3000H

所以物理地址为1000H*16+2000H+3000H=15000H

6.基址变址寻址

定义

该寻址方式的有效地址是一个基础寄存器(BX,BP)和一个变址寄存器(SI,DI)

变址部分也可使用通用寄存器(除SP)

默认段寄存器的选择由所选用的基础寄存器所决定,如果是BP或SP,则选用SS,剩下的为DS

实例
MOV AX,[BX+SI]

若DS=2000H,BX=1000,SI=200H

则有效地址EA=1000H+200H=1200H

物理地址为2000H*16+1200H=21200H

7.相对基址变址寻址

定义

操作数的有效地址是一个基址寄存器(BP,BX)和一个变址寄存器(SI,DI)的内容和一个偏移量之和

评价

可以访问二维数组

实例
MOV AX,[BX+SI+Disp]

转移地址的寻址方式

1.段内直接寻址

定义

转移地址是代码段寄存器CS加上指令指针IP加上Disp

JMP DISP            ;设CS=2000H,IP=1000H

若Disp为50

所以转移地址为2000H*16+IP+Disp=21050H

2.段内间接寻址

JMP BX;程序转移的目的地址为BX中的内容
JMP VAR1;程序转移的目的地址为字型变量VAR1的内容
JMP VAR1[SI];程序转移的目的地址在存储器,其有效地址为(SI)+OFFSET VAR1

3.段间直接寻址

JMP LABEL;程序转移到LABEL处执行(LABEL不在本段中),CS,IP同时改变

4.段间间接寻址

JMP VAR3;程序转移的目的地址为双字型变量VAR3中的内容,其中,第一个字是目的地址的偏移地址,第二个字是目的地址的段地址
JMP VAR3[SI];目的地址保存在存储器中,其有效地址为(SI)+OFFSET VAR3
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值