IF РF= 0, IP:= [met9].
met9-(близкая метка)
--
--
--
--
--
--
--
--
Add ax , bx; Сложить АХ и ВХ.
J np met9; Перейти, если РF
Продолжение таблицы 3.6
Команды управления циклом | |||||||||||||||||||||||||||||
Мнемокод |
Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||||||||||
LOOP met | Повторять цикл пока СХ ≠ 0. CX:=CX-1 If CX ≠ 0, then Go met. | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||||||||||||
Mov cx ,10; Число повторений в СХ. Mov ax ,45; Число в АХ. L : Add ax , bx; Сложить с ВХ. Loop L; Повторить сложение 10 раз. | |||||||||||||||||||||||||||||
LOOPE met LOOPZ met
| Повторять цикл пока CX ≠ 0 и ZF = 1: - пока равно, или
- пока ноль. CX:=CX-1 If CX ≠ 0 and ZF=1 then Go to met. | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||||||||||||
Mov cx ,10; Число повторений в СХ. Mov ax ,45; Число в АХ. L : Cmp ax ,[ bx ]; Сравнить с содержи- мым ячейки по адресу [bx] Inc bx ; Увеличить адрес на 1. Loope L; Повторить сравнение 10 раз. Dec bx ; Уменьшить адрес на 1. Mov dx , bx ; Адрес ячейки в DX. | |||||||||||||||||||||||||||||
LOOPNE met LOOPNZ met
| Повторять цикл пока CX ≠ 0 и ZF= 0: - пока не равно или,
- пока не ноль CX:= CX - 1 If CX ≠ 0 and ZF= 0 then Go to met. | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||||||||||||
Mov cx ,10; Число повторений в СХ. Mov ax ,45; Число в АХ. L : Cmp ax ,[ bx ]; Сравнить с содержи- мым ячейки по адресу [bx] Inc bx ; Увеличить адрес на 1. Loopne L; Повторить сравнение. Dec bx ; Уменьшить адрес на 1. Mov dx , bx ; Адрес ячейки в DX. | |||||||||||||||||||||||||||||
Команды условной установки байта | |||||||||||||||||||||||||||||
SETAE пр. SETN В пр. SETN С пр. | Установить, если: выше или равно; не ниже; нет переноса. IF CF= 0, пр.:= 1. | -- | -- | -- | -- | -- | -- | -- | -- | 0 | |||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения Cmp cx , 43 H; Сравнение, CF = 0. SETA Е AL; AL устанавливается в 1. | |||||||||||||||||||||||||||||
SETB пр. SETС пр. |
Установить, если: ниже, Перенос. IF CF= 1, пр.:= 1. | -- | -- | -- | -- | -- | -- | -- | -- | 1 | |||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения Cmp cx , 75 H; Сравнение, CF = 1. SET С AL; AL устанавливается в 1. | |||||||||||||||||||||||||||||
Продолжение таблицы 3.6
Мнемокод | Описание команд | Флаги, пояснения, примеры | ||||||||||||||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||||||||||||||||
SETBE пр. SETNA пр. |
Установить, если ниже или равно, не выше. IF CF= 1 или ZF= 1, | -- | -- | -- | -- | -- | 1 | -- | -- | 1 | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения Cmp cx , 43 H; Сравнение, CF = 1. SET BE AL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||
SETE пр. SETZ пр. |
Установить, если равно, ноль. IF ZF= 1, пр.:= 1. | -- | -- | -- | -- | -- | 1 | -- | -- | -- | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения Cmp cx , 54 H; Сравнение, ZF = 1. SET E AL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||
SETNE пр. SETNZ пр. |
Установить, если Не равно, не нуль. IF ZF= 0, пр.:= 1. | -- | -- | -- | -- | -- | 0 | -- | -- | -- | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения Cmp cx , 86 H; Сравнение, ZF = 0 SETNZ AL; AL устанавливается в 1 | ||||||||||||||||||||||||||||||||
SETP пр SETPE пр. |
Установить, если четно, паритет чётный. IF PF= 1, пр.:= 1.
| -- | -- | -- | -- | -- | -- | -- | 1 | -- | ||||||||||||||||||||||
М ov cx , 55 H; Операнд в СХ. ADD cx , 86 H; Добавить к СХ 86Н. SETP CL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||
SETNP пр. SETPO пр. |
Установить, если нечетно, паритет нечетный. IF PF= 0, пр.:= 1 | -- | -- | -- | -- | -- | -- | -- | 0 | -- | ||||||||||||||||||||||
М ov cx , 54 H; Операнд в СХ. ADD cx , 86 H; Добавить к СХ 86Н. SETNP AL; AL устанавливается в 1.
| ||||||||||||||||||||||||||||||||
SETA пр. SETNBE пр | Установить, если выше, не ниже и не равно. IF CF= 0, ZF= 0, пр.:= 1 | -- | -- | -- | -- | -- | 0 | -- | -- | 0 | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения. Cmp cx , 43 H; Сравнение, CF и ZF =0. SETA AL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||
SETGE пр. SETNL пр. |
Установить, если Больше или равно, не меньше. IF SF= OF, пр.:= 1 | * | -- | -- | -- | * | -- | -- | -- | -- | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения. Cmp cx , 32 H; Сравнение, SF = OF. SETGE DL; DL устанавливается в 1. | ||||||||||||||||||||||||||||||||
SETL пр. SETNGE пр. |
Установить, если меньше, Не больше IF SF ≠ OF, пр.:= 1
| * | -- | -- | -- | * | -- | -- | -- | -- | ||||||||||||||||||||||
М ov cx , 54 H; Операнд для сравнения. Cmp cx , 62 H; Сравнение, SF ≠ OF. SETL AL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||
Продолжение таблицы 3.6
Мнемокод | Описание команд | Флаги, пояснения, примеры | ||||||||||||||||||||||||||||||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||||||||||||||||||||||||||||||||
SETLE пр . SETNG пр . |
Установить, если меньше или равно, не больше. IF ZF=1 или SF ≠ OF Пр.:= 1 | * | -- | -- | -- | * | 1 | -- | -- | -- | ||||||||||||||||||||||||||||||||||||||
М ov cx , 62 H; Операнд для сравнения. Cmp cx , 62 H; Сравнение, SF ≠ OF, ZF =1. SETLE AL; AL устанавливается в 1. | ||||||||||||||||||||||||||||||||||||||||||||||||
SETS пр. |
Установить, если отрицательно. IF SF= 1, пр.:= 1 | -- | -- | -- | -- | 1 | -- | -- | -- | -- | ||||||||||||||||||||||||||||||||||||||
М ov cx , 54 H; Операнд в СХ. Mov ax , 55 H; Операнд в АХ. SUB cx, ax; 54H - 55H = FFFFF, SF= 1. SETS DL; DL устанавливается в 1. | ||||||||||||||||||||||||||||||||||||||||||||||||
SETNS пр. |
Установить, если положительно. IF SF= 0, пр.:= 1 | -- | -- | -- | -- | 0 | -- | -- | -- | -- | ||||||||||||||||||||||||||||||||||||||
М ov cx , 78 H; Операнд в СХ. Mov ax , 55 H; Операнд в АХ. SUB cx, ax ; 78H - 55H = 23H, SF = 0 SETNS BL; BL устанавливается в 1. | ||||||||||||||||||||||||||||||||||||||||||||||||
SETO пр. |
Установить, если переполнение. IF OF= 1, пр.:= 1 | 1 | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||||||||||||||||||||||||||||||||
М ov cx , 308 H; Операнд в СХ. Mov ax , 55 H; Операнд в АХ. Mul cx, ax ; 308 × 55 = 101A8, OF = 1. SETO BL; BL устанавливается в 1. | ||||||||||||||||||||||||||||||||||||||||||||||||
SETNO пр. |
Установить, если Не переполнение. IF OF= 0, пр.:= 1 | 0 | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||||||||||||||||||||||||||||||||
М ov cx , 38 H; Операнд в СХ. Mov ax , 55 H; Операнд в АХ. Mul cx, ax; 38 × 55 = 1298Н, OF = 0. SETNO BL; BL устанавливается в 1.
| ||||||||||||||||||||||||||||||||||||||||||||||||
Операции над регистрами флагов | ||||||||||||||||||||||||||||||||||||||||||||||||
LANF | Загрузить флаги в AH. AH:=SF, ZF, x, AF, x, PF, x, CF. | -- | -- | -- | -- | * | * | * | * | * | ||||||||||||||||||||||||||||||||||||||
LANF; Загружает флаги в АН. AND ah ,11 H; Маскирует биты AF и CF. JNZ M 3; Переход по “ AF = CF =1”. | ||||||||||||||||||||||||||||||||||||||||||||||||
SANF | Сохранить АН в регистре флагов. SF, ZF, х, AF, х, PF, х, CF:= АН. | -- | -- | -- | -- | * | * | * | * | * | ||||||||||||||||||||||||||||||||||||||
LANF; Загружает флаги в АН. OR ah ,4; Установим PF =1. SANF; Восстановим флаги. | ||||||||||||||||||||||||||||||||||||||||||||||||
Продолжение таблицы 3.6
Мнемокод |
Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||||
PUSHF
PUSHFD | Копировать флаги в стэк. SP: = SP-2, SS:SP:= EF (Flags) SS:[(E)SP]:= EF (E)SP:= SP-4 SS:[(E)SP]:= EF | * | * | * | * | * | * | * | * | * | |||||||||||||
PUSHF; Сохранить флаги в стэке. OR SS :[ SP ], 800 H; Установить OF =1. POPF; Восстановить флаги. | |||||||||||||||||||||||
POPF POPFD | Восстановить флаги из стэка. EF Flags:= SS[(E)SP] (E)SP:= SP-2 EF Flags:= SS[(E)SP] (E)SP:= SP-4 | * | * | * | * | * | * | * | * | * | |||||||||||||
PUSHF; Сохранить флаги в стэке. OR SS :[ SP ], 800 H; Установить OF =1. POPF; Восстановить флаги. | |||||||||||||||||||||||
STC |
Установить флаг переноса. CF := 1 | -- | -- | -- | -- | -- | -- | -- | -- | 1 | |||||||||||||
STC; Флаг переноса CF устанавливается в 1. | |||||||||||||||||||||||
CLC |
Сбросить флаг переноса CF := 0 | -- | -- | -- | -- | -- | -- | -- | -- | 0 | |||||||||||||
CLC; Флаг переноса CF сбрасывается в 0. | |||||||||||||||||||||||
CMC |
Инвертировать флаг переноса CF:=
| -- | -- | -- | -- | -- | -- | -- | -- | * | |||||||||||||
CMC; Если CF =1, то он устанавли- вается в 0, если CF =0, то в 1. | |||||||||||||||||||||||
STD |
Установить флаг направления DF := 1 | -- | 1 | -- | -- | -- | -- | -- | -- | -- | |||||||||||||
Mov cx ,100; Устанавливаем счетчик. STD; Устанавливаем флаг DF в 1. Rep Mov Tab1,Tab2; Пересылаем 100 элементов из Tab2 в Tab. | |||||||||||||||||||||||
CLD |
Сбросить флаг направления DF := 0 | -- | 0 | -- | -- | -- | -- | -- | -- | -- | |||||||||||||
Mov cx ,100; Устанавливаем счетчик, CLD; Сброс флага направленияв 0, Rep Mov Tab1,Tab2;Пересылаем 100 элементов из Tab2 в Tab1. | |||||||||||||||||||||||
STI | Установить флаг разрешения преры-вания IF := 1 | -- | -- | 1 | -- | -- | -- | -- | -- | -- | |||||||||||||
STI ; Устанавливает IF в 1. | |||||||||||||||||||||||
Окончание таблицы 3.6
Мнемокод | Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||||||||
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||||||||
CLI | Сбросить флаг разрешения преры-вания IF := 0 | -- | -- | 0 | -- | -- | -- | -- | -- | -- | |||||||||||||||||
CLI; Сбрасывает IF в 0. | |||||||||||||||||||||||||||
Программные прерывания | |||||||||||||||||||||||||||
INT 21H | Функция DOS 01h. Ввод символа с клавиатуры с эхом на дисплее. Вход : AH = 01H . Выход: AL:= символ | -- | -- | 1 | -- | -- | -- | -- | -- | -- | |||||||||||||||||
Mov ah ,01 h; Код функции DOS в АН Int 21 h ; Копирование в стеке содержи- мого регистров IP, CS, EFLAGS и вызов программы обработки прерывания с функцией 01Н. | |||||||||||||||||||||||||||
INT 21 H |
Функция DOS 02 h . Вывод символа на экран. Вход : AH = 02H DL = ASCII – код символа | -- | -- | 1 | -- | -- | -- | -- | -- | -- | |||||||||||||||||
Mov DL , 41 H; ASCII– код буквы А в DL Mov AH ,02 H; Код функции DOS в АН Int 21 h; Копирование в стеке содержи- мого регистров IP, CS, EFLAGS и вызов программы обработки прерывания с функцией 02Н. | |||||||||||||||||||||||||||
INT 21Н |
Функция DOS 4С h . Завершение программы: Вход: AH = 4СH | 1 | -- | 1 | -- | -- | -- | -- | -- | -- | |||||||||||||||||
Mov AH ,4 CH ;Код функции DOS в АН. INT 21H ; Вызов DOS. | |||||||||||||||||||||||||||
INT 21H |
Функция DOS 09 h . Вывод строки символов на экран. Вход : AH : = 09H DX : = адрес выводимой строки символов. В конце строки должен быть знак $. | -- | * | 1 | -- | -- | -- | -- | -- | -- | |||||||||||||||||
Lea DX , stroka; Адрес строки в DX Mov AH ,09 H; Код функции DOS в АН Int 21 h; Копирование в стеке содержи- мого регистров IP, CS, EFLAGS и вызов программы обработки прерывания с функцией 09Н. | |||||||||||||||||||||||||||
IRET |
Возврат из подпрограммы IP:= [SS:SP] CS:= [SS:SP+ 2] EF Flags:= [SS:SP+ 2] | * | * | * | * | * | * | * | * | * | |||||||||||||||||
Дата: 2018-11-18, просмотров: 528. |