- •Архитектура эвм
- •Принцип программного управления
- •Принцип параллельной организации вычисления
- •Микропроцессор 8086
- •Компьютерные шины
- •Логика работы мп
- •Регистры общего назначения (рон)
- •Регистры указатели
- •Сегментные регистры
- •Регистр указатель команд ip
- •Регистр флагов flags
- •Организация оперативной памяти
- •Структура программы на Ассемблере
- •Сегментная организация программы
Регистр указатель команд ip
Содержит смещение на команду, которая должна быть выполнена. Прямого доступа к IP –нет, но его содержимое может меняться под воздействием команд: JMP, CALL, RET или отладчиков.
Используется в паре с регистром CS. Благодаря этому регистру комп «знает» что ему делать дальше.
Регистр флагов flags
Содержит информацию о текущем состоянии машины и о результатах выполнения операций. Регистр своего названия не имеет, но в отладчиках его называют FLAGS. Многие арифметические и логические команды изменяют значения флагов.
9 из 16 битов регистра являются активными и называются флагами и имеют свои имена, которые могут быть использованы программистом.
Флаг это бит принимающий значение 1, если он установлен, и значение 0, если он сброшен.
Флаги условий: CF, PF, AF, ZF,SF, OF
Флаги состояний: TF, IF, DF
CF –флаг переноса. Содержит признак переноса из старшего бита или последний бит при операции сдвига.
PF – флаг четности. Устанавливается в 1, если в 8 битах результата очередной команды содержится четное число единиц.
AF – флаг дополнительного переноса. Фиксирует работу над двоично-десятичными операциями.
ZF – флаг нуля. Устанавливается если результат выполнения команды равен нулю.
SF – флаг знака. Копирует старший бит результата выполнения команды.
OF - флаг переполнения.
TF – флаг трассировки. Обеспечивает возможность работы процессора в пошаговом режиме выполнения команд.
IF – флаг внешних прерываний. Если If =1 прерывания разрешены, если IF = 0 –блокируются.
DF – флаг направления. Устанавливает направление обработки строк.
Организация оперативной памяти
В компьютере может быть установлена память объемом от 640 кб до 512 Мб. Команды и данные могут быть записаны по- байтно и словами, но при записи 16 битовых и 32 битовых значений имеется следующая особенность:
16-ричное число 1234 представлены как 34_12
16-ричное число 12345678 представлено как 78_56_34_12
И так, max адрес байтов памяти в Мп 8086 – FFFF. Для его выражения необходимо 20 разрядов, а все регистры имеют только 16 разрядов. Для разрешения этого противоречия используется сегментирование памяти.
Адрес любого байта памяти записывается как пара чисел каждая, из которых выражается 4-мя 16-ричными числами: XXXX:YYYY
XXXX-сегмент. Эта часть обычно представлена в регистрах CS,ES,DS,SS
YYYY – смещение. Хранится в IP,BX,BP,SP
Особенность адресации – её неоднозначность.
Структура программы на Ассемблере
Имеет следующий вид:
Программа
Сегмент стека
Директива распространения памяти
Директива окончания сегмента стека
Сегмент данных
Директива описания данных
Директива окончания сегмента данных
Сегмент кода
Директивы описания распространения памяти между сегментами
Процедура 1
Коды команд
Команда выхода процедуры
Директива окончания процедуры 1
…………………………………………………………………………………………………………………………………….
Процедура N
Коды команд
Команда выхода из процедуры
Директива окончания процедуры N
Директива окончания сегмента кода
Директива окончания программы