您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > 第二章 信息表示-指令系统(复习)
本节习题内容重点掌握和了解指令格式寻址方式2指令格式指令格式操作码(OP):根据编码不同,区分不同操作的性质及功能。地址码:指明操作数的地址,特殊情况下也可能直接给出操作数本身。显式地址:在指令中直接给出隐式地址:用隐含方式给出操作码字段地址码字段指令功能操作码助记符加法001ADD减法010SUB传送011MOV………操作码操作码字段的位数取决于计算机指令系统的规模。假设一台计算机系统有m条指令,指令中操作码的位数为N位,则m=2N或N=log2m例:指令系统有8条指令,则操作码需3位;有32条指令,需要5位操作码。操作码的编码方式定长编码操作码的位数和位置固定。变长编码操作码的位数不固定,位置分散。定长编码操作码的位数和位置固定。有利于简化操作码译码器的设计。常用于大、中型机中。例:IBM370系统(字长32位)操作码长度固定均为8位,共可表示256种不同的指令。12位4位4位4位8位类型B2D2D1B1L1OPSS型D1B1I2OPSI型D1B2R2R1OPRS型D2B2X2R1OPRX型R2R1OPRR型4位12位变长编码操作码的位数不固定,位置分散。可充分利用指令字长度,尽可能用有限的指令字长度来表示更多的指令,或在更大的地址空间中寻址。常用于小、微型机中。例:PDP—11(字长16位)等长指令扩展操作码法指令字长度一定时,地址位多,操作码位少;操作码位多,地址位少。[例]某机指令字长度16位,采用扩展操作码法,设计三地址指令15条,二地址指令15条,单地址指令15条,零地址指令16条。0000...1110(1111)→OP=8位11110000...11111110(11111111)→OP=12位111111110000...111111111110(111111111111)→OP=16位1111111111110000...111111111111111115条三地址指令15条二地址指令15条单地址指令16条零地址指令OP(4位)A2(4位)A1(4位)A3(4位)补3指令和数据的寻址方式编址技术:对寄存器、内存储器和输入输出设备等编排地址便于访问。编址单位字编址以字为单位进行编址,编址单位与访问单位相一致。简单,但不实用。字节编址以字节为单位,比较普遍,存在着地址的浪费。例:字长32位,以字为单位进行读写时,地址浪费3/4。位编址以二进制位为单位进行编址,地址信息浪费更大例题一、问一个具有64个单元,每个单元由8位组成的存储器,按字节编址需要多少条地址线(地址码需要几位)?如果:存储器增至1K(1024)个单元的需要多少条地址线(地址码需要几位)?寻址编址:8bits………主存储器000000000001111111数据寄存器MBR存储体(m字w位)地址寄存器MAR64个单元的存储器结构寻址方式1、指令寻址方式:计算下一条要执行的指令地址的方法顺序寻址方式程序计数器PC保存下一条指令的地址。PC每次增加一个指令间隔,指向下一条要执行的指令。顺序执行程序。跳跃寻址方式下一条指令的地址由跳转指令给出。PC内容由跳转指令赋值,转为目的地址。程序转移、循环和转子等。2、数据寻址方式:确定指令中操作数地址的方法操作数寻址方式操作数寻址方式:寻找指令中操作数所在地址的方式。形式地址指令中给出的地址,这个地址有时不能直接访存。有效地址(EA)能够直接访存的地址。操作数的地址分类运算器中的通用寄存器编号输入/输出设备的端口地址内存单元的地址指令中的形式地址有效地址寻址方式操作数寻址方式隐含寻址操作数地址在指令中隐含给出。IMULBL;AL×BL→AX立即寻址:操作数在指令中直接给出。取指令同时取出操作数,不必再次访存,提高了指令的执行速度。立即数固定,不能修改。受指令字长度限制,立即数位数较小(占用位数少)适用于给某一寄存器或内存单元赋初值。MOVAX,0300H;0300H→AXOP立即数操作数寻址方式直接寻址:操作数的地址在指令中直接给出。例:MOVAL,[5718H];若[5718H]=3,则3→AL简单直观,便于硬件实现但内存容量大时,地址码长度变长。常用于读写内存的指令操作数内存储器OP直接地址35718H5718H操作数寻址方式间接寻址:地址码字段给出的是操作数地址的地址。通常在指令中设置直接/间接寻址标志位I(或@),当I=1时,间接寻址。存储器OP间接地址1一级间址I=1有效地址操作数操作数寻址方式间接寻址:地址码字段给出的是操作数地址的地址。通常在指令中设置直接/间接寻址标志位I(或@),当I=1时,间接寻址。特点扩大了寻址范围可以实现指针型数据但延长了取操作数的速度存储器OP一级间址1多级间址I=11|二级间址1|三级间址0|有效地址操作数操作数寻址方式寄存器寻址指令地址码字段给出的是CPU内通用寄存器的编号(地址)所需的操作数就在这一寄存器中。寄存器操作速度比内存快寄存器少,编址短,缩短了指令长度OPRi操作数Ri寄存器操作数寻址方式寄存器间接寻址寄存器中存放的是操作数在内存中的地址。只须一次访存。例:i=5,使用R5寄存器,若R5中的内容为7寄存器寻址:操作数=7寄存器间接寻址:操作数=(7#)=13OPRi存储器Ri寄存器有效地址操作数7R5713操作数寻址方式相对寻址:有效地址EA由程序计数器PC的内容和指令中的地址码相加得到。例:D=48H(PC)=5600H有效地址EA=5648H主要用于转移指令,对浮动程序很有用。位移量可正可负,通常用补码表示。PC加法器操作数OPD存储器操作数寻址方式基址寻址:有效地址由基址寄存器Rb的内容和指令中的位移量D相加得到。例:D=18H,[BS]=5700H有效地址EA=5718H主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。大型机中,基址寄存器只能由特权指令来管理,用户指令无权操作和修改。加法器操作数基址寄存器OPRbD存储器操作数寻址方式变址寻址:有效地址由变址寄存器Rx的内容和指令中的地址码相加得到。例:A=18H,x=5,(Rx)=5700H有效地址EA=5718H主要用于对数组元素和字符串进行处理。存储器OPRxD操作数加法器变址寄存器一般的系统都不再区分变址和基址了成原理中的变址和基址的由来和计算机硬件技术的发展,特别是电子工艺的发展比较密切,由于计算机硬件制造成本的改变,目前,一般的系统都不再区分变址和基址了把两种情况讲清楚就可以了,即1、地址码分两部分2、其中的一个部分地址可以访问整个主存空间的任何一个单元,其第二个地址部分,可以在其一所确定的单元地址的基础之上做局部的变换。同时区分两种地址码的形式:1、可以访问整个主存空间的任何一个单元的地址部分在指令中用寄存器给出的,这个寄存器称为基址寄存器记为Rb,此时,局部的变换范围用偏移量D表示,有效地址为Rb+D,称之为基址寻址方式。2、可以访问整个主存空间的任何一个单元的地址部分在指令中用立即数D给出的,而在D所确定的单元地址的基础之上做局部的变换的地址部分用寄存器表示的,这个寄存器称为变址寄存器记为Rx,有效地址为D+Rx,称之为变址寻址方式。3、虽然两种寻址方式形式相似,但要注意的是字母D,的两种说法(偏移量和形式地址)操作数寻址方式页面寻址地址空间分页并编号——页面号页内各单元编号——页内地址有效地址=页面号//页内地址无须计算,寻址迅速。三种形式基页寻址EA=0//页内地址当前页寻址EA=PCH//页内地址页寄存器寻址EA=页面号//页内地址0000H00FFH0100H01FFHFF00HFFFFH0页1页255页操作数PCH当前页面页内地址PCL操作数页面号页内地址页寄存器页面号操作数0页内地址0各种寻址方式比较间接的复杂,直接的简单间接慢,直接快间接的灵活,直接的死板内存慢,寄存器快,立即数更快内存地址长,寄存器地址短需要运算的慢,不需运算的快指令中的地址码一般包含寻址方式的信息操作码op地址A1地址A2OP间接地址1地址A1寻址方式例题CPU完成哪一种操作所花时间最短?第一种指令所花时间最短。RR型指令,无需访问存储器。哪一种操作所花时间最长?第二种指令所花时间最长。RS型指令,需要访问存储器要进行有效地址的计算(基址或变址)第二种指令的执行时间有时会等于第三种指令的执行时间吗?不等于。第三种指令虽然也访问存储器,但直接寻址,无需计算有效地址,速度快。Page58堆栈与堆栈操作堆栈按“后进先出”(LIFO)或“先进后出”(FILO)顺序进行存取的存储区。堆栈用途中断时保存断点子程序调用时保存返回地址、状态标志、现场信息以及参数传递等。堆栈分类寄存器堆栈:用一组专门的寄存器串联构成的堆栈,也称为串联堆栈或硬堆栈。存储器堆栈:由程序员设置出一部分主存储器来作为堆栈,也称为软堆栈。寄存器堆栈由CPU的一组串联的寄存器构成堆栈通用寄存器寄存器堆栈栈顶寄存器0寄存器1寄存器2...寄存器K-2寄存器K-1AAAABABABCCABCABACPU存储器栈顶指针SP300通用寄存器A276277300301Xa八进制地址存储器堆栈由程序员设置出一部分主存储器来作为堆栈堆栈能够具有程序员要求的任意长度;栈底固定,栈顶浮动;需要设置栈顶指针SP(本例中SP指向栈顶空单元)堆栈操作入栈:(A)→MSP;(SP)-1→SP出栈:(SP)+1→SP;(MSP)→Aab277b276277b300a软硬堆栈的比较硬堆栈——寄存器堆栈容量有限堆栈的读出是破坏性的速度快软堆栈——存储器堆栈容量大可以在整个内存区浮动但每次堆栈操作均需访问内存,速度慢软硬结合的堆栈常规堆栈操作在硬堆栈,保证速度;大容量压栈时,与软堆栈衔接,保证数量。2.3.3指令的功能和类型CPU的指令系统可以有上百条指令,按功能分类数据传送类指令一般数据传送、堆栈操作、数据交换算术、逻辑运算类指令算术运算、逻辑运算、移位程控类指令转移、子程序调用与返回输入/输出类指令字符串处理类指令特权指令其他指令CISC与RISC对比CISC指令系统日益庞大和复杂。进一步增强原有指令的功能,设置更为复杂的新指令取代原先由软件子程序完成的功能。采用这种途径设计成的计算机——复杂指令系统计算机(ComplexInstructionSetComputer),简称CISC。RISC指令系统日益缩小和精简。减少指令种类和简化指令功能来降低硬件设计的复杂度,提高指令的执行速度。采用这种途径设计成的计算机——精简指令系统计算机(ReducedInstructionSetComputer),简称RISC。传统的计算机多属于CISC指令系统多达几百条指令,许多指令的功能异常复杂,具有多种寻址方式。计算机的研制周期变得很长,同时也增加了设计失误的可能性。由于复杂指令需进行复杂的操作,有时还可能降低系统的执行速度。20%-80%律功能复杂的指令居多,约占80%。但其使用频率很低,只占20%。CISC的特点CISC举例——80X86指令系统数据传送类指令MOV指令:MOV目标操作数,源操作数PUSH/POP指令算术运算类指令加、减和比较指令ADD、ADC、SUB、SBB、INC、DEC、CMP乘/除法指令乘法IMUL/MUL:有/无符号数乘法除法IDIV/DIV:有/无符号数除法逻辑运算类指令AND、OR、XOR、NOT和TEST80X86指令系统移位类指令普通移位指令SAL(算术左移)、SAR(算术右移):用于带符号数SAL:相当于对带符号数乘以2SAR:相当于对带符号数除以2SHL(逻辑左移)、SHR(逻辑右移):用于无符号数循环移位指令小循环(不带进位循环)小循环左移(ROL)、小循环右移(ROR)。大循环(带进位循环)大循环左移(RCL)、大循环右移(RCR)。80X86指令系统程控类指令控制程序的执行方向,使程序具有测试、分析与判断的能力。转移控制指令无条件转移指令(JMP):直接跳转条件转移指令:JC、JNC、JZ、JNZ、JA、JB、JG、JL等。条件满足,跳转条件不满足,顺序执
本文标题:第二章 信息表示-指令系统(复习)
链接地址:https://www.777doc.com/doc-3572357 .html