微机原理==Pentium(奔腾)的指令系统(4)

来源:互联网 发布:企业工商数据api 编辑:程序博客网 时间:2024/09/21 08:57

什么叫寻址方式?

形成操作数或指令地址的方式,称为寻址方式

寻址方式可以分为哪两类?

操作数寻址和指令寻址

什么叫操作数寻址方式?

形成操作数的有效地址(EA)的方法

什么叫有效地址(EA)?

在8086/8088中,操作数在内存中的有效地址是段的偏移地址。

综上所述,操作数寻址是指找到操作数的来源,而操作数的来源有很多

操作数的来源有哪四种?

①直接由指令本身提供
②由寄存器提供
③由输入端口提供
④由存储器提供

反过来说,操作结果就可以有四种寻址方式

操作数寻址方式可以再细分为哪四种方式?

①立即数寻址
②寄存器寻址
③输入/输出端口寻址
④存储器寻址

立即数寻址方式

操作数就在指令中提供
立即数寻址的操作数都存放在主存中的代码段CS

//而别的寻址方式的操作数都存放在数据段或者是堆栈段

存放的时候都是小端存放,主存是上面是低位,下面是高位,而操作数是先读的那部分写在底部,即对应着主存的高位,后读的那部分写在上部,对应着主存的低位。

8086的立即数寻址时,操作数前面不用加#,如果操作数的首位是一个字母,则在前面添加一个0

MOV AL,2000H

注意:
①2000H作为源操作数,是不能够作为目的操作数的。
②他的目的操作数是AL。即立即数寻址一般用于对寄存器赋值
③立即数寻址不需要总线周期,所以速度非常快

寄存器寻址方式

操作数存放在CPU内部寄存器中,对寄存器进行操作

8位操作数对应的寄存器:AH,AL,BH,BL,CH,CL,DH,DL
16位操作数对应的寄存器:AX,BX,CX,DX,SI,DI,SP,BP
32位操作数对应的寄存器:EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP
4个段寄存器:CS,DS,SS,ES

INC CX//将CX的内容加1

注意:
①寄存器寻址不使用总线周期,速度非常快
②可对源操作数用寄存器寻址,也可对目的操作数用目的寻址,还可两者都用寄存器寻址。

存储器寻址

存储单元的地址由段基址和偏移量组成
EA = 基址 + 变址 * 比例因子 + 位移量

基址:任何通用寄存器的内容
位移量:指令操作码后面的数
变址:除了ESP外的寄存器,别的通用寄存器
比例因子:1,2,4或者8

存储器寻址可以细分为哪几种寻址? ##

直接寻址,寄存器间接寻址,寄存器相对寻址,基址加变址的寻址,相对的基址加变址寻址,相对的带比例因子的编制寻址,基址加比例因子的编制寻址和相对的基址加比例因子的变址寻址

直接寻址

有效地址在指令中直接给出,在方括号内,操作数默认在主存的数据段中

寄存器间接寻址

有效地址在寄存器SI/DI/BX/BP中
若在SI、DI、BX中,则操作数默认在主存的数据段中
若在BP中,则操作数默认在主存的堆栈段中

寄存器相对寻址

存在位移量DISP
有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP、SI、DI。
对应BX/SI/DI,则操作数默认在主存的数据段中
对应BP,则操作数默认在主存的堆栈段中

例题:已知(DS )=2000H,(SS)=3000H ,(BP)=5648H,(DI )=1234H,求访存的物理地址。 MOV AX,[DI+06H] MOV AX,[BP+06H]
DI+06H = 123AH
20000+123A = 2123AH
BP + 06H = 564EH
30000+564EH = 3564EH

//DS是数据段基址,SS是堆栈段基址//不管DS有没有括号,都是指寄存器的内容,其他类似。
0 0
原创粉丝点击