Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Прграммная модель МППрограммная модель, или модель МП для программиста, которую мы и будем в основном рассматривать, включает регистры, доступных пользователю на уровне команд. Имеется 14 16-разрядных регистров, которые разделены на три группы. 1. Арифметические регистры или регистры общего назначения (РОН) AX, BX, CX и DX. Допускается отдельная адресация их старшей (H) и младшей (L) половин, т.е. каждый из них можно использовать как 16-битный регистр или как два 8-битных. Предназначены в основном для временного хранения данных, особенно операндов арифметических операций. Каждый из регистров имеет некоторые специальные функции. В частности, AX - аккумулятор и основной регистр для арифметических операций, BX - содержит смещение для косвенной адресации, CX - счетчик числа повторений цикла, DX - используется для организации ввода-вывода. 2. Сегментные регистры хранят начальные адреса четырех сегментов по 64 К. Три из них имеют вполне определенное значение: CS - хранит адрес сегмента кода выполняемой программы, DS - указывает сегмент данных, используемых программой, SS - сегмент стека. ES - дополнительный сегментный регистр, используемый обычно для хранения данных. С сегментацией связаны понятия ближнего (Near) и дальнего (Far) адреса (вызова, перехода). В первом случае доступ к нужной ячейке производится только указанием смещения, а адрес сегмента определяется текущим содержимым соответствующего регистра сегмента. Во втором случае указывается полный адрес CS:IP. 3. Индексные и указательные регистры служат для задания адреса относительно начала соответствующего сегмента. IP (Instruction Pointer, PC - Program Counter) - указатель инструкций (программный счетчик) определяет смещение для следующей выполняемой инструкции в сегменте кода (определенном регистром CS). Программа не может явно изменить его значение. В неявном виде оно изменяется при выполнении команд перехода (JMP, CALL). SP (Stack Pointer) - указатель стека и BP (Base Pointer) - указатель базы предназначены для доступа к текущему сегменту стека, а регистры SI (Source Index - индекс источника), DI (Destination Index - индекс приемника) хранят смещение в текущем сегменте ванных. 4. Регистр флагов F (или регистр слова состояния процессора - PSW) хранит признаки выполнения арифметических и логических операций (переноса, переполнения, нулевого и отрицательного результата, четности, BCD переноса) и управляющие биты (направления, прерываний, ловушки).
Стеком называют память, реализующую безадресное задание операндов по принципу «последний пришел - первый ушел». Стек часто называют магазинной памятью по аналогии с пружинным магазином и может быть построен на основе реверсивного сдвигового регистра. В МП Intel (и соответственно в IBM PC) стек реализуется в оперативной памяти и используется от основания (с наибольшего адреса) к вершине(наименьшему адресу). При этом элементы данных не перемещаются в памяти, а меняется только указатель стека (уменьшается).
|