Иллюстрированный самоучитель по Assembler


           

Допустимо использование дополнительных режимов адресации


jmp far ptr farpt ;Переход на метку farpt в

;другом программном сегменте

jmp farpt ;Переход на метку farpt в другом

;программном сегменте, если farpt

;объявлена дальней меткой

;директивой farpt label far

Примеры косвенных дальних переходов

Пример 1

; В полях данных:

addr dd pt ;Поле с двухсловным

;адресом точки перехода ;В программном сегменте:

jmp DS:addr ;Переход в точку pt

jmp dword ptr addr ;To же самое

Пример 2

; В полях данных:

addr dd pt ;Поле с двухсловным

;адресом точки перехода

;В программном сегменте:

mov DI,offset addr ;DI =адрес поля с адресом

;точки перехода jmp [DI] ;Переход в точку pt

Допустимо использование дополнительных режимов адресации 32-разрядных процессоров. Для 32-разрядных приложений допустимо использование 32-битовых операндов. В защищенном режиме вместо сегментного адреса сегмента (при дальних переходах) выступает его селектор.

LAHF Загрузка флагов в регистр АН

Команда lahf копирует флаги SF, ZF, AF, PF и CF соответственно в разряды 7, 6, 4, 2 и 0 регистра АН. Значение битов 5, 3 и 1 регистра АН не определено. Команда не имеет параметров и не изменяет флаги процессора.

Команда lahf (совместно с командой sahf) дает возможность читать и изменять значения флагов процессора, в том числе флагов SF, ZF, AF и PF, которые нельзя изменить непосредственно. Однако следует иметь в виду, что команда lahf переносит в АН только младший байт регистра флагов. Поэтому нельзя изменить с ее помощью, например, состояние флага OF.

Пример 1

lahf ;Регистр АН отображает

;состояние регистра флагов

or AH,80h ;Установка бита 7 = SF

sahf ;Загрузка АН в регистр

;флагов, где теперь SF = 1

Пример 2

lahf ;Регистр АН отображает

;состояние регистра флагов

and AH,0BFh ;Сброс бита 6 = ZF

sahf ;Загрузка АН в регистр

;флагов, где теперь ZF = О

386Р+ LAR Загрузка прав доступа

Команда lar загружает в первый операнд (16- или 32-разрядный регистр) поле атрибутов сегмента из дескриптора сегмента, заданного селектором во втором операнде. В качестве операнда с селектором может использоваться 16- или 32-разрядный регистр или ячейка памяти. В операнд-приемник поступают два байта атрибутов селектора с замаскированным полем старших битов границы сегмента.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий