对应唐书第七章——指令系统。
目录
四、RISC与CISC
一、机器指令
机器指令是机器语言的语句,全部机器指令的集合成为指令系统。
需要掌握指令格式的设计(操作码和地址码的分配)。
二、操作数类型与操作类型
操作数类型有地址、数字、字符、逻辑数据等。
操作类型有数据传送、算术逻辑操作、移位、跳转、I/O和其他。
注意大小端,低位字节存低地址为小端存储,高位字节存低地址为大端存储。
子程序的返回地址可存放在以下3处——寄存器内、子程序入口地址内核栈顶内。
三、寻址方式
1. 指令寻址
分为顺序寻址和跳跃寻址。
注意顺序寻址时,每次PC加几是由 指令字长/存储字长 决定的。如相等则每次加1。
2. 数据寻址
这里为了方便讨论,假设指令字长、存储字长和机器字长均相同。
①立即寻址:形式地址为操作数(补码)。
②直接寻址
③隐含寻址:操作数地址隐含在操作码或某个寄存器中。可缩短指令字长。
④间接寻址:扩大了操作数寻址范围,便于编制程序。
⑤寄存器寻址:短。
⑥寄存器间接寻址
⑦基址寻址:有效地址为形式地址与基址之和,分为显式(用户指定寄存器)和隐式(专门的基址寄存器),能扩大操作数寻址范围,主要为程序和数据分配空间。
⑧变址寻址:类似基址寻址,适合编制循环程序,如数组。
【两者区别:基址寄存器的值完全由操作系统或管理程序确定,执行过程中不可变,对用户透明;变址寄存器由用户指定,值可变,可将形式地址设为数组首地址,用变址寄存器指向不同下标的数据。】
⑨相对寻址:有效地址为PC与形式地址之和,常用于转移指令,对编写浮动程序特别有利。
⑩堆栈寻址:分为硬堆栈(寄存器组)和软堆栈(主存的一部分),入栈SP-,出栈SP+,具体加几要看是按字编址(每次改变1)还是按字节编址(每次改变 字/字节)。
四、RISC与CISC
RISC指令简单、种类少,采用组合逻辑;CISC指令复杂、种类多,采用微程序。
RISC更快、更简单、更可靠,便于流水,但指令系统不易兼容。