第四章指令系统习题课一.填空题1.指令的编码将指令分成、①、②等字段.2.计算机通常使用来指定指令的地址。3.指令编码中,操作码用来指定①,n位操作码最多可以表示②条指令。4.通常指令编码的第一个字段是。5.直接寻址方式指令中,直接给出①,只需②一次就可以获得操作数。【答案】1.①操作码②地址码2.程序计数器PC3.①操作类型②2n4.操作码5.①操作数地址②访问内存6.寄存器间接寻址方式中,给出的是所在的寄存器号。7.存储器间接寻址方式指令中给出的是①所在的存储器地址,CPU需要访问内存②才能获得操作数。8.变址寻址方式中操作数的地址由①与②的和产生。9.用于改变程序执行顺序的指令主要有①和②等。10.只有操作码而没有地址码的指令称为指令。【答案】6.操作数地址7.①操作数地址②两次8.①变址寄存器中的内容②地址码中地址9.①转移指令②子程序调用指令10.零地址二.选择题1.先计算后再访问内存的寻址方式是。A.立即寻址B.直接寻址C.间接寻址D.变址寻址2.单地址指令中为了完成两个操作数的算术运算,除地址码指定一个操作数外,另一个操作数需采用。A.堆栈寻址方式B.立即数寻址方式.C.隐含寻址方式D.间接寻址方式3.程序控制类指令的功能是。A.进行算术和逻辑运算B.进行主存与CPU之间的数据传送B.进行CPU和I/O设备之间的数据传送D.改变程序的执行顺序4.指令系统采用不同寻址方式的目的主要是。A.可真接访问外存B.提供扩展操作码并降低译码难度C.实现存储程序和程序控制D.缩短指令长度,扩大寻址空间,提高编程的灵活性5.关于二地址指令下列论述正确的是。A.二地址指令中,运算结果通常存放在一个地址码所提供的地址中B.二地址指令中,指令的地址码字段存放的一定是操作数C.二地址指令中,指令的地址码字段存放的一定是寄存器号D.指令的地址码字段存放的一定是操作数地址6.堆栈常用于。A.数据移位B.保护程序现场C.程序转移D.输入输出7.执行中用到堆栈的指令是。A.移位指令B.乘法指令C.子程序调用指令D.串处理指令8.下列指令中,不能支持数值处理。A.算术运算指令B.移位操作类指令C.字符串处理指令D.输入输出类指令9.下列指令中,是用户不能使用的。A.堆栈操作指令B.移位操作指令C.特权指令D.字符串处理指令10.在变址寄存器寻址方式中,若变址寄存器的内容是4E3C16,给出的偏移量是6316,则它对应的有效地址是。A.6316B.4D9F16C.4E3C16D.4E9F1611.能够改变程序执行顺序的是。A.数据传送指令B.移位操作类指令C.输入输出指令D.转移类指令12.操作数地址存放在寄存器的寻址方式叫。A.相对寻址方式B.变址寄存器寻址方式C.寄存器寻址方式D.寄存器间接寻址方式13.变址寻址方式中,操作数的有效地址是(1),基址寻址方式中,操作数的有效地址是(2)。A.基址寄存器内容加上形式地址B.程序计数器内容加上形式地址C.变址寄存器内容加上形式地址三、分析题1.若某计算机数据线、地址线均是8bit,有—条相对寻址的无条件转移指令存于内存的20H单元中,指令给出的位移量D=00010101B,设该指令占用2个字节,试计算:(1)取该指令时PC的内容:(2)该指令执行结束时PC的内容:【解】(1)取该指令时,PC的内容为20H。(2)转移地址=PC+2+D=00100000+00000010+00010101=00110111B该指令执行结束时PC的内容为00110111B(37H)。2.某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为001AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23A0H,其H表示十六进制数。己知存储器的部分地址及相应内容如图,请填充:地址内容001AH23A0H1F05H2400H1F1FH25001123A0H2600H23BAH1748H(1)当执行取数指令时,如为变址寻址方式,则取出的数为()。(2)如为间接寻址,取出的数为()(3)当执行转移指令时,转移地址()【解】(1)变址寻址,操作数在内存单元(23AOH+001AH)=23BAH中,所以取出的数为1748H。(2)使用间接寻址,指令地址码部分是操作数的地址,即操作数在地址001AH中为23A0H,所以取出的数为2600H.(3)相对寻址,指令地址码部分是下—条指令相对本指令所在位置的偏移。当前指令所在地址为1F05H,下一条指令在(1F05H+2+AH)=IF21H中,故转移地址为1F21H。3.假设(R)=1000,(1000)=2000,(2000)=3000,(PC)=4000,问在以下寻址方式下访问到操作数的值是什么?(1)寄存器寻址R(2)寄存器间接寻址(R)(3)直接寻址1000(4)存储器间接寻址(1000)(5)立即数寻址#2000解:(1)DATA=(R)=1000(2)DATA=((R))=(1000)=2000(3)DATA=(1000)=2000(4)DATA=((1000))=(2000)=3000(5)DATA=20005.某机字长为16位,存储器按字编址,访内存指令格式如下151110870其中OP是操作码,M定义寻址方式,A为形式地址。设PC和RX分别为程序计数和变址寄存器,字长16位(1)该指令能定义多少种指令?(2)表中各种寻址方式的寻址范围为多少?(3)写出表中各种寻址方式的有效地址EA的计算公式。OPMA解:因为OP字段长5位,所以指令能定义25=32种指令。四.设计题1.假设某计算机指令字长度为32位,具有二地址、一地址、零地址3种指令格式,每个操作数地址规定用8位表示,若操作码字段固定为8位,现已设计出K条二地址指令,L条零地址指令,那么这台计算机最多能设计出多少条单地址指令?【解】因为操作码字段固定为8位,所以最多能设:28=256条指令。现已设计出K条二地址指令,L条零地址指令,所以这台机最多还能设计出256-K-L条单地址指令。2.某指令系统指令字长为20位,具有双操作数、单操作数和无操作数3种指令格式,每个操作数地址规定用6位表示,当双操作数指令条数取最大值,而且单操作数指令条数也取最大值时,这3种指令最多可能拥有的指令数各是多少?【解】按扩展操作码的思想来设计,双操作数指令条数最大为28-1=255条,单操作数指令条数最大为63条,无操作数指令条数最大为64条。