某16位机器所使用的指令格式和寻址方式如图3—5所示,该机有两个20位基址寄存器,4个16位变址寄存器,1 6个16位通用寄存器。指令汇编格式中的S(源)、D(目标)都是通用寄存器,M是主存的一个单元。3种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。
问答题 试分析3种指令的指令格式和寻址方式特点。
【正确答案】正确答案:第一种指令是单字长二地址指令,属于RR型。第二种指令是双字长二地址指令,属于RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定。第三种也是双字长二地址指令,属于RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。
【答案解析】
问答题 处理机完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?
【正确答案】正确答案:处理器完成第一种指令所花的时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花的时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽也访问存储器,但节省了求有效地址运算的时间。
【答案解析】
问答题 下列情况中,每个十六进制指令字分别代表什么操作?并且描述此指令的作用。其中有些编码不正确,如何改正才能成为合法指令?①FOFIH、3CD2H②2856H③6FD6H
【正确答案】正确答案:根据已知条件:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换成二进制代码且比较后可知: 1) (FOFl)H(3CD2)H前面6位为111100,所以该指令代表LDA指令。 完整的二进制代码为:111100 00 1111 0001 0011 1100 1101 0010,前面111100代表操作码,00代表横线的内容。1111代表目标寄存器,含义是把主存(13CD2)H地址单元的内容取至15号寄存器。 2) (2856)H前面6位为001010,所以该指令代表MOV指令。 完整的二进制代码为:001010 00 0101 0110.其中后面的0101和0110分表代表目标寄存器和源寄存器,含义是把6号源寄存器的内容传送至5号目标寄存器。 3)首先因为(6FD6)H是单字长指令,所以肯定属于MOV指令,但是编码错误。6FD6的二进制为0110111111010110,可以将011011改为001010,11改为00,00代表横线的内容。所以最后可纠正为(28D6) H ,含义是把6号源寄存器的内容传送至13号目标寄存器。
【答案解析】