198计算机组成原理与汇编语言(级).ppt

上传人:sccc 文档编号:5829124 上传时间:2023-08-24 格式:PPT 页数:47 大小:824.02KB
返回 下载 相关 举报
198计算机组成原理与汇编语言(级).ppt_第1页
第1页 / 共47页
198计算机组成原理与汇编语言(级).ppt_第2页
第2页 / 共47页
198计算机组成原理与汇编语言(级).ppt_第3页
第3页 / 共47页
198计算机组成原理与汇编语言(级).ppt_第4页
第4页 / 共47页
198计算机组成原理与汇编语言(级).ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《198计算机组成原理与汇编语言(级).ppt》由会员分享,可在线阅读,更多相关《198计算机组成原理与汇编语言(级).ppt(47页珍藏版)》请在三一办公上搜索。

1、计算机组成原理与汇编语言(2008级),北航计算机学院 刘旭东、熊桂喜Tel:82316285Mail:,1.1 指令系统概述,指令系统的基本问题操作类型:应该提供哪些(多少)操作?用LD/ST/INC/BRN已经足够编写任何计算程序,但不实用,程序太长。操作对象:如何表示?可以表示多少?大多数是双值运算(如AB+C)存在单值运算(如AB)指令格式:如何将这些内容编码成一致的格式?指令长度、字段、编码等问题,1.1 指令系统概述,机器指令的要素操作码(Operation Code):指明进行的何种操作(如 ADD,MOV,I/O)源操作数地址(Source Operand Reference)

2、:参加操作的操作数的地址,可能有多个。目的操作数地址(Destination Operand Reference):保存操作结果的地址。下条指令的地址(Next Instruction Reference):指明下一条要运行的指令的位置,一般指令是按顺序依次执行的,所以绝大多数指令中并不显式的指明下一条指令的地址,也就是说,指令格式中并不包含这部分信息。只有少数指令需要显示指明下一条指令的地址。,1.1 指令系统概述,操作数的位置存储器(存储器地址)寄存器(寄存器地址)输入输出端口(输入输出端口地址)操作数的存储方式大端(big-endian)次序:最高有效字节存储在地址最小位置小端(litt

3、le-endian)次序:最低有效字节存储在地址最小位置例:Int a;/0 x12345678,12,34,56,78,值,地址,a+0,a+1,a+2,a+3,78,56,34,12,值,地址,a+0,a+1,a+2,a+3,大端次序,小端次序,1.1 指令系统概述,Applications,OS,Compiler,Instruction Set Architecture(ISA),InstructionProcessing,Input/Output,Hardware layers for design abstraction,Datapath&Control,Digital Design

4、,Circuit Design,Software layers ofabstraction,指令集系统结构(ISA),1.1 指令系统概述,指令集系统结构(ISA)种类大部分ISA都可归类为通用寄存器系统结构Register-Memory式ISA(如80X86)多种指令可以访问内存;存在寄存器操作数和内存操作数直接运行的指令;Load-Store式ISA(如MIPS)只有装载(LOAD)和存储(STORE)指令可以访问内存运算指令操作数全部为寄存器操作数;Load-Store是ISA的一种趋势,1.2 指令格式,指令的表示机器表示:二进制代码形式符号化表示:助记符,如 MOV AX,BX操作数

5、地址的数目三地址:Des(Sur1)OP(Sur2)双地址:Des(Sur)OP(Des)单地址:累加器作为默认操作数的双操作数型,或单操作数型无地址:隐含操作数型,或无操作数型,OP,1.2 指令格式,操作码结构固定长度操作码:操作码长度(占二进制位数)固定不变。硬件设计简单指令译码时间开销较小指令空间效率较低可变长度操作码:操作码长度随指令地址数目的不同而不同。硬件设计相对复杂指令译码时间开销较大指令空间利用率较高指令长度定长指令系统变长指令系统:一般为字节的整数倍,1.3 寻址方式,形式地址与有效地址形式地址:指令中直接给出的地址编码。有效地址:根据形式地址和寻址方式计算出来的操作数在内

