模拟卷 组成原理 寄存器类型汇编代码 解答题
第 44 题

(12 分)某 16 位机器所使用的指令格式和寻址方式如下所示,该机有四个 20 位基址寄存器,十六个 16 位通用寄存器(可用做变址寄存器)。指令汇编格式中的 S(源)、D(目标)都是通用寄存器,M 是主存的一个单元。三种指令的操作码分别是 MOV(OP)=(A)₁₆、STA(OP)=(B)₁₆、LDA(OP)=(C)₁₆。MOV 是传送指令,STA 为写数据指令,LDA 为读数据指令。

(1)分析三种指令的指令格式和寻址方式特点。

(2)处理机完成哪一种操作所花时间最短?哪一种最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?

(3)下列情况中,每个十六进制指令字分别代表什么操作?若有指令编码不正确,如何改正才能成为合法指令? ① (F0F1)₁₆ (3CD2)₁₆ ② (2856)₁₆ ③ (6DC6)₁₆ ④ (1C2)₁₆

寄存器类型 汇编代码

[tag_link]

【解析】 本题考查指令的格式与编码。

(1)第一种指令是单字长二地址指令, RR 型 ;第二种指令是双字长二地址指令, RS 型 ,其中 S 采用基址寻址或变址寻址,R 由源寄存器决定;第三种也是双字长二地址指令, RS 型 ,其中 R 由目标寄存器决定,S 由 20 位地址(直接寻址)决定。

(2)处理机完成第一种指令所花的时间最短,因为是 RR 型指令,不需要访问存储器。第二种指令所花的时间最长,因为 RS 型指令需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。

(3)根据已知条件: MOV(OP)=001010 , STA(OP)=011011 , LDA(OP)=111100 ,将指令的十六进制格式转换为二进制代码并比较后可知: ① (F0F1)ₕ (3CD2)ₕ = 1111 00|00| 1111| 0001 0011 1100 1101 0010 ,指令代表 LDA 指令 ,编码正确,其含义是把主存 (13CD2)ₕ 地址单元的内容取至 15 号寄存器。 ② (2856)ₕ = 0010 10|00| 0101| 0110 指令代表 MOV 指令 ,编码正确,含义是把 6 号源寄存器的内容传送至 5 号目标寄存器。 ③ (6DC6)ₕ = 0110 11|01 |1100 |0110 是单字长指令,一定是 MOV 指令,但编码错误,可改正为 (29C6)ₕ 。 ④ (1C2)ₕ = 0000 00|01 |1100| 0010 是单字长指令,代表 MOV 指令,但编码错误,可改正为 (29C2)ₕ 。