Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КС-ZAO / Лекции ЦЭВМруский вариант11.doc
Скачиваний:
188
Добавлен:
07.02.2016
Размер:
15.82 Mб
Скачать

§19.Микропрцессоры серииiX86 фирмы intel Выбор в программе на Ассемблере типа процессора

По умолчанию Турбо Ассемблер ассемблирует код только для процессора 8086. Чтобы Турбо Ассемблер мог поддерживать другие процессоры серии iAPx86, или сопроцессоры, вы должны указывать соответствующие директивы. Следующие директивы сообщают Турбо Ассемблеру, какой тип процессора нужно поддерживать при ассемблировании кода:

.186 .286C .287 .386C .387 .8087

.286 .286P .386 .386P .8086

Эти директивы можно указывать в любом месте исходного файла, после чего они сразу вступают в действие. В одном исходном файле можно разместить несколько директив выбора типа процессора, при этом текущим процессором считается процессор, выбранный по последней указанной директиве.

В любой момент можно указать директиву .8086, по которой Турбо Ассемблер будет снова поддерживать только процессор 8086. (В остальной части данной главы все ссылки на процессор 8086 относятся в равной степени и к процессору 8088.)

§19.1. Процессоры 80186 и 80188

Процессор 80186 (который является процессором серии iAPx86) в основном аналогичен процессору 8086. Процессор 80186 поддерживает все инструкции процессора 8086, а также несколько новых инструкций и расширенные формы некоторых инструкций процессора 8086.

Процессор 80188 обладает программной совместимостью с процессором 80186. Единственное отличие между ними заключается в том, что процессор 80186 имеет 16-разрядную шину данных, а процессор 80188 - 8-разрядную.

Поддержка Турбо Ассемблера для ассемблирования кода процессора 80186 разрешается по директиве .186.

Далее мы рассмотрим новые и расширенные инструкции процессора 80186. Перед началом рассмотрения отметим, что процессор 8086 не распознает ни одну из тех инструкций, которые мы будем обсуждать. В итоге все программы, которые содержат хотя бы одну инструкцию (новую или расширенную) процессора 80186, на процессоре 8086 работать не будут.

Новые инструкции

Набор инструкций процессора 80186 содержит следующие новые инструкции:

BOUND INS OUTS PUSHA

ENTER LEAVE POPA

Инструкции pusha и popa

Инструкции PUSHA и POPA предоставляют эффективное средство, с помощью которого можно заносить и извлекать из стека все восемь общих регистров. Инструкций PUSHA заносит в стек восемь общих регистров в следующем порядке: AX, CX, DX, BX, SP, BP, SI, DI. POPA извлекает регистры DI, SI, BP, BS, DX, CX и AX (то есть выполняет действие, обратное действию инструкции PUSHA). Регистр SP инструкцией POPA не извлекается, вместо этого SP увеличивается на 16 - длину блока регистров, занесенных в стек по инструкции PUSHA, а значение SP, занесенное в стек по инструкции PUSHA, очищается инструкцией POPA и отбрасывается. На сегментные регистры, флаги и указатель инструкций PUSHA и POPA не влияют.

Учтите, что инструкция PUSHA выполняется быстрее, чем восемь отдельных инструкций PUSH, но медленнее, чем три или четыре инструкции PUSH. Если вы хотите сохранить только несколько регистров, то лучше сделать это с помощью инструкции PUSH. Такое же замечание можно сделать относительно инструкций POPA и POP.

Соседние файлы в папке КС-ZAO