6、存单元中的地址。寻址:根据形式地址查找到操作数的过程寻址方式指令中每一个地址字段均有其寻址方式编码(或隐含寻址方式),1.3 寻址方式,常用寻址方式立即寻址:思考立即数存放在什么地方?存储器 or 寄存器寄存器直接寻址寄存器间接寻址存储器直接寻址基址寻址变址寻址相对寻址:基址寻址的特例,程序计数器PC作为基址寄存器堆栈寻址,2.1 8086/8088指令系统,80868088CPU寄存器结构,2.1 8086/8088指令系统,存储器及其存储器地址结构主存容量为1M(220),可直接访问的主存物理地址为20位。超过1M的存储空间通过其他方式访问。80868088机器字长16位,所有寄存器长度为

7、16位,数据总线16位。主存采用分段的结构主存存储单元的地址构成:段基址(16 bits):段内偏移(16 bits)可执行程序(.EXE)的存储结构:代码段(Code Segment),数据段(Data Segment),堆栈段(Stack Segment),扩展数据段(可选)命令程序(.COM)的存储结构:代码段,数据段和堆栈段必须是同一个段。所以命令程序最大为64KB存储空间。,2.1 8086/8088指令系统,存储器地址结构与计算,2.1 8086/8088指令系统,存储器单元结构按字节单元编址,字节单元(2000H)20H(2001H)10H,字单元(2000H)1020H(200

8、4H)5060H,双字单元(2000H)30401020H,2.1 8086/8088指令系统,通用寄存器:数据寄存器(Data Register)AX,BX,CX,DX(16位);AH,AL,BH,BL,CH,CL,DH,DL(8位)注:各寄存器原则上没有固定的应用AX:累加器BX:基址寄存器CX:计数器DX:数据寄存器,2.1 8086/8088指令系统,通用寄存器:指针寄存器(Pointer Register)堆栈指针:SP(16 位)基址指针:BP(16位),默认指向堆栈段,通用寄存器:变址寄存器(Index Register)SI,DI:16位一般情况下,二者使用上无差异,在串操作中

9、,SI 对应源操作数,DI对应目的操作数,2.1 8086/8088指令系统,通用寄存器:段寄存器(Segment Register)代码段(Code Segment),数据段(Data Segment),堆栈段(Stack Segment),扩展数据段(Extend data Segment)代码段寄存器:CS(16 bits)数据段寄存器:DS(16 bits)堆栈段寄存器:SS(16 bits)扩展段寄存器:ES(16 bits),2.1 8086/8088指令系统,指令指针IP(Instruction Pointer)IP(16 bits)指向代码段中下一条要执行的指令。CS:IP 形

10、成下一次要执行的指令的内存地址。,标志寄存器FLAGS(Flags Register)16位,记录当前CPU运行程序的各种状态进位标志位 CF(Carry Flag)奇偶标志位 PF(Parity Flag)辅助进位标志位 AF(Auxitiary Flag)零值标志位 ZF(Zero Flag)符号标志位 SF(Sign Flag)溢出标志位 OF(Overflow Flag)单步跟踪标志位 TF(Trace Flag)中断允许标志位 IF(Interrupt-enable Flag)方向标志位 DF(Direction Flag),2.1 8086/8088指令系统,寻址方式立即寻址寄存器

11、直接寻址基址(变址)寻址串操作寻址I/O寻址,MOV AX,1000HBX(指令代码:8B870001H)等价于 MOV AX,DS:BX1000HEA=DS:(BX)+1000H,2.1 8086/8088指令系统,一般双操作数指令格式与编码RR型或RS型,必有一个操作数在寄存器中(寄存器直接寻址)长度26个字节(前2个字节必须)Opcode:操作码(6位)d:方向字段(1位)。在第二个字节中,REG确定一个操作数(寄存器直接寻址),MOD和R/M确定另一个操作数的寻址方式。方向字段d表明REG确定的是源操作数还是目的操作数。d=1,REG确定目的操作数,MOD+R/M确定源操作数d=0,R

