📜  门| GATE-CS-2003 |第 49 题

📅  最后修改于: 2021-09-25 06:42:14             🧑  作者: Mango

考虑以下用于假设处理器的汇编语言程序。 A、B 和 C 是 8 位寄存器。各种指令的含义显示为注释。

MOV B, # 0 ; B ← 0
MOV C, # 8 ; C ← 8
Z : CMP C, # 0 ; compare C with 0
JZX ; jump to X if zero flag is set
SUB C, # 1 ; C ← C – 1
RRC A, # 1 ; right rotate A through carry by one bit. Thus:
; if the initial values of A and the carry flag are a7…a0 and
; c0 respectively, their values after the execution of this
; instruction will be c0a7…a1 and a0 respectively.
JC Y ; jump to Y if carry flag is set
JMP Z ; jump to Z
Y : ADD B, # 1 ; B ← B + 1
JMP Z ; jump to Z
X :

下列哪条指令插入到X位置后,可以保证程序执行后寄存器A的值与其初始值相同?
(A) RRC A, #
(B)否决;无操作
(C) LRC A,#1;通过进位标志向左旋转 A 一位
(D)添加 A,#1答案:(一)
说明:说明

在程序执行结束时检查寄存器A的初始值和最终值是否都是A0,我们需要通过进位将寄存器A右循环一位,因为RRC指令是(累加器的每个二进制位右循环一位。 D0 位放置在 D7 的位置以及进位标志中。CY 根据位 D0 进行修改。任何其他位不受影响)。

所以(A)是正确的选项
这个问题的测验