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

admin2019-08-01  27

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

    要求:
    (1)分析三种指令的指令格式与寻址方式特点。
    (2)CPU完成哪一种操作所花的时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?
    (3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?
    ①(fOF1)H(3CD2)H    ②(2856)H    ③(6DC6)H    ④(1C2)H

选项

答案(1)第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定。第三种也是双字长二地址指令,RS型,R由目标寄存器决定,S由20位地址(直接寻址)决定。 (2)处理机完成第一种指令所花的时间最短,因为RR型指令不需要访问存储器。第二种指令所花的时间最长,因为Rs型指令需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。 (3)根据已知条件:MOV(OP)=0001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换为二进制代码且比较后可知: ①(F0F1)H(3CD2)H指令代表LDA指令,编码正确,其含义是把主存(13CD2)H地址单元的内容取至15号寄存器。 ②(2856)H代表MOV指令,编码正确,含义是把5号源寄存器的内容传送至6号目标寄存器。 ③(6DC6)H是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H。 ④(1C2)H是单字长指令,代表MOV指令,但编码错误,可改正为(28D6)H。

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

最新回复(0)