Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
97
Добавлен:
11.02.2014
Размер:
310.27 Кб
Скачать

Контрольные вопросы:

  1. Объясните формирование 20 битного физического адреса по схеме сегмент:смешение?

  2. Сколько режимов адресации существует, расскажите разницу?

  3. Приведите общий формат команды определения данных программ на Ассемблере.

  4. Найдите ошибку в следующих командах:

MOV DS,@DATA

MOV AX,ES

MOV DS,AX

MOV CS,AX

MOV (ячейка памяти), (ячейка памяти)

  1. Назначение команды POP и PUSH, приведите общий формат команды, приведите пример использования этой команды.

  2. Расскажите об операторе PTR.

  3. Назначение команды XCHG, приведите пример использования этой команды.

  4. Найдите ошибку в следующих командах:

XCNG AX,BX

XCHG CX,BL

XCHG ES,DS

XCHG DATA1,AX

  1. Для чего нужен стек в программе?

  2. Расскажите о способах определения сегментов памяти?

Лабораторная работа №4 а Составитель: преп.Каф.ИнформатикиАркабаев Нуркасым Кылычбековичрифметические операции. Битовые команды.

Цель работы:

  • изучить арифметические операции языка ассемблера;

  • научить их использование при составлении программ;

  • дать понятие о битовых командах и их применение;

Теоретическая часть

Арифметические операции на языке ассемблера выполняются над целыми числами четырех типов:

Беззнаковыми двоичными, знаковыми двоичными, упакованными десятичными и неупакованными десятичными.

В данной лабораторной работе рассматриваются арифметические операции над безззнаковыми числами.

Используются следующие команды:

ADD - сложить, SUB - вычесть.

Описание команд: Работают с 8 и 16 битовыми операндами, инструкция ADD выполняет сложение операнда источника (правого операнда) с содержимым операнда приемника (левый операнд), результат помещается в операнд приемник. Инструкция SUB делает тоже самое, только она вычитает операнд источник из операнда приемника, результат помещается в операнд приемник. Операндами могут быть регистры, константы, ячейки памяти в различных комбинациях, но нельзя добавить (вычесть) значение одной ячейки памяти к другой, а так же в качестве операнда источника использовать константу (непосредственное значение. Команда воздействует на шесть флагов: AF,CF,OF,PF,SF,ZF.

Например, флаг переноса CF=1 если результат действия не помещается в операнде приемнике, в противном случае CF=0.

MUL умножить.

Описание команд: инструкция MUL перемножает 8 и 16 битовые безнаковые множители, создавая 16 или 32 битовое произведение. При 8 битовом произведении один из операндов в регистре AL другой может быть 8 битовым регистром общего назначения или переменной памяти соответствующего назначения. Результат помещается в регистр АХ (16 битовый). При 16 битовых множителях один из сомножителей в 16 битовом регистре общего назначения другой в переменной памяти, 32 битовый результат в регистрах DX:AX. При этом младшие 16 бит в AX старшие в DX.

Команда воздействует на два флага: CF, OF.

DIV - разделить.

Описание команд: позволяет разделить 32 битовое значение на 16 битовое значение или 16 битовое на 8 битовое. При делении 16 битового значения делимое помещается в AX, 8 битовый делитель помещается в регистр или в переменную соответствующего размера, Результат (8 битовый) помещается в AL, остаток в AH.

Состояние флагов не определено, но если частное не помещается в регистре AL (AX) процессор генерирует прерывание типа 0 (деление на 0). В заданиях используются директивы и команды, изученные на предыдущих лабораторных работах.

Соседние файлы в папке лабораторные работы по ASSAMBLER