Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Флаги управления






Ÿ TF (Trap flag) – флаг ловушки. Он был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой программной команды, управление временно передается отладчику программ.

Ÿ IF (Interrupt flag) – флаг прерывании. Сброс этого флага в 0 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (описание команды INT). Обычно его сбрасывают на короткое время для выполнения критических участков программ.

Ÿ DF (Direction flag) – флаг направления. Контролирует поведение команд обработки строк. Когда он установлен в 1, индексные регистры, адресующие источник и приемник, после выполнения команды, уменьшаются на единицу. Это означает, что строки обрабатываются в сторону уменьшения адресов. Когда DF = 0 индексные регистры увеличиваются на единицу, и строки обрабатываются от старших адресов к младшим.

Вычисление адреса ячейки памяти

Все регистры процессора 16-разрядные, это означает, что с их помощью можно адресовать всего лишь 65536 байт памяти, т.е. 64 Кбайта. Для увеличения адресного пространства, процессор, при вычислении адресов памяти, умножает содержимое сегментного регистра на 16 (10Н), что соответствует сдвигу регистра влево на 4 шестнадцатеричных разряда и расширения адреса до 20 битов, которыми можно адресовать уже до 1 Мбайта памяти, т.е. 1 048 576 байт. Затем, к этому базовому адресу прибавляет смещение из команды, если вычисляется адрес операнда или содержимое регистра IP, если вычисляется адрес команды. Следовательно, процесс вычисления адреса ячейки памяти, выглядит следующим образом:

19 0 15 0

Регистр сегмента (CS, DS, SS, ES) × 10Н + IP или смещение из команды =

19 0

= исполнительный (физический) адрес памяти.

 

Например: Вычислить физический адрес ячейки памяти TAB+[SI] в команде MOV AX, TAB+[SI]; Переслать в регистр AX содержимое ячейки

памяти находящейся в сегменте данных

по адресу TAB + SI.

Допустим, что DS=04AFН, SI=0020Н, а относительный адрес (смещение) ячейки ТАВ=00FAН, тогда физический или (исполнительный) адрес ячейки вычисляется следующим образом:

физический адрес AF = (DS× 10Н)+SI+[TAB] = 04AF0+0020+00FA = 04C0A.

Физический адрес любой команды в программе вычисляется по следующей формуле: AF = (CS × 10H) + IP.

Допустим, что рассматриваемая команда имеет смещение равное 24Н, то есть содержимое IP = 24H, а содержимое CS = 4F2AH. Тогда физический адрес этой команды в памяти будет следующим:

физический адрес AF = (CS × 10H) +IP = (4F2A0H) + 0024H = 4F2C4H.

Физический адрес данных в стековом сегменте, вычисляется по тому же алгоритму: (SS × 10H) + SP = AF.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.