为一个假设的处理器考虑下面的汇编语言程序。A、 B和C是8位寄存器。各种说明的含义如注释所示。
null
MOV B,#0 | ; | B← 0 | |
电影C#8 | ; | C← 8. | |
Z: | CMP C,#0 | ; | 比较C和0 |
JZX | ; | 如果设置了零标志,则跳转到X | |
C分项工程#1 | ; | C← C-1 | |
RRC A,#1 | ; | 将进位右转一位。因此: | |
; | 如果A和进位标志的初始值为 A. 7. …a 0 和 | ||
; | C 0 分别是执行本协议后的价值观 | ||
; | 指示将是 C 0 A. 7. …a 1. 还有 0 分别地 | ||
JC Y | ; | 如果设置了进位标志,则跳转到Y | |
JMP Z | ; | 跳到Z | |
Y: | 加B,#1 | ; | B← B+1 |
JMP Z | ; | 跳到Z | |
X: |
当插入位置X时,下列哪条指令将确保程序执行后寄存器A的值与其初始值相同? (A) RRC A# (B) 没有;没有手术 (C) LRC A,#1;将进位标志向左旋转一位 (D) 添加一个#1 答复: (A) 说明: 解释
在程序执行结束时,为了检查寄存器A的初始值和最终值是否为A0,我们需要将寄存器A通过进位右转一位,因为 RRC指令是( 累加器的每个二进制位向右旋转一个位置。位D0位于D7的位置以及进位标志中。CY根据位D0进行修改。任何其他位都不受影响)。
所以(A)是正确的选择 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END