计算机组成原理自学笔记 | 您所在的位置:网站首页 › 图灵机计算机的基本原理 › 计算机组成原理自学笔记 |
定长指令字结构+可变长操作码 = 拓展操作码(不同地址数的指令使用不同长度的操作码) 例子: 若指令字长为16位,每个地址码占4位 前四位 是基本操作码字段OP 剩下三个四位字长的地址字段 4位基本操作码全部用于三地址指令,则共有16条 但是如果想要变成拓展操作码,要保留1111这条 1111要用作判断是几地址指令 所以三地址指令只剩下15条 例如 三地址指令1110A1A2A3二地址指令11111110A1A2一地址指令111111111110A1二地址指令的前一位空位要填充1111,指令数仍然是15条 一地址指令的前两位空位要填充1111,指令数也为15条 零地址指令为16条 最后一条为 1111 1111 1111 1111 在设计拓展操作码时 不允许短码是长码的前缀,短操作码不能与长操作码的前面的部分相同 各指令的操作码一定不能重复 通常情况下,对使用频率较高的指令,分配较短的操作码 尽量减少指令译码和分析的时间 举例: 设指令字长固定为16位,设计一套指令系统 1 有15条三地址指令 2 有12条二地址指令 3 有62条一地址指令 4 有32条零地址指令 15条指令,即表示0-14即可 0000-1110 A1 A2 A3 只剩下1111没有被表示指令,则利用1111作为下三地址和二地址的区别 二地址: 1111 XXXX XXXX XXXX 前面有四个连续1就是二地址 一共12条指令 0-11 0000-1011 剩下 1100 1101 1110 1111 都是开头有11的,所以依此作为二地址和一地址的分界 62条一地址 1111 11XX XXXX XXXX 62条 0-61 000000-111101 剩下111110 111111 所以 零地址指令即为 1111 1111 111X XXXX 正好剩下32条 |
CopyRight 2018-2019 实验室设备网 版权所有 |