Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ОСПО.doc
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
910 Кб
Скачать
  1. Арифметические действия на языке Ассемблер.

  1. Команды инкремента и декремента

Предназначены для быстрого увелечения/уменьшения на единицу регистровых операндов.

    • Inc BX = add BX,1

    • Dec BX = sub BX,1

Разрядность операции определяется типом операнда, который может быть 8,16,32-разрядный.

  1. Команды сложения и вычитания

Add позволяет выполнить сложение регистровых и других операндов.

ADD DL,AH

ADD DL,10

Оба операнда двухадресных команд должны иметь одинаковую разрядность.

Аналогично операция вычитания SUB.

  1. Умножение и деление.

В ядре процессора Intel MUL перемножает 8,16-биотвые операнды, создавая при этом 16,32-разрядные произведения. Для данной инструкции требуется указать только один операнд второй операнд должен находится в аккумуляторе. Старшая часть произведения будет размещаться в регистре D, а младшая в регистре A.

Пример: 5*8

MOV AL,5

MOV BH,8

MUL BH

MUL – беззнаковая команда.

IMUL – знаковая. В этом случае знаковый разряд операндов в процедуре умножения не участвует, а служит лишь для вычисления знака результата.

DIV – беззнаковое деление. Выполняет деление 16-разрядного на 8-разрядный операнды. В результате частное записывается в регистр AL, а остаток в регистр AH. Делитель всегда регистр DL, делимое – AX.

Пример: 51/10

MOV AX,51

MOV DL,10

DIV DL

;AL = 5, AH = 1.

IDIV - знаковое деление.

  1. Архитектура памяти процессоров i386: системные регистры.

Данные регистры предназначены для организации работы ОС. Бывают следующих типов:

  1. Управляющие(CR0,CR2,CR3 и др)

CR0 – разрешает защищённый режим, управляет страничной организацией памяти, управляет работой сопроцессора.

CR2 – содержит виртуальный (линейный) адрес при обращении к которому возникла ситуация отсутствия страницы в памяти.

CR3 – содержит адрес размещения таблицы страниц.

  1. Отладочные(DR0-DR3)

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

DR7 – регистр управления отладкой, в него заносятся типы точек останова(память/порт)

DR6 – регистр состояния отладки, содержит описание последней точки останова.

  1. Тестовый регистр страничной организации

TR6 – содержит виртуальный адрес, используемый страничными устройствами

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

  1. Регистры защищённого режима.

IDTR – содержит базу и размер таблицы векторов прерываний.

GDTR – содержит базу и размер таблицы глобальных дескрипторов.

LDTR – содержит селектор сегмента таблицы локальных дескрипторов.

TS – содержит селектор сегмента, в котором располагается TSS для текущей задачи.

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

  1. Архитектура процессоров i386: виды адресации.

Операнды - объекты, на которые действуют инструкции или директивы, либо это объекты, которые определяют или уточняют действие инструкция или директив.

Возможна следующая классификация операндов:

постоянные (непосредственные) операнды - число, строка имя или выражение, имеющие

некоторое физическое значение. При этом операнд не должен зависеть от места

расположения программы в памяти (неперемещаемый операнд).

  1. адресные операнды.

  2. перемещаемые операнды.

  3. счетчик адреса, регистровый операнд, базовый и индексный операнды, структурные операнды, записи.

Постоянные (непосредственные) операнды - это число, строка имя или выражение, имеющие некоторое фиксированное значение. При этом операнд не должен зависеть от места расположения программы в памяти.

Адресные операнды - задают физическое положение операндов в памяти с помощью указания двух составляющих адреса: сегмента и смещения, пример: MOV AX, OOOOh

MOVDS,AX

MOV AX, DS: OOOOh

Перемещаемые операнды - это любые символьные имена представляющие адреса памяти, не привязанные жестко к расположению физической памяти. Сегментная составляющая адреса перемещаемого операнда в момент компиляции неизвестна и будет определена только после загрузки исполняемого файла в память для исполнения, пример: .DATA

DATA SEGVENT ; определяем сегмент с именем DATA

MAS DW 25 DIR(O) ; резервируем строку в памяти

CODE SEGMENT

LEA SI, MAS ; ДУФ - команда загрузки регистра SI

Счетчик адреса - это специфический вид операнда, эквивалентный смещению адреса соответствующего той строке, в которой расположен его символ ($). При использовании

данного типа операнда программист должен самостоятельно контролировать длину команд. В процессе компиляции данный символ или выражение с его участием будет заменено на постоянное значение, пример: JMP $+3 ; длина команды 2 байта

CLD ; длина команды 1 байт

MOVAL, lh

Регистровый операнд - в качестве такого операнда используется один из регистров общего назначения.