配色: 字号:
计算机组成与系统结构指令系统
2022-09-08 | 阅:  转:  |  分享 
  
第4章指令系统对一台计算机来说,指令系统是非常重要的,指令系统的功能和性能会对计算机的性能产生直接影响。本章将说明指令的构成格式
、经常使用的寻址方式以及常见的指令。4.1指令格式4.1.1概述1.机器指令2.设置指令系统的要求1)完备性2
)有效性3)规整性4)兼容性4.1.2指令信息及格式1.指令信息1)指令操作码2)操作数地址3)操作结果的存放地
址4)下一条指令的地址4.1.2指令信息及格式2.指令格式1)零地址指令2)一地址指令3)二地址指令4)三地址指令
5)多地址指令4.1.3指令设计1.指令长度的影响因素1)内存大小与组织2)CPU数据总线宽度3)CPU内部寄存器的
数量4)寻址方式5)指令数量2.定长操作码变长指令码3.定长指令码变长操作码4.霍夫曼编码1)霍夫曼编码概述2)举例
3)利用霍夫曼编码的思想扩展操作码4.2存储及寻址方式计算机中,决定操作数地址或决定指令地址的方法称为寻址方式。一台计算机寻
址方式的多少及功能将对计算机的性能产生直接影响,因此,在设计计算机的指令系统时,设置指令系统的寻址方式是十分重要的。寻址方式越多,
则指令系统的功能就越强。下面将对计算机中常用的寻址方式逐一加以说明。为了说明问题方便,在下面的描述中将以第3章中图3-27所表示的
CPU为例。该图所表示的是一个概念上的简单的CPU,我们将以此来说明有关的原理及概念。4.2.1主存中的数据存储方式1.大端
模式在当前的计算机中,内部存储器(或称主存储器)大都是按字节编址,即一个内存地址只存放一个字节。当一个数据由多字节构成时,如果将该
数据存储在存储器中的顺序是小地址放高字节而大地址放低字节,则称这种顺序的存储模式为大端模式。2.小端模式小端模式下,数据在内存中
的存放顺序与大端模式刚好相反,即数据存储在存储器中的顺序是小地址放低字节而大地址放高字节。4.2.2寻址方式1.决定操作数地
址的寻址方式1)立即寻址2)直接寻址3)寄存器寻址4.2.2寻址方式4)寄存器间接寻址5)变址寻址6)基址寻址7)
基址变址寻址4.2.2寻址方式8)基址变址相对寻址9)间接寻址4.2.2寻址方式10)堆栈寻址(1)由CPU内部
的寄存器构成。(2)由存储器构成。11)隐含寻址12)其他寻址方式4.2.2寻址方式2.决定指令地址的寻址方式1)顺
序寻址2)转移寻址(1)相对寻址。(2)绝对寻址。(3)间接寻址。(4)中断寻址。4.3指令系统本节主要介绍计
算机中最常用的一些基本指令,按照指令的功能可将基本指令分为如下所述的若干类。4.3.1传送指令1.数据传送指令MOVOPR
D1,OPRD22.数据交换指令XCHGOPRD1OPRD23.堆栈操作指令4.输入/输出指令1)统一编址2)独立
编址4.3.2算术运算指令进行加、减运算的源操作数和目的操作数的关系如图4-20所示。4.3.2算术运算指令1.加法指令
1)ADDOPRD1,OPRD2(加法)2)ADC指令(带进位加法)3)INCOPRD指令(加1)2.减法指令1)
SUBOPRD1,OPRD2(减法)2)SBB指令(带进位减法)3)DECOPRD指令(减1)4)NEGOPRD(求补
)5)CMPOPRD1,OPRD2(比较)4.3.2算术运算指令3.乘法指令1)MUL(无符号数乘法)2)IMUL
(带符号数乘法)4.除法指令1)DIV(无符号数除法)2)IDIV(带符号数除法)5.调整指令AAA:对AL中ASCII未
压缩的十进制数进行调整。AAS:对AL中ASCII未压缩的十进制数进行调整。AAD:在除法指令前对AX中ASCII未压缩的十进制数
进行调整。AAM:对AX中两个ASCII未压缩的十进制数相乘结果进行调整。DAA:对AL中两个压缩十进制数相加之和进行调整,得到压
缩十进制和。DAS:对AL中两个压缩十进制数相减之差进行调整,得到压缩十进制差。4.3.3逻辑运算指令1.NOT(取反)2.
AND(与)3.TEST(测试)4.OR(或)5.XOR(异或)4.3.4移位及循环移位指令1.移位指令1)SAL
/SHL(算术/逻辑左移)2)SAR(算术右移)3)SHR(逻辑右移)4.3.4移位及循环移位指令2.循环移位指令1)
ROL(不带进位标志的循环左移)2)ROR(不带进位标志的循环右移)3)RCL(包括进位标志的循环左移)4)RCR(包括进位
标志的循环右移)4.3.5程序控制指令1.无条件转移、子程序调用和返回指令1)无条件转移指令JMP2)子程序调用和返回指
令4.3.5程序控制指令2.条件转移指令条件转移指令根据标志寄存器中各标志位的状态决定程序是否进行转移,当满足条件时产生转移
,转移到目的地址上执行;当不满足条件时,顺序向下执行。条件转移指令大都采用相对寻址,转移目的地址必须在规定的范围内。3.软中断
指令及中断返回指令在CPU中,一般都会设置软件中断指令。当程序执行到软件中断指令INT时,便中断当前程序的执行,转向该中断的中断处
理程序。不同的CPU中软中断指令的格式不一样,响应的过程也不一样,有关细节参见第8章。中断处理程序结束时,要再执行一条中断返回指令
IRET,才可返回到源程序。执行IRET指令就能使CPU返回主程序的原中断点,并开始执行原来的程序。4.3.6处理器控制指令汇
编格式操作标志位操作指令STC置进位标志,使CF=1CLC清进位标志,使CF=0CMC进位标志求反STD置方向标志,使DF=1C
LD清方向标志,使DF=0STI开中断标志,使IF=1CLI清中断标志,使IF=0外部同步指令HLT使处理器处于停止状态,不执行指
令WAIT使处理器处于等待状态LOCK封锁总线指令,可放在任一指令前作为前缀NOP空操作指令,处理器什么操作也不做4.3.7串
操作指令1.MOVS/MOVSB/MOVSW2.CMPS/CMPSB/CMPSW3.SCAS/SCASB/SCASW4.L
ODS/LODSB/LODSW5.STOS/STOSB/STOSW4.3.8位操作指令1.位传送指令位传送指令如下:MOV
C,bit ;将位地址的内容传送到进位标志CF中MOVbit,C ;将进位标志CF的内容传送到位地址中2.位
控制指令位控制指令如下。·CLRC ;将进位标志CF清零·SETBC ;将进位标志CF置1·CLRbit ;将位地址的
内容清零·SETBbit ;将位地址的内容置1·CPLC ;将进位标志CF取反·CPLbit ;将位地址的内容取反4.
3.8位操作指令3.位逻辑运算指令位逻辑运算指令如下。·ANLC,bit ;进位标志CF与位地址的内容相与,结果放在CF中
·ANLC,/bit ;进位标志CF与位地址的内容的反码相与,结果放在CF中·ORLC,bit ;进位标志CF与位地址的内容相
或,结果放在CF中·ORLC,/bit ;进位标志CF与位地址的内容的反码相或,结果放在CF中4.位转移指令位转移指令如下。·
JBbit,rel ;若bit=1,则转移;bit=0,则顺序执行·JNBbit,rel ;若bit=0,则转移;bit=l
,则顺序执行·JBCbit,rel ;若bit=1,则转移并且0→bit;若bit=0,则顺序执行4.3.9其他指令除上面所
提到的基本常用指令外,在许多CPU中还会设置一些功能更强的专用指令,如数据转换指令、特权指令、DSP(数字信号处理)指令、MMX(
SIMD多媒体)指令集、SSE(数据流SIMD扩展)指令集、SSE2指令集、SSE3指令集、SSE4指令集等,本书不作说明。4.4
精简指令集计算机在计算机的发展过程中,计算机的指令系统经历了从简到繁、从繁到简再到繁的过程,也就是由复杂指令集计算机(CISC
)到精简指令集计算机(RISC)再到两者结合的过程。4.4.1指令系统的从简到繁1.指令系统的发展2.复杂指令集计算机的特
点(1)指令系统复杂,有更多的寻址方式,指令数目多达200~3000条。(2)指令长度不固定,有更多的指令格式和更多的寻址方式
。(3)??CPU内部的通用寄存器比较少。(4)有更多的可以访问主存的指令。(5)指令种类繁多,但各种指令的使用频度差别很大。
(6)不同的指令执行时间相差很大,一般都需要多个时钟周期才能完成。(7)控制器大多采用微程序控制器来实现。(8)难以用优化编
译的方法获得高效率的目的代码。4.4.2精简指令集计算机的由来及特点1.精简指令集计算机的由来2.精简指令集计算机的特点(
1)只设置使用频度高的一些简单指令,复杂指令的功能由多条简单指令的组合来实现。(2)指令长度固定,指令种类少,寻址方式种类少。
(3)访存指令很少,有的RISC只有IDA(读内存)和STA(写内存)两条指令。多数指令的操作在速度快的内部通用寄存器间进行。(4)??CPU中设置大量的通用寄存器,一般有几十个甚至几百个。(5)控制器用硬件实现,采用组合逻辑控制器。(6)采用流水线技术,大多数指令在1个时钟周期内即可完成。(7)有利于优化编译程序。(8)可简化硬件设计,降低设计成本。4.5课后练习1.选择题2.填空题3.简答题4.操作题参见教材P120
献花(0)
+1
(本文系太好学原创)