12、EG确定源操作数,MOD+R/M确定目的操作数W:字字节字段(1位):操作数是字节(8位)还是字(16位)W=1,字(16位)W=0,字节(8位),2.1 8086/8088指令系统,一般双操作数指令格式与编码(续)REG:寄存器字段,指明两个操作数中寄存器直接寻址的那个操作数。与W字段配合使用。,2.1 8086/8088指令系统,一般双操作数指令格式与编码(续)MOD和R/M:确定另外一个操作数。,2.1 8086/8088指令系统,指令编码举例MOV AX,1000HBXSIMOV的操作码 Opcdoe100010d=1:目的操作数是寄存器直接寻址W=1:16位字操作REG=000:表示

13、AXMOD=10,R/M=000:另一个操作数EA=(BX)+(SI)+1000H指令前两个字节1000101110000000(8B80H)4字节指令编码:8B800010H,2.1 8086/8088指令系统,指令类型传送指令:MOV,XCHG,LDS,LEA算术运算指令:ADD,INC,SUB,CMP等逻辑运算指令:AND,OR,NOT,TEST等处理器控制指令:CLC,STC,CLI,STI,CLD,NOP等程序控制指令:CALL,RET,JMP,JNE,INT,IRET等串指令:MOVSB,MOVSW等I/O指令:IN,OUT,2.2 MIPS 指令格式简介,MIPS R系列 寄存器

14、RISC处理器2328 bit Bytes3232 bit GPRs3232 bit FPRsHI,LO,PC,2.2 MIPS 指令格式简介,MIPS 寄存器使用的约定,2.2 MIPS 指令格式简介,MIPS指令格式32位固定长度指令格式(3种格式类型)最多3地址指令:add$t0,$s1,$s2($t0$s1+$s2)对于Load/Store指令,单一寻址模式:BaseDisplacement没有间接寻址16位立即数简单转移条件(与0比较,或者比较两个寄存器是否相等)无条件码,2.2 MIPS指令格式简介,MIPS 指令格式Op:6 bits,OpcdoeRs:5 bits,The fi

15、rst register source operandRt:5 bits,The second register source operandRd:5 bits,The register destination operandShamt:5 bits,Shift amount(shift instruction)Func:6 bits,function code(another Opcode),2.2 MIPS指令格式简介,MIPS 寻址方式,2.2 MIPS指令格式简介,MIPS 指令类型,2.2 MIPS指令格式简介,2.3 CISC与RISC,指令系统优化设计的两种相反的方向增强指令功能

16、:CISC(Complex Instruction Set Computer),即复杂指令系统计算机特点:格式复杂,寻址方式复杂,指令种类多;把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现。实例:80X86简化指令功能:RISC(Reduced Instruction Set Computer),即精简指令系统计算机 特点:格式简单,指令长度和操作码长度固定;简单寻址方式,大部分指令使用寄存器直接寻址。实例:MIPS,2.3 CISC与RISC,CISC的背景计算机硬件成本的不断下降,软件开发成本的不断提高在指令系统中增加更多的、更复杂的指令,以提高操作系统的效率,并尽量缩短指令系

