
计算机系统结构 (第8讲) 主讲人: 郑纬民教授 清华大学计算机系
计算机系统结构 (第8讲) 主讲人: 郑纬民 教授 清华大学计算机系

第二章指令系统 2.1数据表示 2.2寻址技术 2.3指令格式的优化设计 2.4指令系统的功能设计 2.5RISC指令系统
第二章 指令系统 2.1 数据表示 2.2 寻址技术 2.3 指令格式的优化设计 2.4 指令系统的功能设计 2.5 RISC指令系统

2.4指令系统的功能设计 完整性、规整性、高效率和兼容性 2.3.1指令的组成 五类:数据传送,运算,程序控制,输入 输出,处理机控制和调试 1、数据传送类指令 由如下三个主要因素决定: 数据存储设备的种类 数据单位:字、字节、位、数据块等 采用的寻址方式
2.4 指令系统的功能设计 完整性、规整性、高效率和兼容性 2.3.1 指令的组成 五类:数据传送,运算,程序控制,输入 输出,处理机控制和调试 1、数据传送类指令 由如下三个主要因素决定: 数据存储设备的种类 数据单位:字、字节、位、数据块等 采用的寻址方式

指令种类(以字为传送单位,不考虑寻址 方式等): 通用寄存器一通用寄存器 通用寄存器→主存储器 通用寄存器→堆栈 主存储器三通用寄存器 主存储器三主存储器 主存储器三堆栈 堆栈三通用寄存器 堆栈三主存储器
指令种类(以字为传送单位,不考虑寻址 方式等): 通用寄存器 通用寄存器 通用寄存器 主存储器 通用寄存器 堆栈 主存储器 通用寄存器 主存储器 主存储器 主存储器 堆栈 堆栈 通用寄存器 堆栈 主存储器

2、运算类指令 考虑四个因数的组合: (1)操作种类:加、减、乘、除、与、 或、非、异或、比较、移位、检索、转 换、匹配、清除、置位等 (2)数据表示:定点、浮点、逻辑、十 进制、字符串、定点向量等 (3)数据长度:字、双字、半字、字节、 位、数据块等 (4)数据存储设备:通用寄存器、主存 储器、堆栈等
2、运算类指令 考虑四个因数的组合: (1) 操作种类:加、减、乘、除、与、 或、非、异或、比较、移位、检索、转 换、匹配、清除、置位等 (2) 数据表示:定点、浮点、逻辑、十 进制、字符串、定点向量等 (3) 数据长度:字、双字、半字、字节、 位、数据块等 (4) 数据存储设备:通用寄存器、主存 储器、堆栈等

以加法指令为例,一般应设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令 寄存器寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令
以加法指令为例,一般应设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令

移位指令,要组合以下三个因素: 移位方向:左移L)、右移(R) 移位种类:算术移位(A)、逻辑移位L)、 循环移位R) 移位长度:单字长(S)、双字长D 组合起来共有:3×2×2=12种,因逻辑 左移与算术左移相同,因此移位指令应 该有10种,分别 SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS) 单字长逻辑左移, 或单字长算术左移
移位指令,要组合以下三个因素: 移位方向:左移(L)、右移(R) 移位种类:算术移位(A)、逻辑移位(L)、 循环移位(R) 移位长度:单字长(S)、双字长(D) 组合起来共有:3×2×2=12种,因逻辑 左移与算术左移相同,因此移位指令应 该有10种,分别是: SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS) 单字长逻辑左移, 或单字长算术左移

SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD)双字长逻辑左移, 或双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移 位操作指令:置位、清位、位测试、找位等 字符串指令:比较、查找、匹配、转换等
SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD) 双字长逻辑左移, 或双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移 位操作指令:置位、清位、位测试、找位等 字符串指令:比较、查找、匹配、转换等

3、程序控制指令 主要包括三类:转移指令、调用和返回指令、 循环控制指令 转移条件有:零(Z、正负N)、进位(C) 溢出(V)及它们的组合 主要条件转移指令有: BEQ 等于零转移 BNEQ 不等于零转移 BLS 小于转移 BGT 大于转移 BLEQ 小于等于转移,或不大于转移 BGEQ 大于等于转移,或不小于转移
3、程序控制指令 主要包括三类:转移指令、调用和返回指令、 循环控制指令 转移条件有:零(Z)、正负(N)、进位(C)、 溢出(V)及它们的组合 主要条件转移指令有: BEQ 等于零转移 BNEQ 不等于零转移 BLS 小于转移 BGT 大于转移 BLEQ 小于等于转移,或不大于转移 BGEQ 大于等于转移,或不小于转移

BLSU 不带符号小于转移 BGTU 不带符号大于转移 BLEQU 不带符号小于等于转移, 或不带符号不大于转移 BGEQU 不带符号大于等于转移, 或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 程序调用和返回指令: CALL 转入子程序
BLSU 不带符号小于转移 BGTU 不带符号大于转移 BLEQU 不带符号小于等于转移, 或不带符号不大于转移 BGEQU 不带符号大于等于转移, 或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 程序调用和返回指令: CALL 转入子程序