Регистры

Лабораторная работа №1.

ВСТРОЕННЫЙ АССЕМБЛЕР

Ассемблером называется машинно-зависимый компилятор, преобразующий специ­альным образом составленные текстовые строки в машинные инструкции. Как и лю­бой другой компилятор, ассемблер упрощает разработку программ за счет того, что предоставляет пользователю доступ к кодам машинных инструкций и операндам с помощью символьных имен. Встроенный ассемблер имеется в версиях 6.0 и 7.0 Турбо Паскаля и в руках опытного программиста представляет собой мощный инструмент, позволяющий «выжать» из ПК все возможное.

1.1. ОБЩЕЕ ОПИСАНИЕ МП 8086/8088

Встроенный ассемблер (далее - просто ассемблер) дает возможность программиро­вать на уровне отдельных машинных инструкций. Это - главное отличие ассемблера от Паскаля и в этом отличии сосредоточены все его достоинства и недостатки. Досто­инство заключается в том, что, программируя на ассемблере, программист обычно выбирает последовательность машинных инструкций так, чтобы реализовать нужные вычисления с максимальной скоростью при минимальных затратах памяти, в то время как даже такой весьма совершенный компилятор, как компилятор Турбо Паскаля неизбежно вносит в машинный код некоторую избыточность, уменьшающую скорость счета и увеличивающую затраты памяти. С другой стороны, программирование на уровне машинных инструкций - чрезвычайно хлопотное занятие и не может сравнить­ся по скорости разработки программ с программированием на Паскале - в этом заклю­чается главный недостаток ассемблера.

Чтобы использовать средства ассемблера, необходимо ясно представлять себе де­тали архитектуры микропроцессоров Intel 80x86.

Регистры

В МП 8086/8088 имеется 14 регистров. В функциональном отношении они делятся на группы:

· регистры общего назначения (АХ, ВХ, СХ, DX); предназначены для хранения операндов и выполнения основных команд; любой из них может использовать­ся как совокупность двух независящих друг от друга 8-разрядных регистров: старшего байта регистра (АН, ВН, СH, DH) и младшего байта (AL, BL, CL, DL); например, АХ состоит из АН и AL;

· сегментные регистры (CS, DS, SS, ES); используются для указания сегмента при адресации памяти;

· регистры-указатели (SP, BP, IP); используются для указания смещения при ад­ресации памяти;

· индексные регистры (SI, DI); применяются для индексной адресации;

· регистр флагов; используется для хранения признаков состояния процессора.

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

Регистр АХ. Является основным сумматором. Используется во всех арифметиче­ских операциях (сложить, умножить и т.п.). Только с помощью АХ и его полурегистров AH и AL возможен обмен данными с портами ввода/вывода.

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

Регистр СХ. В основном используется как счетчик при выполнении операций по­вторения и сдвига. Может также участвовать в арифметических операциях.

Регистр DX. Используется как регистр данных в операциях ввода/вывода, а также как сумматор при обработке длинных целых чисел (32-разрядных).

Наши рекомендации