计算机组成原理——9种常用寻址方式
R=寄存器,E=有效地址,S=操作数,(A)=A中的内容,代码不特别说明表示8086汇编语言,PC=程序计数器(指向当前指令的下一条)
计算机组成原理——9种常用寻址方式1、常用寻址方式2、寻址方式介绍1) 隐含寻址2)立即寻址3)寄存器直接寻址4) 寄存器间接寻址5) 直接寻址6) 间接寻址7)相对寻址8)基址寻址9) 变址寻址
3、寻址空间大小
1、常用寻址方式
隐含寻址立即寻址寄存器直接寻址寄存器间接寻址直接寻址间接寻址相对寻址基址寻址变址寻址
2、寻址方式介绍
1) 隐含寻址
含义:操作数隐含的由累加器给出。(即某指令由固定的操作数,不需要给出) 例子:8086汇编语言 CWD;把AX中的内容按符号位拓展成DX,AX双字
2)立即寻址
含义:指令中直接给出相应的操作数。 例子: MOV AX,1234H;——1234H就是采用立即寻址
3)寄存器直接寻址
含义:指令中给出寄存器号R,操作数存放在R中 E=R,S=(E)=( R ) 例子:MOV AX,BX——操作数在BX中
4) 寄存器间接寻址
含义:指令中给出寄存器号R,R中存放操作数的有效地址 E=( R ),S=(E)=(( R )) 例子:MOV AX,[SI]
5) 直接寻址
含义:指令中给出操作数的有效地址 E=A,S=(E)=(A) 例子:MOV AX,[1234H]
6) 间接寻址
含义:指令中给出存放有效地址E的存储单元地址。 E=(A),S=(E)=((A)) 理论上讲可以多次间接寻址,但大多数计算机只允许一次(由于A的寻址范围不足以覆盖整个存储空间)
7)相对寻址
含义:指令中给出相对于PC的偏移量A E=(PC)+A,S=(E)=((PC)+A) 注:A是个带符号数,一般用补码表示,若A的位数与PC不一致,需要带符号填充。
8)基址寻址
含义:指令中给出相对于基址寄存器R的偏移量 E=( R )+A,S=(E)=(( R )+A) 注:A是个带符号数,一般用补码表示,若A的位数与R不一致,需要带符号填充。
9) 变址寻址
含义:指令中给出相对变址寄存器R的偏移量 E=( R )+A,S=(E)=(( R )+A) 注:A是个带符号数,一般用补码表示,若A的位数与R不一致,需要带符号填充。
3、寻址空间大小
设定机器字长位n,A的位数位m
寻址方式寻址大小直接寻址2m-1寄存器间接寻址2n-1间接寻址2n-1相对寻址2n+2m-2基址寻址2n+2m-2变址寻址2n+2m-2