“21天好习惯”第一期——6

《计算机组成原理》

  3.2.4指令功能和类型

      4.算术逻辑运算指令

         (1)算术运算指令

           计算机最基本的算术运算指令:顶点加(ADD)、减(SUB)、加1(INC)、减1(DEC)、求补(NEG)、比较大小等。主流计算机还设置了:定点乘、除,十进制运算,浮点加、减、乘、除等运算指令。巨型机还可能有向量运算指令,可以对整个向量或矩阵进行求和、求积运算。

         (2)逻辑运算指令

           逻辑运算都可以通过与、或、非这三种最基本的逻辑函数予以实现。计算机通常设置4种基本的逻辑运算指令:与AND、或OR、非COM、异或EOR。因为没有进位、借位关系,也被称为操作指令。

  •              利用“与”运算测试某定位是否为1。
  •              利用“与”运算实现按位分离。
  •              利用“与”运算实现按位清除。
  •              利用“或”运算实现位设置。
  •              利用“异或”运算实现位修改。
  •              利用“异或”运算判符合。

         (3)位移指令

            位移也是一种基本操作,如在乘法中需要右移,在除法需要左移。

               1、算术移位指令。对象是具有数值大小的数,因而在位移后会发生数值大小的变化。

               2、逻辑移位指令。 逻辑移位使代码序列作循环移位或非循环移位,它只是使数码位置发生变化无正负性质也无数值性质。

          (4)串操作指令

              为了实现对数组元素的操作,计算机设置了串操作指令,加上重复前缀REP,对数组进行传输、比较、扫描、装入、储存、输入、输出等串操作。

           (5)专用的数据处理指令

               1、转换指令:实现数制转换(二进制到十进制)或数据类型转换(整数与浮点数之间的转换,字与字节及双字节间的转换)。

              2、检索指令:以给定的参考量作为依据,对一组信息进行检索。

              3、编辑指令:将一种格式的字符或数据编排为另一种格式的字符或数据,或执行插入、删除、添加等操作。

       5.程序控制类指令

     (1)转移指令

       在程序执行过程中,通常采用转移指令来改变程序的执行顺序,有无条件转移和条件转移。

        无条件转移指令:指令中给出转移命令(操作码)和转移地址,转移地址可以用多种寻址方式给出。

        条件转移指令:主要用于程序分支,在执行中给出转移条件和转移地址,如果满足转移条件,则转向指令给出的转移地址,否则按原理顺序执行。

        循环指令:循环指令可以看成特殊的条件转移指令,指令中给出循环执行的次数,或者指定某个计数器作为循环次数控制的依据。

      (2)转子指令与返回指令

        CPU在执行一段指令时,为调用某个子程序,需要执行一条转向该子程序的指令(简称转子指令),子程序的最后安排一条返回主程序的返回指令。 

        转子程序指令:与无条件转移指令相似,指令给出子程序入口地址,在转入子程序时应先把返回地址保存起来,可采用保存返回地址的方法有,将返回地址压入堆栈保存。

        返回指令:子程序的最后一条指令一般安排返回指令,只有操作码,返回地址是隐含获得的。

       (3)软中断(程序自中断)指令

        引起中断原因很多种,其中一种是由于程序执行一条软中断指令,所以又称为程序自中断。

软中断操作与转子程序很相似,但软中断是按中断方式形成入口地址,涉及中断号、查询中断向量表等操作,后者是按子程序调用方式处理,在指令中显式指明入口地址,不会涉及查询中断向量表以获取入口地址的操作。

        (4)控制处理机某些功能的指令

          如,对CPU状态字某些标志位的清除、设置、修改:空操作指令NOP(除了消耗执行时间位,没有其他实质性操作);实现CPU与外部事件的同步功能,如暂停HLT、等待WAIT、总线锁定LOCK等指令。

         (5)面向操作系统的一些指令

           计算机中的程序可分为系统程序与用户程序,前者如操作系统,由系统程序员编写,不能被用户程序破坏。相应地,有些特权指令只能在操作系统中使用。

        1、访问系统寄存器的指令,如访问系统控制寄存器、全局描述符表寄存器、任务寄存器等。

        2、检查保护属性的指令,如检查某个数据段可否被读出、可否写入,调整段的特权级等。

        3、用于存储管理的指令。

你可能感兴趣的:(个人学习笔记,计算机组成原理,硬件工程,硬件架构)