综合题

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

问答题

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

【正确答案】

关于指令格式和寻址方式特点:
第一种: S 是源寄存器, D 是目标寄存器。 运行时要访问两个地址, 所以是二地址指令, 但 MOV(OP) =(A) 为单字指令, 所以 MOVS, D 是单字长二地址指令, RR 型。
第二种: 运行时也要访存两个地址。 STA(OP) =(1B) 为双字指令。 所以 STAS, M 是双字长二地址指令,RS 型, 其中 S 采用基址寻址或变址寻址, R 由源寄存器决定。
第三种: 运行时访存两个地址, LDA(OP) =(3C) 为双字指令。 所以 LDAS, M 是双字长二地址指令,RS 型, 其中 R 由目标寄存器决定, S 由 20 位地址(直接寻址) 决定。

【答案解析】
问答题

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

【正确答案】

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

【答案解析】
问答题

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

【正确答案】

根据已知条件 MOV(OP) =001010STA(OP) =011011LDA(OP) =111100, 将指令的十六进制格式转换成二进制代码且比较后可知:
①(F0F1)(3CD2)H 111100001111000111110011010010, 按照格式有 1l1100 代表 LDA, 0011110001 中 4~7 号位置上为 1111 是目的地址。 所以指令代表 LDA 指令, 编码正确, 其含义是把主存(13CD2)H 地址单元的内容取至 15 号寄存器。
②(2856)H =0010100001010110. 001010 代表 MOV 指令, 按照格式, 编码正确, 位置 4~7 上为 5, 是目的地址, 3~0 上为 6, 是源地址。 所以含义是把 6 号源寄存器的内容传送至 5 号目标寄存器。
③(6FD6)H =0110111111010110, 是单字长指令, 一定是 MOV 指令。 前六位 0110ll, 不符合 001010, 所以有错, 编码错误, 可改正为(28D6)H
④(1C2) #=000111000010, 是单字长指令, 一定是 MOV 指令。 前六位是 000111, 不符合 001010, 编码错误。 可改正为(28C2)H =0010100011000010, 代表 MOV 指令, 代表的意思把 2 号寄存器的内容传送至 12号寄存器。

【答案解析】