某16位机器所使用的指令格式和寻址方式如图3-5所示,该机有两个20位基址寄存器,4个16位变址寄存器,16个16位通用寄存器。指令汇编格式中的S(源)、D(目标)都是通用寄存器,M是主存的一个单元。3种指令的操作码分别是MOV(OP)=(A)H,STA(

admin2017-11-20  36

问题 某16位机器所使用的指令格式和寻址方式如图3-5所示,该机有两个20位基址寄存器,4个16位变址寄存器,16个16位通用寄存器。指令汇编格式中的S(源)、D(目标)都是通用寄存器,M是主存的一个单元。3种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。

下列情况中,每个十六进制指令字分别代表什么操作?并且描述此指令的作用。其中有些编码不正确,如何改正才能成为合法指令?
  ①FOF1H、3CD2H
  ②2856H
  ③6FD6H

选项

答案根据已知条件:MOV(0P)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换成二进制代码且比较后可知: 1)(FOF1)H(3CD2)H前面6位为111100,所以该指令代表LDA指令。完整的二进制代码为: 111100 00 1111 0001 0011 1100 1101 0010,前面111100代表操作码,00代表横线的内容。1111代表目标寄存器,含义是把主存(13CD2)H地址单元的内容取至115号寄存器。 2)(2856)H前面6位为001010,所以该指令代表MOV指令。完整的二进制代码为:00101000 0101 0110,其中后面的0101和0110分表代表目标寄存器和源寄存器,含义是把6号源寄存器的内容传送至5号目标寄存器。 3)首先因为(6FD6)H是单字长指令,所以肯定属于MOV指令,但是编码错误。6FD6的二进制为011011 11 1101 0110,可以将011011改为001010,11改为00,00代表横线的内容。所以最后可纠正为(28D6)H,含义是把6号源寄存器的内容传送至13号目标寄存器。

解析
转载请注明原文地址:https://kaotiyun.com/show/BARi777K
0

最新回复(0)