Разделы:
Best links:
Команды передачи управления
В группе команд передачи управления различают четыре типа команд: безусловные переходы, условные переходы, циклы и прерывания.
Команды безусловных переходов. Включают три мнемокода: JMP (безусловный переход), CALL (вызов подпрограммы) и RET (возврат из подпрограммы).
Команда JMPпозволяет осуществить переход в любую точку программы, расположенную как в текущем программном сегменте, так и в другом сегменте. При переходе в пределах текущего программного сегмента используются первые три формата команды JMP.
Первый формат обеспечивает переход в произвольную точку программы внутри текущего программного сегмента, для чего к содержимому IP добавляется в дополнительном коде 16-разрядное смещение, старший разряд которого является знаковым. Второй, укороченный формат позволяет перейти к точке программы, отстоящей не более чем на -128-f-127 адресов от команды JMP. Наконец, третий формат осуществляет загрузку указателя команд 16-разрядным числом, которое размещено по исполнительному адресу ЕА, определяемому постбайтом. Этот переход называется косвенным, так как используется косвенная адресация.
Для реализации безусловного перехода к точке программы, расположенной вне текущего программного сегмента, когда требуется перезагрузка сегментного регистра CS, используются четвертый и пятый форматы команды JMP.
Четвертый формат определяет прямой межсегментный переход, при котором во втором и третьем байтах формата указан относительный адрес точки перехода, а в четвертом и пятом байтах- новое значение CS. Пятый формат с помощью постбайта позволяет определить исполнительный адрес ЕА, по которому находится относительный адрес точки перехода (в байтах памяти с адресами ЕА, ЕА+1), и новое значение CS (в байтах памяти ЕА+2, ЕА+3).
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.