阿里云轻应用服务器 建设网站,网站内页是什么意思,wordpress镜像什么意思,网络工程师怎么自学今天我们来讲一讲指令系统里面的知识点以及做题技巧 1、定义
考点1#xff1a;指令定义 指令是指示计算机执行某种操作的命令#xff0c;一台计算机的所有指令的集合构成该机的指令系统#xff0c;也称为指令集。指令系统是指令集体系结构ISA中最核心的部分#xff0c;ISA… 今天我们来讲一讲指令系统里面的知识点以及做题技巧 1、定义
考点1指令定义 指令是指示计算机执行某种操作的命令一台计算机的所有指令的集合构成该机的指令系统也称为指令集。指令系统是指令集体系结构ISA中最核心的部分ISA完整定义了软件与硬件之间的接口。 一条指令就是机器语言的一个语句这是一组有意义的二进制代码。一条指令通常包括操作码字段以及地址码两部分
操作码字段地址码字段其中操作码指出指令中该指令应该执行什么样的性质的操作以及有何种功能。具体的指令操作类型有
①数据传送例如从CPU寄存器写数据到内存单元的STORE指令。
②算数和逻辑运算例如加ADD、减SUB、与AND、或OR等等。
③移位操作包括算数移位、逻辑移位、循环移位等。
④转移操作包括无条件转移JMP、条件转移BRANCH、调用CALL等
⑤输入输出操作 而地址码给出被操作的信息指令或数据的地址包括参加运算的一个或者多个操作数所在的地址、运算结果的保存地址、程序的转移地址、被调用的子程序的入口地址等等。 其实也很容易理解这些这就好比有一个海王或者说是时间管理大师操作码字段就好比是他要去干什么比如说逛街呀、看电影呀诸如此类而地址码则表明是那几位“舔狗”或者“鱼儿”的编号表明和谁去进行这个活动。有的时候进行的活动很累或者是需要很多的人比如说爬山或者是捉迷藏于是要和好几位鱼儿去进行活动所以会有好几个地址。 需要特别注意指令长度与机器字长没有固定关系既可以等于机器字长也可以等于机器字长也可以大于或者等于机器字长。具体关系如下表
指令长度与机器字长的关系指令名称指令长度机器字长单字长指令指令长度机器字长×0.5半字长指令指令长度机器字长×2双字长指令在一个指令系统中若所有指令的长度都是相等的则称为定长指令字结构若各种指令的长度随功能而异则称为变长指令结构。 特别注意主存一般是按照字节编址的所以指令字长多为字节的整数倍。这一点它不会直接考它会间接的考这一点后续有一个题目就是这样特别阴一不小心就因为这个错了。
我们先来做一道例题感受一下这一章的难度吧 例题以下关于指令系统的说法中的错误的是 A.指令系统是一台机器硬件能执行的指令全体 B.任何程序运行前都要先转换为机器语言程序 C.指令系统是计算机软件与硬件的界面 D.单字长指令只有一个操作数 【答案】D
【解析】单字长指令的“单”不是指只有一个操作数而是说它与机器字长的关系等于一倍的机器字长。而且我们刚刚还把指令比作“海王”这是指望海王只钓一条鱼吗虽然确实有海王只钓了一条鱼但是不能代表大多数。 2、指令格式
考点2指令的几种格式 好的刚刚谈论到海王那么有合格的海王也会有不合格的海王。我们根据指令中操作数地址码的数目不同可将指令分成下面几种格式
①零地址指令 OP这个是最弱的海王只有操作码OP而没有显式地址有下面两种可能 A.真的不需要操作数比如说空操作指令、停机指令、关中断指令 B.它是堆栈计算机它的两个操作数隐含的从栈顶和次栈顶弹出送到运算器进行运算运算结果再隐含的压入栈。 ②一地址指令
OPA1这种海王就是逊啦它只有一个操作数。不过有两种情况 A.只有目的操作数的单操作数指令按A1地址读取操作数进行AP操作后结果存回原地址。例如加一减一取反等等。 用符号语言表示为OP(A1)A1 B.隐含约定目的地址的双操作数指令也就是说这个海王不是只有一条鱼而是另一条鱼在别的地方。按指令地址A1课读取源操作数另一个操作数可由ACC累加器提供运算结构也将存放在ACC中。 用符号语言表示为(ACC)OP(A1)ACC 假设指令字长32位而操作码占8位那么一个地址码占24位寻址范围为16M。 ③二地址指令 这种海王就开始渣了有两个听话的“舔狗”要受它的摆布。
OPA1A2对于常用的算数指令以及逻辑运算指令往往需要两个操作数需要分别给出目的操作数和源操作数的地址其中目的操作数用来保存运算结果。 用符号语言表示为A1OP(A1)A1 假设指令字长32位而操作码占8位那么一个地址码占12位寻址范围为4K。 ④三地址指令 是的你没看错脚踏三条船太渣了
OPA1A2A3其中A1、A2代表目的操作数与源操作数而A3存放运算的结果。 用符号语言表示为A1OP(A2)A3 假设指令字长32位而操作码占8位那么一个地址码占8位寻址范围为256。 ⑤四地址指令 我原本以为三地址已经天下无敌了没想到有人比他还勇猛四地址指令厉害,您这已经不属于海王了您这是海之霸主。
OPA1A2A3A4用符号语言表示A1OP(A2)A3A4下一条将要执行指令的地址。 假设指令字长32位而操作码占8位那么一个地址码占6位寻址范围为64。 上题目练练手 例题堆栈计算机中有些堆栈零地址的运算类指令在指令格式中不给出操作数的地址参加的两个操作数来自_______和__________ 【答案】堆栈的栈顶 次栈顶单元
【解析】这个写不出来要把课本和文章好好看一下 3、定长操作码与扩展操作码指令格式 定长操作码指令在指令字的最高位部分分配固定的若干位表示操作码一般n为操作码字段的指令系统最大能表示条指令定长操作码可以简化计算机硬件设计。 而对于扩展操作码指令可以在保持指令字长有限的前提下保持比较丰富的指令种类。具体怎样操作我们马上来分析。 比如说对于指令字长为16位的指令我们用四位表示基本操作码字段OP剩下的地址字段均为4位如下图
OP(4位)A1(4位)A2(4位)A3(4位)那么我们可以用OP的这四位表示所有三地址指令的数量最广的范围为0000~1110不是1111的原因是1111用来提示此时已经是二地址指令了那么有条三地址指令。 当我们想表示二地址指令的时候OP就变为1111山中无老虎猴子当霸王A1它变身了它要开始发号施令了它进化为了指令。同理也可以表示15条指令。同理单地址指令也是如此也有15条指令。而零地址指令不用留出1111故有16条。 这种扩展方式需要满足两个条件a.不允许短码是长码的前缀b.各个指令的操作码不能重复 顺着推理特别容易但是反着推告诉你零一二三地址有多少条让你推有多少位这个就相当麻烦了。我们看一个例题大家自行感受一下 例题某计算机按字节编址指令字长固定且只有两种指令格式其中三地址指令有29条二地址指令有107条每个地址字段为6位则指令字长至少应该是位。 A.21 B.23 C.24 D.32 【答案】C
【解析】这一题有一点水平的读者会选B真正学懂了的会选C。它只有两种指令格式即三地址以及二地址指令每个地址字段为6位所以我们要把OP有多少位算出来就能解决这一题了对吧所以很明显OP有五位且多出来了3种。那么二地址指令最多有3×192大于107满足条件。所以答案是566623。选B是吧又错了按字节编址说明指令字长至少是八的倍数选大于23且满足八的倍数的即24。 我理解大家可能暂时还看不懂答案为什么是3×64来让小编分析一波首先29比32小3对吧然后最后这三个数分别是11101、11110、11111。所以计算机只要发现了OP是这三个数字就会意识到这就是一个二地址指令呀然后在每一个没被三地址指令用到的数字下A1都能产生64种可能性所以说二地址指令最多有3×64种。 想要检测自己是不是真的学懂了来做一道大题能做出来很棒做不出来再接再厉 假设指令字长为16位操作数的地址码为6位指令有零地址、单地址、二地址3种格式。 1设操作码固定若零地址指令有M种单地址指令有N种则二地址指令有多少种 2采用扩展操作码技术则二地址指令最多有几种 3采用扩展操作码技术若二地址指令有P条零地址指令有Q条则一地址指令有多少种 【答案】16-M-N15
【解析】1操作码固定所以是定长操作码它有16-6-64位有16种指令三种指令合起来16种故二地址指令有16-M-N种
2扩展操作码那么二地址指令最多为种要留出一种表示此时不是二地址指令了而是单地址指令或者说零地址指令
3OP能表示16种可能性而二地址指令有P条所以剩余16-P条留给了一地址指令一地址指最多有16-P×-1条设一地址有R条指令则零地址指令有[(16-P)×-R]×条。
根据Q[(16-P)×-R]×得出R 好的本期的计算机考研408课就到此为止啦感兴趣的小伙伴们快来关注一波您的关注就是对小编最大的支持