Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Архитектура компьютера - Таненбаун Э.

Таненбаун Э. Архитектура компьютера — Спб.: Питер, 2007. — 844 c.
ISBN 5-469-01274-3
Скачать (прямая ссылка): arhkomputera2007.DjVu
Предыдущая << 1 .. 380 381 382 383 384 385 < 386 > 387 388 389 390 391 392 .. 422 >> Следующая

неимоверной строгостью. Невозможно было даже ввести в стек константу,
поскольку в таком случае ни в одном из двух операндов команды не было бы
ни одного регистра. В последующих версиях ограничения были смягчены, но
сам принцип оказал определенное влияние на конструктивное решение
процессора. В некоторых случаях один из двух операндов не упоминается.
Например, в команде MULB роль приемника может выполнять только регистр
АХ.
Существуют также команды с одним операндом. В эту категорию входят,
помимо прочего, команды приращения, сдвига и сброса. В этих командах
требование о применении регистра в качестве операнда не действует, и
различать команды обработки байтов и слов можно только по кодам операций
(то есть типам команд).
Процессор 8088 поддерживает четыре базовых типа данных: байт, слово (2
байта), длинное слово (4 байта) и двоично-десятичное число, в котором в
слово упаковываются 2 десятичные цифры. Последний тип не поддерживается
интерпретатором.
Адрес в памяти всегда соответствует байту, но в случае с обычным или
длинным словом также присутствует неявное указание на ячейки памяти,
находящиеся непосредственно над указанным байтом. К примеру, слово,
расположенное по адресу 20, занимает ячейки памяти 20 и 21. Длинное слово
по адресу 24 занимает ячейки 24, 25, 26 и 27. Процессор 8088 является
системой с обратным
Память и адресация 765
порядком следования байтов (little endian); это означает, что часть слова
меньшего порядка хранится по младшему адресу. В стековом сегменте слова
должны размещаться по четным адресам. Комбинация АХ DX, где в АХ
содержится слово меньшего порядка, является единственно возможным
вариантом размещения длинных слов в регистрах процессора 8088.
В табл. В.1 представлены все предусмотренные в 8088 режимы адресации.
Далее мы вкратце их рассмотрим. В верхних строках таблицы перечислены
регистры. Они могут быть задействованы в качестве источников или
приемников практически во всех командах. Имеются 8 регистров для слов и
столько же для байтов.
Таблица В.1. Режимы адресации операндов (символ # означает численное
значение или метку)
Режим адресации Операнд Примеры
Регистровая адресация
По регистру для байтов Регистр для байтов АН, AL, ВН, BL, СН, CL, DH,
DL
По регистру для слов Регистр для слов АХ, ВХ, СХ, DX, SP, ВР, SI, DI
Адресация сегментов данных
Непосредственная адресация Адрес после кода операции (#)
Косвенная регистровая адресация Адрес в регистре (SI), (DI), (ВХ)
Регистровая адресация со смещением Адрес формируется по значению
регистра со смещением #(SI), #(DI), #(ВХ)
Индексная регистровая адресация Адрес формируется путем сложения ВХ с
SI/DI (BX)(SI), (BX)(DI)
Индексная регистровая адресация со смещением ВХ плюс SI DI плюс смещение
#(BX)(SI), #(BX)(DI)
Адресация стекового сегмента
Косвенная адресация по указателю базы Адрес в регистре (BP)
Смещение указателя базы Адрес формируется по значению ВР и смещения
#(BP)
Адресация по указателю базы с индексом Адрес формируется путем сложения
ВР и SI/DI (BP)(SI), (BP)(DI)
Смещение индекса указателя базы ВР плюс SI/DI плюс смещение #(BP)(SI),
#(BP)(DI)
Непосредственная адресация данных
По непосредственному байту/слову Информационная часть команды #
Неявная адресация
Команда введения в стек или выталкивания из стека Косвенный адрес (SP)
PUSH, POP, PUSHF, POPF
Флаги загрузки или сохранения Регистр с флагами состояния LAHF, STC,
CLC, CMC
Продолжение &
766
Приложение В. Программирование на языке ассемблера
Таблица В.1 (продолжение)
Режим адресации Операнд Примеры
Трансляция XLAT AL, ВХ XLAT
Повторяющиеся строковые (SI), (DI), (СХ) MOVS, CMPS, SCAS
команды
Входные и выходные АХ, AL IN #, OUT #
команды
Преобразование байта, слова AL, АХ, DX CBW,CWD
В строках под заголовком "Адресация сегментов данных" перечислены режимы
адресации, актуальные для сегментов данных. Адреса этого типа всегда
заключаются в пару круглых скобок - именно они позволяют отличить адрес в
их составе от значения иного типа. Простейшим режимом адресации из этой
категории является непосредственная адресация, при которой адрес данных
операнда включается в команду. Пример:
ADD СХ.(20)
В данном случае к регистру СХ прибавляется содержимое слова памяти,
расположенного по адресам 20 и 21. В языке ассемблера ячейки обычно
выражаются метками, а не численными значениями, а преобразование
выполняется уже в период ассемблирования. Даже в командах CALL и JMP
целевой операнд можно сохранить в ячейке памяти, на которую указывает
метка. Скобки вокруг меток совершенно необходимы (по крайней мере, для
того ассемблера, о котором мы ведем речь), поскольку следующая команда
тоже имеет право на существование:
ADD СХ.20
Однако эта команда выражает совершенно другую операцию, а именно -
прибавление к значению регистра СХ константы 20, а не содержимого слова
памяти, находящегося по адресу 20. Символ # в табл. В.1 может обозначать
численную константу, метку или константное выражение с меткой.
Предыдущая << 1 .. 380 381 382 383 384 385 < 386 > 387 388 389 390 391 392 .. 422 >> Следующая