Определите адрес команды, которая будет выполняться после команды перехода 7007h
, расположенной по адресу (IP)=FFFDh
, при следующих значениях флагов: ZF = 1
, SF = 0
, CF = 0
, OF = 1
.
(1) 0004h
(2) FFFFh
(3) FFF6h
Другие предметы Университет Тематика: Ассемблер и архитектура ЭВМ ЭВМ периферийные устройства адрес команды флаги переход ЗФ СФ CF OF университет Новый
Для определения адреса команды, которая будет выполняться после команды перехода, необходимо проанализировать команду перехода и состояние флагов процессора. В данном случае у нас есть команда перехода, расположенная по адресу FFFDh, с кодом перехода 7007h.
Команда перехода 7007h указывает на то, что это условный переход, и его выполнение зависит от состояния флагов. Мы имеем следующие значения флагов:
Теперь, чтобы определить, будет ли выполнен переход, необходимо понять, какое условие проверяет команда перехода 7007h. Предположим, что это команда, которая выполняет переход, если ZF = 1 (например, JE - Jump if Equal).
Поскольку ZF = 1, переход будет выполнен. Теперь мы должны определить, куда именно будет осуществляться переход. Команда перехода 7007h указывает на смещение, которое будет добавлено к текущему адресу (FFFh). Таким образом, мы должны прибавить 7007h к адресу команды перехода (FFFDh).
Таким образом, новый адрес, по которому будет выполнена следующая команда, составляет 7000h. Однако нам нужно проверить, какой из предложенных вариантов соответствует этому адресу:
Как видно, ни один из предложенных адресов не совпадает с 7000h. Однако, если в условии задачи подразумевается, что переход не осуществляется, то следующей командой будет команда по адресу FFFDh, что соответствует адресу FFF6h, если учитывать, что переход не был выполнен.
Таким образом, правильный ответ на вопрос - это (3) FFF6h, если переход не выполняется, и (2) FFFFh, если переход выполняется.