问答题 某16位机器所使用的指令格式和寻址方式如下所示,该机有四个20位基址寄存器,十六个16位通用寄存器(可用做变址寄存器)。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存的一个单元。三种指令的操作码分别是MOV(OP)=(A) H ,STA(OP)=(1B) H ,LDA(OP)=(3C) H 。MOV是传送指令,STA为写数指令,LDA为读数指令。
问答题 分析三种指令的指令格式和寻址方式特点。
【正确答案】
【答案解析】第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。
问答题 处理机完成哪一种操作所花时间最短?哪一种最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?
【正确答案】
【答案解析】处理机完成第一种指令所花的时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花的时间最长,因为RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。
问答题 下列情况中,每个十六进制指令字分别代表什么操作?若有指令编码不正确,如何改正才能成为合法指令?
①(FOF1) H (3CD2) H ②(2856) H ③(6DC6) H ④(1C2) H
【正确答案】
【答案解析】根据已知条件:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换为二进制代码且比较后可知:
①(F0F1) H (3CD2) H =1111 00|00| 1111| 0001 0011 1100 1101 0002,指令代表LDA指令,编码正确,其含义是把主存(13CD2) H 地址单元的内容取至15号寄存器。
②(2856) H =0010 10|00| 0101| 0110指令代表MOV指令,编码正确,含义是把6号源寄存器的内容传送至5号目标寄存器。
③(6DC6) H =0110 11|01 |1100 |0110是单字长指令,一定是MOV指令,但编码错误,可改正为(29C6) H
④(1C2) H =0000 00|01 |1100| 0010是单字长指令,代表MOV指令,但编码错误,可改正为(29C2) H 。 [解析] 本题考查指令的格式与编码。