Для вычисления адреса обращения к физической памяти (при сегментированной структуре математической памяти) требуются, по крайней мере, две процедуры:
· Вычисления по компонентам (В), (Х) и disp прямого адреса в сегменте.
· Преобразования адреса в сегменте сегментированной памяти в адрес линейной физической памяти.
Результатом первого преобразования адреса является получение одной компоненты логического адреса – смещения в сегменте, результатом второго преобразования – получения смещения в линейной памяти.
Для уменьшения неопределенности при использовании вышеописанных смещений используют термины:
· disp – для обозначения смещения в кадре сегмента,
· offset – для обозначения смещения в сегменте,
· линейный адрес – для обозначения адреса (смещения) в линейной (не сегментированной) памяти.
Схема вычисления смещения в сегменте (offset)по компонентам адреса, включая смещение в кадре сегмента (disp), и трансляции сегмента (вычисление линейного адреса в несегментированной памяти) представлена на рис.2.4.
Трансляция сегментов связана с проблемой с (20-й адресной шиной) оперативной памяти. Эта проблема заключается в следующем.
Максимальный адрес сегмента, который может быть записан с сегментный регистр (с учетом четырех нулей в младших разрядах) составляет число:
А max = 220 -24 –1.при использовании этого адреса, как базового адреса сегмента, то в оставшиеся ячейки памяти можно будет записать только 16 слов. В МП с 20-й битовой адресной шиной, остальные данные сегмента запишутся в ячейки оперативной памяти, начиная с нулевого адреса.
В МП IA-32 при работе в реальном режиме (эмуляции МП IA-16) приходится учитывать это явление, используя прием (заворота) 20-й шины адреса.
В защищенном режиме, если включен механизм виртуальной памяти, происходит еще одно преобразование адреса – трансляции страниц.
В (МП IA-16) – трансляция страниц (виртуальная память) не реализована.
Указатель команд IP.
Это 16-ти битный регистр – счетчик, вычисляющий адрес следующей команды (в кодовом сегменте) по числу байт в текущей команде. Программе указатель команд доступен только частично по командам передачи управления. В начальное состояние IP устанавливается автоматически в процедуре включения процессора. Прямой доступ к IP по записи или чтению не предусмотрен (но возможен доступ к содержимому IP после его копирование в стеке).
Регистр состояния (флагов).
Это 16-ти битный регистр, в котором сгруппированы управляющие сигналы режимов работы основных систем процессора и флаги кодов условий для условных команд передач управления.
Флаги кодов условий передач управления:
· CF – арифметический перенос в старшие разряды,
· PF – четность (наличие четности кода результата),
· AF – дополнительный (десятичный) перенос из младшей тетрады,
· ZF – нулевой результат,
· SF – знак результата (для дополнительного кода),
· OF – переполнение,
· TF – трассировка (прерывание после выполнения каждой команды для работы в режиме отладки программы),
· IF – разрешение прерывания,
· DF – направление обработки строк.
Вопросы для самопроверки:
1. Основные группы пользовательских регистров,
2. Группа регистров данных в составе РОН МП IA-16?
3. Группа регистров адресов в составе РОН МП IA-16
4. Предназначение регистра IP в МП IA-16,
5. Предназначение регистра F (флагов) в МП IA-16,
6. Основные биты кода условий передачи управления в регистра F (флагов),
7. Назначение сегментных регистров в МП IA-16,
8. Число сегментных регистров в МП IA-16,
9. Спецификации сегментных регистров в МП IA-16,
10. Команды загрузки сегментных регистров в МП IA-16,
11. Причины использования задания адреса в сегменте тремя компонентам,
12. Компоненты адреса, используемые при задании адресов объектов в сегменте памяти,
13. Компонента disp при задании адреса в МП IA,
14. Компонента offset при задании адреса в МП IA,
15. Термин "линейный адрес" при задании адреса в МП IA,
16. Процедура трансляции сегмента при обращении к памяти в МП IA-16.