20) см.8
21)
22)
23) Организация памяти. Формирование эффективного адреса в реальном режиме и в защищенном режиме.
Память представляет собой непрерывную последовательность байт в оперативной памяти. Каждому байту сопоставлен адрес, который состоит из адреса сегмента памяти, внутри которого находится интересующая нас ячейка памяти и смещения от начала сегмента.
Адресация – это способ доступа к операндам команд.
Бывает семь способов адресации:
- регистровый, когда данные находятся в регистрах указанных в командах.
- непосредственное, когда значение данных содержатся в самой команде.
- прямая адресация – операндом служит метка, указывающая на ячейку памяти, где лежат данные.
- косвенная адресация – операнд содержится в регистрах, которые указывают на какие – либо ячейки памяти. Регистр заключается в [ ].
- базовая – исполнительным адресом, который указывает на данные является сумма значений базового регистра и смещения.
- индексная, аналогична базовому, только используется индексные регистры. Исполнительным адресом является сумма значения индексного регистра и смещения.
- базовая с индексированием, используется для обработки двумерных массивов, исполнительный адрес рассчитывается как сумма значений индексного и базового регистров и возможно смещения.
24)
25) Типы данных в ЭВМ. Опpеделение данных. Упакованный и неупакованный фоpматы.
- db (define byte) – данные определены как байтовые
- dw (word)
- dd (double word)
<имя> <директива> <данные>
DUP – повторяет кол-во данных.
Var db 3 dup (2)
EQU – определяет значение, присваемое элементу данных.
Time equ 100h
Указатель типа данных – PTR (BYTE PTR, WORD PTR)
Представление двоично-десятичных чисел может быть в:
- упакованном формате: каждый байт упакованного десятичного числа содержит две цифры в двоично-десятичном коде, т.е. цифры (0-9). Каждая тэтрада содержит свою цифру. Max число -99.
- неупакованном формате: в байте содержится одна десятичная цифра.
Используется для отображения ASCII кода
«0» - 30h
26)
27) Регистpовая оpганизация пpоцессоpа ПЭВМ (регистры, память, порты).
РОН – регистр общего назначения
СМА – сумматор адреса
P-р Bx – входной регистр
УМУ – устройство микропроцессорного управления
PФ – регистр флагов
РОК – регистр очереди команд
УУШ – управление шиной
ОЗУ – оперативное запоминающее устройство
CS,DS,SS – сегментные регистры
IP – регистр указателя команд
СМА – сумматор адреса
В РОК выбираются команды ОЗУ, когда он освобождается. Очередь команд организована по правилу FI-FO (первый пришел, первый обслужился). 6 уровней РОК позволяют эффективно удовлетворять запросам на команды из процессора, сокращая до минимума затраты МП на выборку очередной команды из памяти. Если выполняется команда условного или безусловного перехода, то РОК очищается и заполняется новым содержимым. Если вызывалась подпрограмма, то прежнее содержимое сохраняется, а по окончании подпрограммы – восстанавливается.
УМУ декодирует очередную команду и вырабатывает последовательность микрокоманд, управляющих обработкой данных.
АЛУ выполняет арифметические и логические команды с учетом состояния PФ, результат через шину передается в память.
СМА формирует физический адрес выбираемый командой или данным, как результат суммирования индексного регистра и смещения. Физический адрес равен: CS+IP.
ОЗУ – оперативная память, в которой байты располагаются последовательно, причем каждый байт имеет свой собственный номер. Память в машине нумеруется не словами, а номером байта, располагающимся первым в слове.
Доступный физический объем памяти определяется разрядностью шины.
ПОРТ – виртуальный или реальный номер регистра внешнего устройства, в котором или из которого мы можем передавать информацию с помощью специальных команд.
Регистры.
EAX – предназначен для выполнения всех арифметических и логических операций. Его специальное назначение – аккумулятор накопления результата и использование в некоторых арифметических командах по умолчанию.
EBX – регистр базы, используется для всех операций, является базовым адресом массива хранения. Для некоторых операций преобразовывает данные XLAT.
ECX – регистр счетчик. Специальное назначение – является счетчиком в командах, которые выполняют циклические действия, или действия над массивами.(LOOP, REP mov SB).
EDX – регистр данных, используется для хранения результатов расширенных данных.
SI, DI – индексные регистры используются для адресации к памяти с модифмкацией этих адресов.
SP – указатель стека, используется для временного хранения памяти.
Стек – часть области памяти, очередь ячеек памяти, которая работает по принципу первый пришел последний обслужился и наоборот. SP указывает на вершину стека, используется в командах работы со стеком.
BP – регистр базового указателя стека.
Сегментные регистры.
CS - регистр сегмента команд
DS - сегмент данных
ES - регистр дополнительных данных
SS - регистр сегмента стека
Память разделена на сегменты. Внутри сегментов адреса ячеек нумеруются от 0. Физический адрес ячейки внутри сегмента вычисляется как сумма от сложения значения сегментного адреса с смещением ячейки в данном сегменте. Адрес в сегментном регистре имеет значение параграфа (число, кратное 16).
IP – регистр указателя команд. Содержит адрес следующей команды.
Регистр флагов. Он предназначен для фиксации результатов выполнения команд и состояние процессора.
С - флаг переносов, содержит перенос из старшего бита в результате арифметических операций и операций сдвига.
Р – флаг паритета, показывает сколько логических единиц получилось в результате выполненной операции. Когда флаг в 0, то нечетное количество единиц получилось в результате каждого действия.
А - арифметический перенос, устанавливает в единицу при наличии переноса из третьего в четвертый разряд.
Z – флаг 0 установится в единицу при получении нулевого результата. Единица, если результат равен 0, иначе Z=0.
S – флаг знака, содержит знак результата (0 – ‘+’, 1 – ‘-’).
Т – пошаговое выполнение действий, используется для отладки программ.
I - флаг прерываний, указывает на возможность внешнего прерывания процесса.
D - флаг направления, обозначает левое или правое направление обработки массивов строковой команды.
О – флаг переполнения, указывает на переполнение старшего бита при выполнении логических операций.
Остальные флаги используются для защитного режима системы.