
- •Введение. §1 Концепция расширенной машины.
- •1.1 Аппаратура
- •1.2 Программное обеспечение.
- •Ресурсы делятся на Аппаратные (время цпу, Память, Устройства I/o) и информационные (данные, доступные ос, использующиеся программами…)
- •1.3 Цпу
- •Основная память
- •1.5 Устройства ввода / вывода (увв или I/ou)
- •Магнитный диск (мд)
- •1.6 Контроллеры и Шины
- •§2 Конфигурация аппаратуры компьютера
- •§3 Понятие задания.
- •§ 4 Понятие о файлах
- •§ 5 Типы организации файлов ос
- •5.1 Последовательные файлы
- •5.2 Индексно-последовательная
- •Библиотечные файлы
- •Типы записей
- •§6 Аппарат прерывания
- •§1. Конфигурация.
- •§2. Регистры.
- •§3. Организация 16-битовой архитектуры.
- •§4. Адресное пространство процессора.
- •Бывают модели памяти
- •§5. Память.
- •§6. Монитор. Видеоадаптер.
- •§7. Клавиатура.
- •§8. Магнитный диск.
§2. Регистры.
Основная часть регистров - 32 бита. Все регистры делятся на: регистры общего назначения и регистры с плавающей точкой.
Регистры данных – 4 штуки, 32 разряда.
Е – значит END.
А – регистр аккумулятора
B – регистр базы
C – регистр счетчика
D – регистр данных
В 16-битовой архитектуре младший байт L и старший H. Обращение:
AL, AH, BL, BH, CL, CH, DL, DH.
2. Регистры индексов – 2 штуки.
SI – Sourse index
DI – Destination index.
3. Регистры указателей, 3 шт.
Используются, как элементы адресации.
Регистр флагов – один.
Содержит в каждом бите некоторую информацию. Например:
-carry flag – флаг переноса (складываем два числа, одино не помещается в разрядную сетку и тогда попадает в carry flag).
-zeroflag(ZR) = 1, если результат = 0 (= 0, если результат = 1).
-signflag = 1, если число меньше нуля (= 0, если результат больше нуля). Это флаг знака результата.
PSW – это указатель команд и флаги с точки зрения архитектуры.
Регистры сегментов – 16 битов.
-CS – command segment (командный сегмент).
-SS – stack segment (сегмент стека)
-DS – data segment (сегмент данных)
-ES – дополнительный регистр данных.
-GS, FS – два дополнительных сегмента.
§3. Организация 16-битовой архитектуры.
С помощью одного регистра можно записать 216 адресов, т. е. 64 Kb. Это мало. У них 20-тиразрядная шина адреса, следовательно, можно записать 220 адресов, т. е. 1 Mb. Одного регистра на это не хватает, а двух – вполне.
Адрес команды:
CS:TP
CS – сегмент команды
TP – указатель команд.
16 = 24 – для одной цифры четыре разряда в шестнадцатеричной системе. Двоичные легко перевести в шестнадцатеричные. Если старший сегмент имеет старшую цифру, не равную нулю, а остальные – нули, то адрес нормализован.
SSSP – стек,
DSBP – данные – адресация.
Исполнительный адрес - из двух регистров.
В 16-битовой архитектуре адрес можно трактовать, как 5-тибитовое шестнадцатеричное число. Одним регистром шифруется 64 Кб. С помощью младшей цифры можно изменить адрес на один параграф – 16 Кб.
Под PSW в 16-битовой архитектуре понимают эту информацию – регистр и регистр флагов.
Кроме адреса команд еще используются регистры.
SS и SP – тоже для вычисления адреса, но стекового.
SS – stack segment (сегмент стека), SP – stack pointer (указатель на стек).
Еще используются расширенные регистры. В 32битовой архитектуре все покрывается одним регистром.
(EIP, Flags) = PSW.
§4. Адресное пространство процессора.
Модели памяти в 16-битовой архитектуре.
Единица работы – процесс (совокупность кода данных и управляющей информации), следовательно, адресное пространство любого процесса условно состоит из трех частей
1) код.
2) область статических данных (та область, которая выделяется процессу в момент его создания).
3) динамическая область (динамических данных). Выделяется по ходу.
В динамической области две части – стек и куча (heap), если не хватило места. Они хоть и используются процессом, но управляет ими ОС.
В связи с тем, что адресное пространство процессора устроено так – адресация следующая.
CS:IP – к коду
PS:BP – статические данные
SS:SP – стек.
По два регистра.
Различают три разные модели памяти.
Если всего мало, то всего один регистр. Это модель TINY, когда формально 2 регистра, а реально – один (указательный). Это единственная модель с одним регистром.
SMALL – это когда все регистры имеют разные значения, но постоянные в течение выполнения одной программы. Но код – не больше 64 Кб.
Во всех остальных моделях – содержание регистра меняется по ходу программы (кроме SS).