一、指令和数据的寻址方式
操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号
在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。
寻找方式:当采用地址指定方式时,形成操作数或指令地址的方式。
寻址方式分为两类:指令寻址和数据寻址。
1)指令寻址:确定下一条预执行指令的指令地址
a、顺序寻址:(PC)+1->PC 程序计数器自动加1
b、跳跃寻址:由转移指令指出

2)数据寻址:确定本条指令的操作数地址

指令中所给出的地址码,并不一定是操作数的有效地址。
寻址过程就是把操作数的形式地址,变换为操作数的有效地址。
例如:一种单地址指令的结构如下所示,其中用X I D各字段组成该指令的操作数地址。

二、寻址方式
1、隐含寻址(操作数在累加寄存器中)
在指令中不明显的给出而是隐含着操作数的地址
例如:单地址的指令格式,没有在地址字段指明第二操作数地址,而是规定累加寄存器AL或AX作为第二操作数地址,AL或AX对单地址指令格式来说是隐含地址
eg: MOV AL ,LSRC_BYTE
MUL RSRC_BYTE
| ADD | 寻址特征 | A |
操作数地址隐含在操作码中,(寻址特征指明寻址类型)。
另一个操作数隐含在ACC中
先在内存中地址为A的地方找到一个操作数,另一个操作数隐含在寄存器ACC里,从ACC里取出另外一个操作数,然后和给出的A地址中的数相加暂存在ACC中。

2、立即寻址
形式地址A就是操作数本身
| OP | 立即寻址特性 # | A |
3、直接寻址
EA=A

直接根据读内存找到操作数,形式地址不需要经过任何处理。
MOV AX,[2222H]:将有效地址为2222H的内存单元的内容读到累加器AX中
4、间接寻址
EA=(A)
有效地址由形式地址间接提供,形式地址是操作数的地址的地址
| OP | 间接寻址标识 | A |
根据A的内容到内存中寻找到的是操作的数地址,再根据这个地址去找操作数。

5、寄存器寻址
EA=R1
形式地址是寄存器的编号,直接去寄存器中寻址操作数。

6、寄存器间接寻址
操作数里存放的是寄存器的编号,寄存器中存的不是操作数而是操作数的有效地址。所以操作数在存储器里。

7、偏移寻址
一种强有力的寻址方式 EA=A+(R) 形式地址需要和另一个寄存器中的地址相加
形式地址A是显示的
另一个地址字段隐含在某个专用的寄存器R中。
常用的三个偏移寻址方式是:相对寻址 基址寻址 变址寻址(根据寄存器的不同类型来区分的)
7.1 相对寻址
A是相对于当前指令的位移量(可正 可负 补码)

EX=A+(PC) ----PC程序计数器 PC存储当前正在执行指令的地址
7.2、基址寻址
EA=A+(BR) BR为基地址寄存器 (Base Register)

7.3、变址寻址
EA=A+(IX) IX为变址寄存器(专用) 通用寄存器也可以作为变址寄存器

8、堆栈寻址
例:某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,4个16位变址寄存器,十六个16位通用寄存器,指令汇编格式中S(源),D(目标)都是通用寄存器。M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)h ,STA(OP)=(1B) LDA(OP)=3C)h MOV是传送指令,STA为写数指令 LDA为读数指令

要求:1、分析三种指令的指令格式和寻址方式特点
2、CPU完成哪一种操作锁化时间最短?哪一种操作所花时间最长,第二种指令的执行时间有时会等于第三种指令的执行时间吗?
3、下列情况下每个十六进制指令分别代表什么?如果有编码不正确,如何改进才能成为合法指令?
答:1、MOV:单字长,二地址指令属于RR指令
STA:双字长,二地址指令,RS指令 S为基址寄存器或变址寄存器
LDA:双字长,二地址指令,RS指令 S为20位地址。
2、MOV单字长取出只需要一次访存,第一个不访问存储器要快。第二种还需要计算有效地址并对存储器进行访问。第二种指令所花费的时间不等于第三种,第三种无需进行有效地址的计算。
3、根据条件。MOV(OP)=(A)h=001010
STA(OP)=(1B)h =011011
LDA(OP)=(3C)h=111100
(F1F1)h(3CD2)h=(1111 0000 1111 0001 0011 1100 1101 0010)b
正确,表明吧主存(13cd2)h地址单元的内存取至15号寄存器
(2856)H=(0010 1000 0101 0110)b 单字长指令表明吧寄存器6的内容传送到寄存器5号
(6FD6)H=0110 1111 1101 0110b操作码不对 应修改为(28D6)h
(1C2)H=00000001 1100 0010b操作码不对 应修改为(28C2)h
三、CISC何如RISC
复杂性指令系统计算机和精简型指令系统计算机
1、精简指令系统:选取使用频率最高的一些简单指令,指令条数少, 长度固定,指令少。
原文:https://www.cnblogs.com/dream-to-pku/p/11599855.html