Программная модель
CPU INTEL
I. Режимы работы
Intel выпускала CPU разной разрядности:
- 16-ти разрядные (i86);
- 24-х разрядные (i286);
- 32-х разрядные (от i386 до Pentium IV);
- 64-х разрядные с архитектурой EPIC (вычисления с параллелизмом команд).
В CPU Intel выделяют 4 программные модели:
1) реальный режим CPU i86:
- для 8- и 16-разрядных персональных ЭВМ;
2) защищенный режим - для 32-х разрядных CPU - поддерживает:
- механизм виртуальной памяти,
- средства защиты задач и памяти,
- процедуру переключения задач;
3) реальный режим 32-х разрядного CPU - режим, с которого стартует ЭВМ:
- 16-ти битовый режим адресации с прямым обращением к памяти,
- доступны 32-х разрядные регистры и команды;
4) виртуальный режим i86 - эмуляция ПО для CPU i86 из защищенного режима:
- запрещен прямой доступ к памяти;
- используются механизмы защиты и виртуальной памяти.
II. Программная модель cpu i86 Модель памяти
CPU Intel были предназначены для:
- управления другими системами;
- широкого круга пользователей;
- обеспечения рынка дешевыми персональными ЭВМ.
ЭВМ на этих CPU снабжались:
- средой программирования на языке Бейсик;
- управляющей ОС;
- простыми офисными системами.
Недостатками являлось:
- ПО могло использовать только 216 = 64 Кбайт памяти;
- что недостаточно для персональных ЭВМ.
Поэтому реализовали модель:
- структурированной математической памяти (рис.1);
- состоящей из 16 сегментов (по 64 Кбайт каждый):
- по адресам, кратным 16,
- 10 сегментов - для ПО пользователей,
- 6 сегментов - для ОС;
- 17 сегмент - под адреса портов;
- увеличение адресного пространства до 220 = 1 Мбайт.
Используются следующие правила задания адресов переменных:
- биты в памяти и в регистрах нумеруются с младших разрядов;
- переменные адресуются по номеру младшего байта;
- переменные располагаются по границам, кратным 2 или 4.
Недостатками математической памяти является:
- не совпадают адреса математической и физической памяти;
- используется механизм преобразования (трансляции) адресов.
Порты ввода/вывода
Порты устройств ввода/вывода:
- программно-доступные ячейки памяти данных устройств;
- проецируются в отдельное пространство ОЗУ;
- доступны по командам:
- работы с портами через регистры:
- чтения из порта - IN, INS,
- записи в порт - OUT, OUTS,
- работы с памятью:
- MOV - пересылка между портом и регистром,
- AND, OR и TEST - работа с отдельными битами портов.
К портам можно обращаться как к:
- байтам (216 = 65 536 байт);
- словам (215 = 32 768 слов);
- двойным словам (214 = 16 384 двойных слов).
К портам с номерами от 1 до 255 можно обращаться по прямым адресам:
- IN
,
24 ;ввод байта из 24-го порта в регистр al,
ax,
eax
В других случаях используется регистр dx:
1) MOV dx, 1024 ; запись адреса порта в dx
2) IN al, dx ;чтение байта из 1024-го порта в регистр al
Регистровый файл
Регистровый файл CPU i86 содержит 14 регистров размером в слово:
Назначение регистров |
Количество |
регистры общего назначения (РОНы) |
8 |
сегментные регистры |
4 |
указатель команд (ip) |
1 |
регистр флагов CPU (Flags) |
1 |
Регистры общего назначения
Регистры |
Назначение |
||
регистры данных |
|||
16 бит |
high (8 бит) 15………..8 |
low (8 бит) 7…………0 |
|
ax = |
ah |
al |
1) непосредственные данные 2) аккумулятор (сумматор) |
bx = |
bh |
bl |
1) непосредственные данные 2) база данных - для задания адреса в сегменте DS |
cx = |
ch |
cl |
1) обработка массивов и строк 2) организация циклов |
dx = |
dh |
dl |
1) непосредственные данные 2) задание номера порта в при вводе/выводе |
регистры адресов |
|||
sp |
указатель стека |
||
bp |
база стека - для задания адреса в сегменте SS |
||
si |
1) индекс элемента массива источника 2) обработка строк |
||
di |
1) индекс элемента массива принимающей стороны (приёмника) 2) обработка строк |
||
Для работы с данными используются регистры:
- для работы со словами - ax, bx, cx, dx, sp, bp, si, di;
- для работы со байтами - ah, al, bh, bl, ch, cl, dh, dl.