17、统与高级语言的语义差别,以便于高级语言的编译。程序的兼容性同一系列计算机的新机器和高档机的指令系统只能扩充而不能缩减。,2.3 CISC与RISC,CISC指令系统的特点指令系统复杂庞大;寻址方式多,指令格式多,指令字长不固定;可访存指令不受限制;各种指令使用频率相差很大;各种指令执行时间相差也很大;大多数采用微程序控制器。,2.3 CISC与RISC,RISC的背景80-20规律典型程序中80%的语句仅仅使用处理机中20%的指令,而且这些指令都是属于简单指令,如:取数、加、转移等。付出巨大代价添加的复杂指令仅有20%的使用概率VLSI时代VLSI,即超大规模集成电路(Very Large S

18、cale Integrated circuites);复杂的指令系统需要复杂的控制器,占用较多的芯片面积,它的设计、验证、实现都变得更加困难。,2.3 CISC与RISC,RISC技术把使用频率为80%的、在指令系统中仅占20%的简单指令保留下来,消除剩余80%的复杂指令;复杂功能改用子程序的方式实现。取消了微程序控制方式,而采用简单的硬连线方式来进行指令译码,从而降低了控制器的复杂度;CPU性能下降不明显,但价格下降显著,提高了性价比;控制器的极大简化,加上优化编译配合硬件的改进,使系统的速度大大提高。,2.3 CISC与RISC,RISC的指令系统的特点处理器通用寄存器数量较多;由使用频率

19、较高的简单指令构成;指令字长固定,操作码固定;指令格式种类少,寻址方式种类少;访问内存仅限Load/Store指令,其他操作针对寄存器;指令采用流水技术。,2.3 CISC与RISC,RISC与CISC技术的融合随着芯片集成度和硬件速度的增大,RISC系统也越来越复杂CISC也吸收了很多RISC的设计思想例如:Inter 80486比80286更加注重常用指令的执行效率,减少常用指令执行所需的周期数。,两个与指令相关的CPU性能指标,CPI:指令平均执行时钟周期数CPI:Clock cycles Per Instruction。不同指令功能不同,所需时间也不同,CPI只是某一机器中一个程序或程

20、序片段每条指令所用时钟周期的平均值。不同指令集的CPI比较没有实际意义。MIPS:百万指令每秒MIPS:Million Instruction Per Second不同指令集的MIPS比较没有实际意义即使同一台机器,用不同的测试程序测出来的MIPS值也可能不一样。,3.1 指令系统的设计,设计依据操作特性:不同操作的数量,具体是些什么操作,复杂程度等。数据类型:各种操作所处理的数据的类型。指令格式:指令长度,地址数目,指令中不同域的大小等。寄存器数目:CPU中可以直接访问的寄存器的数目及使用方法。寻址(Addressing):操作数的寻址方式。,3.1 指令系统的设计,指令设计的相关因素操作类

21、型的数量:决定操作码的位数。操作数的数量:采用几个操作数,每个操作数均应包括寻址模式编码。有时操作数是隐含的。寻址方式数量:有时寻址方式可以是隐含的(由操作码决定)。寄存器数量:确定寄存器编码的位数。地址范围:存储器直接寻址很少见,但变址(或基址)寻址时,较大的寻址范围必须以较多的displacement位数为前提。编址粒度(Address Granularity):字节编址或字编址。字节编址方便,但要以更多的地址位数为代价。,3.1 指令系统的设计,指令设计指令编码设计首先考虑指令编码中的固定不变的部分,然后考虑可变的部分。指令编码中的固定部分:指令系统方案确定后不可能发生变化的部分。操作码(数量,位数,编码)寻址方式(数量,位数,编码)寄存器(数量,位数,编码)不同指令所涉及的地址数量如果代码大小至关重要:使用可变长度指令格式如果性能至关重要:使用固定长度指令格式,3.1 指令系统的设计,指令系统设计举例某机字长为16位,数据总线16位,内存容量64KB,8个16位通用寄存器R0R7。指令系统基本要求是:四种寻址方式:立即寻址,寄存器直接寻址,寄存器间接寻址,变址寻址;立即数和变址寻址时位移量disp均可达16位。32条双操作数指令(其中必有一操作数是寄存器直接寻址)。128条单操作数指令。,3.1 指令系统的设计,指令系统设计举例(续)双操作数指令格式,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号