Рубрики

ВОРОТА | GATE-CS-2003 | Вопрос 49

Рассмотрим следующую программу на ассемблере для гипотетического процессора. 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 70 and
;c0 respectively, their values after the execution of this
;instruction will be 071and 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) NOP; нет операции
(C) LRC A, # 1; повернуть влево A через флаг переноса на один бит
(D) ДОБАВИТЬ А, № 1

Ответ: (А)
Объяснение: Объяснение

В конце выполнения программы, чтобы проверить, является ли начальное и конечное значение регистра A равным A0, нам нужно повернуть регистр A вправо путем переноса на один бит, потому что инструкция RRC равна ( Каждый двоичный бит аккумулятора вращается вправо на одну позицию. Бит D0 размещается как в позиции D7, так и в флаге переноса. CY изменяется в соответствии с битом D0. Любой другой бит не затрагивается).

Рекомендуемые посты:

ВОРОТА | GATE-CS-2003 | Вопрос 49

0.00 (0%) 0 votes