Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ассемблер-шпоры.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
372 Кб
Скачать
☆

4. Логические сегменты программы. Адресация сегментов

4 типа сегментов:

Сегмент кода – в нем находятся машинные инструкции, кот. составляют текст программы;

Сегмент данных – хранит определенные в программе константы и переменные;

Сегмент стека – хранит промежуточные данные, а также адреса возврата из подпрограммы в точку вызова;

Сегмент дополнительных данных – используется для размещения динамически определяемых переменных. Логические сегменты задаются программистом, так же как порядок расположения их памяти.

5. Сегмент стека. Адресация стека, команды работы со стеком, изменение состояния стека.

Стек задается программно или определяется системно. Программный стек организован по принципу LIFO. Регистр SS содержит базовый адрес текущего сегмента стека, а регистр SP указывает на вершину стека. Стековые команды осуществляют «проталкивание» (PUSH) в стек или «выталкивание» (POP) из стека. Причем, в отличие от обычной памяти, стек растет в область младших адресов, т.е. при

выполнении команды PUSH значение регистра SP аппаратно уменьшается на 2. Помещать в стек и извлекать из него можно только 16-разрядные операнды. т.е. слова. Это значит, что двойное слово, например дальний адрес, помещается и извлекает из стека в два приема, а для помещения в стек одного байта необходимо дополнять его до слова фиктивным байтом.

11. Внешние (аппаратные) прерывания.

С игналы внешних прерываний возникают в устройствах, поступают в МП через контроллер, т.е. обработка аппаратных прерываний включает в себя процедуру управления контроллером.

К 8 входным линиям контроллера IRQ0..IRQ7 подключены выводы внешних устройств, на которых возникают сигналы прерываний. Контроллер направляет сигналы от устройств в МП, на вход IntR и передает по линиям данных номер вектора, через который должна быть вызвана процедура обработки прерывания. N вектора образуется в контроллере путем сложения базового вектора в одном из регистров контроллера и номера линии IRQ. Базовый вектор для одного контроллера =8, следовательно номера векторов соответствующих прерываний лежат в диапазоне 08h..0Fh.

Для обслуживания большого кол-ва устройств, контроллеры объединяются в веерообразную структуру. Один из контроллеров ведущий, второй - ведомый. Соединение производится через канал ввода-вывода. Базовый вектор для ведомого контроллера =70h порт A0h A1h, для ведущего =8h порт 20h 21h.

6. Режимы адресации мп i8086.

Режим

Формат операнда

Сегм

Регистровый

Регистр

------

Непосредств.

данное(число)

CS

Прямой

Смещение(метка)

DS

Косвенный

[BX],[DI],[SI],[BP]

DS

SS

Базовый

[BX]+смещение

[BP]+смещение

DS

SS

Прямой с

инде-ем

[DI]+ смещение

[SI]+ смещение

DS

DS

По базе с

инде-ем

[BX],[SI]+смещ

[BX],[DI]+смещ

[BP][SI]+смещ

[BP],[DI]+смещ

DS

DS

SS

SS

Методом (режимом) адресации называется способ нахождения операнда памяти, при этом сегментный

адрес операнда задан одним из сегментных регистров (явно или по умолчанию), а команда определяет

исполнительный (эффективный) адрес операнда. ЕА = смещение в указанном сегменте.

Операнды: регистры (данные находятся в определенном регистре) и операнды памяти (данные в

памяти). I8086- 24 режима адресации.

1. mov AX,BX-данные должны быть совместимы по типу (берется из регистра в регистр)

2. mov AX,02F1h – в качестве источника можно указывать 16- ил 8-битное значение константы, которые можно представлять в десятичном виде со знаком и без, а также в двоичном или шестнадцатеричном.

3. Указывается непосредственно значение смещения, исполнительный адрес является составной частью команды. Применяется, если операндом служит идентификатор переменной: mov AX, [106], mov Al,var1

4. Исполнительный адрес операнда хранится в регистрах BX, BP, SI, DI. Косвенные регистровые операнды помещаются в скобки. Смещение может быть помещено в регистр при помощи OFFSET.mov AX,[BX]-пересылает В регистр AX 2b из сегмента данных по

мещению =BX.mov[DI],Al- записывается в сегмент данных по значению DI 1b из регистра Al.

5. данный метод адресации используется для доступа к структурным данным, BX помещается в

начальный адрес структуры, указывается сдвиг нужной записи.

mov AX,[BX]+2- значение[DX]+2 в AX:DS

mov [BP]4,AX –в памяти из AX:SS

6.Исполнительный адрес вычисляется как сумма начального адреса и сдвига, помещенного в один из

индексных регистров. Метод используется к доступу к элементам одномерных массивов.

Mov AX,table [DI]

7. Исполнительный адрес ЕА вычисляется как сумма значений базового, индексного регистра и

смещения. Mov AX, table [BP][SI] -для доступа к элементам двумерного массива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]