【计算机组成原理】指令系统
创始人
2024-05-29 08:10:25
0

目录

指令格式

按指令数目分类:

零地址指令

一地址指令

二地址指令

三地址指令

四地址指令

按指令长度分类:

指令字长

机器字长

存储字长

按操作码的长度分类

定长操作码

可变长操作码

定长指令字结构+可变长操作码------>拓展操作码指令格式

按操作类型分类

数据传送(数据传输类)

算数逻辑操作(运算类)

移位操作(运算类)

转移操作(程序控制类)

输入输出操作(输入输出类I/O)

拓展操作码

拓展操作码举例

定长操作码与拓展操作码

指令寻址


指令格式

何为指令?(指令定义)

指令:指令又称为机器指令,是指计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该计算机的指令系统,也成指令集。(一台计算机只能执行自己的指令系统,不能执行其他系统的指令)

比如说x86架构和ARM架构,目前的Intel电脑芯片基本上都是支持x86架构的,而手机芯片一般是使用ARM架构,因此在手机上的app不能够直接在电脑上运行。因为两个不同的架构所拥有的指令系统是不一样的。

    • 一条指令就是及其语言的一个子句,它是一组有意义的二进制代码。
    • 一条指令通常要包括操作码字段和地址码字段两个部分。
    • 根据一条指令可能包含几个地址码数目的不同,可将指令的分为零地址指令、一地址指令、二地址指令...

按指令数目分类:

零地址指令

  1. 不需要操作数,如空操作、停机、关中断等指令
  2. 堆栈计算机:两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶。(后缀表达式)

一地址指令

  1. 只需要简单操作数,如加1、减1、取反、求补等

指令含义:OP(A1)--->A1 A1为某个主存地址

完成一条指令需要3次访存:取指--->读A1--->写A1

  1. 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)

指令含义:(ACC)OP(A1)--->ACC

完成一条指令需要2次访存:取指--->读A1(存结果到寄存器中不需要执行,因此两次就可以了)

二地址指令

常用于两个操作数的算数运算、逻辑运算相关指令

指令含义:(A1)OP(A2)--->A1

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A1

三地址指令

常用于需要两个操作数的运算符、逻辑运算相关指令

指令含义:(A1)OP(A2)--->A3

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A3

四地址指令

指令含义:(A1)OP(A2)--->A3 ,A4=下一条将要执行指令的地址

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A3

按指令长度分类:

指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则读取一条双字长指令需要两次访存

定长指令字结构:指令系统中所有指令的长度都相等

变长指令子结构:指令系统中各种指令的长度不等

指令字长

一条指令的总长度(可能会改变)

机器字长

CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长

一个存储单元中的二进制代码位数(通常和MDR位数相同)

按操作码的长度分类

定长操作码

指令系统中所有指令的操作码长度相同

n位-->条指令

控制器的译码电路设计简单,但灵活性较低

可变长操作码

指令系统中各指令的操作码长度可变

控制器的译码电路设计复杂,但灵活性较高

定长指令字结构+可变长操作码------>拓展操作码指令格式

按操作类型分类

数据传送类:进行主存与CPU之间的数据传送

程序控制类:改变程序执行的顺序

算数类:实现了各种运算,算数、逻辑、移位

输入输出类(I/0) :进行CPU和I/0设备之间的数据传送

数据传送(数据传输类)

LOAD作用:把存储器中的数据放到寄存器中去。

STORE作用:把寄存器中的数据放到存储器中去。

算数逻辑操作(运算类)

算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算

逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

移位操作(运算类)

算术移位、逻辑移位、循环移位(带进位和不带进位)

转移操作(程序控制类)

无条件转移JMP

条件转移 JZ:结果为0 ;

JO: 结果溢出;

JC:结果有进位。

调用和返回CALL和RETURN

陷阱(Trap)与陷阱指令

输入输出操作(输入输出类I/O)

CPU寄存器与I0端口之间的数据传送(端口即I0接口中的寄存器)

拓展操作码

每个指令字长是16位,每个地址码占4位

4位基本操作码若全部用于三地址指令,则有16条。

但至少须将1111留作扩展操作码之用,即三地址指令为15条;

留下1111拓展码的作用是为了让计算机在识别前4位为1111时能够知道这是一条二地址码,而不是一条三地址码。

1111 1111留作扩展操作码之用,二地址指令为15条;

1111 1111 1111留作扩展操作码之用,一地址指令为15条;

零地址指令为16条;

在设计操作码指令格式时的注意点:

  • 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同;
  • 各指令的操作码一定不能重复。

这就是为什么留下1111为拓展码的原因了!

通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较高的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间

拓展操作码举例

定长操作码与拓展操作码

定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码;

  • 一般n位 操作码字段的指令系统最大能够表示条指令。.
  • 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;
  • 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。

拓展操作码(不定长操作码):全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。

  • 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。
  • 优:在指令字长有限的前提下仍保持比较丰富的指令种类;
  • 缺:增加了指令译码和分析的难度,使控制器的设计复杂化。

指令寻址

相关内容

热门资讯

东方航空×泡泡玛特:DIMOO... 文旅观察近日,中国东方航空与泡泡玛特携手推出的DIMOO中泰建交50周年限定主题彩绘专机正式首航,执...
多个“第一”!重大突破! 今天(7月9日)上午国新办举行首场“高质量完成‘十四五’规划”系列主题新闻发布会一起看 ↓国家发展改...
中广核新能源:6月发电量140... 格隆汇7月9日|中广核新能源(1811.HK)公告,6月本集团按合并报表口径完成发电量1,403.5...
1.52亿千瓦!江苏电网最高用... 转自:上观新闻7月7日,江苏电网最高用电负荷,年内第三次刷新历史新高,达1.52亿千瓦。截至目前,南...
ST华铭因信披违规被罚,收购聚... 近日,ST华铭(维权)(300462)发布公告,近日收到中国证券监督管理委员会上海监管局下发的《行政...
山西泽辰医药乌帕替尼缓释片启动... 药物临床试验登记与信息公示平台数据显示,山西泽辰医药科技有限公司的乌帕替尼缓释片在健康受试者中随机、...
西海都市报公布地址、订阅及零售... 本报地址:西宁市长江路5号 广告经营许可证: 广告部电话:6125601 排版:西海都市报社编辑部 ...
台风丹娜丝“绘就”陆家嘴诗意画... 转自:上观新闻连日来,受台风“丹娜丝”外围环流持续影响,上海晴雨相间,同时带来降温、大风,云雾光影间...
国家发改委:中国做的这件事,全... 转自:北京日报客户端在国新办今天(9日)举行的首场“高质量完成‘十四五’规划”系列主题新闻发布会上,...
或受欧盟法规影响,苹果将在欧盟...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! IT之家 7 月 9...