Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ5.DOC
Скачиваний:
2
Добавлен:
22.07.2019
Размер:
53.25 Кб
Скачать

Команда сравнения

СМР Сравнение

Команда СМР выполняет вычитание второго операнда из первого. В соответствии с результатом вычитания устанавлива­ются состояния флагов CF, PF, AF, ZF, SF и OF. Сами опе­ранды не изменяются. Таким образом, если команду сравнения записать в общем виде

cmp операнд_1, операнд_2

то ее действие можно условно изобразить следующим образом:

операнд_1 - операнд_2 -> флаги процессора

В качестве первого операнда можно указывать регистр (кро­ме сегментного) или ячейку памяти, в качестве второго - ре­гистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда од­новременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака. Обычно вслед за командой СМР стоит одна из команд услов­ных переходов, анализирующих состояние флагов процессора.

Пример

cmp AX,562Dh

Je equal ; Переход на метку equal, если AX=562Dh

Ja above ; Переход, на метку above, если

; содержимое АХ, рассматриваемое как

; число без знака, превышает

; беззнаковое число 562Dh

NEG Изменение знака, дополнение до 2

Команда NEG выполняет вычитание знакового целочисленного операнда из нуля, превращая положительное число в отрицательное и наоборот. В качестве операнда можно, указывать регистр (кроме сегментного) или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение.

Примеры

mov АХ, 0001

neg AX ; AX=FFFfh=-l

mov BX, -2 ; BX=FFFgh=-2

neg BX ; BX=0002h

Команды умножения

MUL Умножение целых беззнаковых чисел

Команда MUL выполняет умножение целого беззнакового числа, находящегося в регистре AL (в случае умножения на байт) или АХ (в случае умножения на слово), на операнд-ис­точник (целое число без знака). Размер произведения в два раза больше размера сомножителей.

Для однобайтовых операций один из сомножителей помеща­ется в регистр

AL, после выполнения операции произведение записывается в регистр АХ.

Для двухбайтовых операции один из сомножителей помеща­ется в регистр АХ;

после выполнения операции произведение .записывается в регистры DX:AX (в DX - старшая часть, в АХ – младшая). В качестве операнда-сомножителя можно указывать регистр данных или ячейку памяти; не допускается умножение на не­посредственное значение.

Пример1

mov AL.5 ;Первый сомножитель

mov BL, 3 ;Второй сомножитель

mul BL ;AX=OOOFh (произведение)

Пример 2

mov AX,256 ;Первый сомножитель

mov BX,256 ;Второй сомножитель

mul BX ;DX=0001h, AX=OOOOh

;(число 65536)

Пример 3

mov AL, 251 ;AL=FBh

mov BL,3 ;BL=03h

mu1 BL ;AX=02Flh

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