Пр:= [0] + ист.
R, R/M.
--
--
--
--
--
--
--
Movzx ax ,62 H; Перемещает 62Н в
AL и 00 в AH.
MOVSX
пр,ист.
Пересылка операнда со знаковым расширением до размера приемника
Пр:= [3H] + ист.
--
--
--
--
--
--
--
--
Movsx ax ,92 h; Перемещает 92Н
в AL и FF в AH.
Команды ввода-вывода
IN пр,ист
Ввод операнда из порта в регистр.
Пр.- рег. (al,ax,eax)
Ист. - im (порт №), или содержимое рег. DX.
--
--
--
--
--
--
--
--
Mov dx ,20; Номер порта для
команды IN помещаем
в DX.
IN eax , dx; Вводит двойное слово
в EAX. Из порта 20.
Продолжение таблицы 3.6
|
Мнемокод |
Описание команд | Флаги, пояснения, примеры | ||||||||||||||||
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||
|
OUT пр,ист |
Вывод операнда из регистра в порт Пр.- ib (порт или содержимое DX) Ист.- рег. (al,ax,eax). | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Mov al ,20 h; Загружает код пробела в AL. Out 30, al;Выводит его в порт №30. | ||||||||||||||||||
|
Команды пересылки адреса | ||||||||||||||||||
|
LEA пр,ист. |
Загрузка исполнительного адреса в регистр Пр. – регистр Ист. - яч. памяти/рег. | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Lea bx , mem 1;Загрузка адреса ячейки памяти mem1 в регистр BX..
| ||||||||||||||||||
|
LDS пр,ист. | Загрузка полного адреса в приемник. Пр.- это DS и один из РОН. Ист.- адрес ячейки памяти. | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Lds di , tab 1;Загрузка адреса сегмента данных в регистр DS, а смещение tab1 в DI. | ||||||||||||||||||
|
LES пр,ист. | Загрузка полного адреса в приемник. Пр. – ES и один из РОН. Ист.- адрес ячейки памяти. | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Les si , tab 2; Загрузка адреса сегмента данных в ES, а смещение tab2 в регистр SI.
| ||||||||||||||||||
|
LFS пр,ист. | Загрузка полного адреса в приемник Пр. - FS. и один из РОН. Ист. - адрес ячейки памяти. | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Lfs ax , tab 3; Загрузка адреса сегмента данных в FS, а смещение tab3 в регистр в AX.
| ||||||||||||||||||
|
LGS пр,ист. |
Загрузка полного адреса в приемник. Пр. - GS. и один из РОН. Ист.- адрес ячейки памяти. | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||||||||
| Lgs cx , tab 4; Загрузка адреса сегмента данных в GS, а смещение tab3 в регистр в CX.
| ||||||||||||||||||
Продолжение таблицы 3.6
|
Арифметические команды | |||||||||||||||||||||||||||||
|
Команды сложения | |||||||||||||||||||||||||||||
|
Мнемокод |
Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||||||||||
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||||||||||
|
ADD пр,ист. |
Сложение операндов Пр:= пр + ист r/m/i,r/m/im. | * | -- | -- | -- | * | * | * | * | * | |||||||||||||||||||
| Add ax , memw; Добавить содержи- мое ячейки памяти к регистру AX. Add memw , ax; или наоборот. Add al ,10; Добавить 10 к AL. Add ax , bx; Сложить два регистра. | |||||||||||||||||||||||||||||
|
ADC пр,ист. |
Сложение операндов и флага переноса СF. Пр:= пр + ист + CF r/m/i,r/m/im. | * | -- | -- | -- | * | * | * | * | * | |||||||||||||||||||
| Mov ax ,956;Загружает 3ВСН в АХ. Mov bx ,373;Загружает 175Н в ВХ. Add al , bl; Суммирует 0ВСН и 75Н. Результат: 31Н, CF=1. Adc ah , bh;Суммирует 3 , 1 и CF, результат в АХ = 531Н (1329). | |||||||||||||||||||||||||||||
|
AAA | ASCII- коррекция AL после сложения Если AL > 9, то инкремент AL на 6. AL: =0000XXXX+6 Установить AL:= 0000XXXX AH: = AH + 1. | ? | -- | -- | -- | ? | ? | * | ? | * | |||||||||||||||||||
| Mov al ,38;Загружаем слагаемые представленные в ASCII формате. Mov bl, 34; AL и BL. Add al,bl;К AL прибавили 4. Aaa; AX=0102H, CF=AF=1 OR ax ,3030 H; Преобразуем результат в ASCII код. | |||||||||||||||||||||||||||||
|
DAA | Десятичная коррекция AL после сложения упакован- ных десятичных (ВСД) чисел. | ? | -- | -- | -- | * | * | * | * | * | |||||||||||||||||||
| Mov ax,18H; 18ВСД в AL. Add al,6; AL + 6BCD =1ЕН. Daa; в АХ 24ВСД, CF=0, AF=1. | |||||||||||||||||||||||||||||
|
INC пр | Инкремент приёмника. Пр.: = пр. + 1 Пр. – рег./память. | * | -- | -- | -- | * | * | * | * | -- | |||||||||||||||||||
| Mov ax ,956; Загружает 956 (3ВСН) в АХ. Inc ax; Теперь в АХ 957 (3ВДН), то есть содержимое регистра увеличивается на единицу. | |||||||||||||||||||||||||||||
Продолжение таблицы 3.6
|
Команды вычитания | ||||||||||||||||||||||||||
|
Мнемокод |
Описание команд | Флаги, пояснения, примеры | ||||||||||||||||||||||||
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||||||||||
|
SUB пр,ист. |
Целочисленное вычитание. Пр.: = пр. – ист. | * | -- | -- | -- | * | * | * | * | * | ||||||||||||||||
| Mov ax ,1329; Загружает 531H в AX, Mov bx ,373; Загружает 175H в BX, Sub ax,bx; AX = 956 (3BCH). | ||||||||||||||||||||||||||
|
SBB пр,ист. |
Вычесть с заемом. Вычитает из приемника источник и содержимое флага CF. Пр.:= пр. – ист. – CF | * | -- | -- | -- | * | * | * | * | * | ||||||||||||||||
| Mov ax , 1329; Загрузить 531H в AX. Mov bx ,373; Загрузить 175H в BX. Sub al , bl; Вычесть 75H из 31H, Sbb ah , bh; Вычесть 1 и CF из 5, давая 3. Полная разность в AX = 956 (3BCH) | ||||||||||||||||||||||||||
|
DEC пр. |
Декремент операнда. Уменьшение операнда на 1. Пр.: = пр. – 1 | * | -- | -- | -- | * | * | * | * | -- | ||||||||||||||||
| Mov ax ,956; Загружает 3ВСН в АХ. Dec ax ; Уменьшает АХ на 1, АХ = 955 (3ВВН). | ||||||||||||||||||||||||||
|
NEG пр.
|
Изменение знака. Инвертирование и Инкремент операнда.
Пр.: = 0 – пр. | * | -- | -- | -- | * | * | -- | * | * | ||||||||||||||||
| Mov ax ,579 BH; В АХ 579ВН. Neg ax; В АХ 0А865Н (то же что и вычитание операнда из нуля. | ||||||||||||||||||||||||||
|
AAS
| ASCII- коррекция AL после вычитания Если AL > 9 То AL:=0000XXXX-6 Установить AL:=0000XXXX AH:=AH - 1 | * | -- | -- | -- | ? | ? | * | ? | * | ||||||||||||||||
| Mov al ,34Н; Загружаем вычитаемые представленные в ASCII формате Mov bl , 38Н; в AL и BL. Sub al,bl;Из AL вычли 8. Aas; AX=FF06H, CF=AF=1. OR ax ,0030 H; Преобразуем результат в ASCII код. | ||||||||||||||||||||||||||
|
CMP пр., ист. | Сравнение. Вычитает второй операнд из первого, устанавливая признаки в регистре флагов. Пр. – ист. | * | -- | -- | -- | * | * | * | * | * | ||||||||||||||||
| Mov ax ,956; Загружает 3ВСН в АХ Mov bx ,373; Загружает 175Н в ВХ Cmp ax , bx; Вычитает из ax, bx и устанавливает флаги. В АХ осталось 956. | ||||||||||||||||||||||||||
Продолжение таблицы 3.6
|
Команды умножения | ||||||||||||||||||
|
Мнемокод |
Описание команд | Флаги, пояснения, примеры | ||||||||||||||||
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | ||||||||||
|
MUL ист. |
Беззнаковое умножение. AX : = AL × ист.
| * | -- | -- | -- | ? | ? | ? | ? | * | ||||||||
| Mov al ,80 H;В АL загружается 128. Mov bl ,47H; В ВL загружается 64. Mul bl; В AX результат -2000 (7D0).
| ||||||||||||||||||
|
IMUL ист. IMUL пр,ист. |
Знаковое умножение AX := AL × ист. DX : AX = AX × ист EDX : EAX:= EAX × ист | * | -- | -- | -- | ? | ? | ? | ? | * | ||||||||
| Mov al ,80 H;В АL загружается -128. Mov bl ,47H; В ВL загружается 64. Imul bl; В AX результат E000Н. | ||||||||||||||||||
|
AAM | Преобразование данных из ASCII кода, в двоичный код после умножения. Делит AL на 10. Частное в AH. Остаток в AL. | ? | -- | -- | -- | * | * | ? | * | ? | ||||||||
| Mov al , 35 H; Сомножители в ASCII Mov cl , 39 H; формате. And al , 0 FH; Преобразуем в And cl , 0 FH; двоичный код. Mul cl; Умножим AL на CL. AAM; Преобразуем результат. OR ax , 3030 H; Представим его в ASCII формате.
| ||||||||||||||||||
|
Команды деления | ||||||||||||||||||
|
DIV ист. |
Беззнаковое деление. Пр:= DX:AX / ист. Ист.-DB -байт Частное AL:= AX/ист Остаток AH:= AX/ист Ист.- DW- слово AX:DX := DX:AX/ ист Ист. – DD- дв. слово EDX,EAX:=EDX, EAX / ист.
| ? | -- | -- | -- | ? | ? | ? | ? | ? | ||||||||
| Mov al , byte 1; Переслать в AL байт. Sub ah , ah; Расширить делимое. Div byte 2; Деление байта на байт. Mov ax , word 1; В АН слово. Div byte 1; Деление слова на на байт. Mov dx , word 2; В DX слово2. Mov ax , word 3; В AX слово3. Div word 1; Дв.слово на слово Mov edx , dword 4; В ЕDX дв.слово. Mov eax , dword 5; В ЕAX дв.слово. Div dword 6; Деление учетверенного слова на двойное слово
| ||||||||||||||||||
Продолжение таблицы 3.6
|
Мнемокод |
Описание команд | Флаги, пояснения, примеры | |||||||||||||||||||||||||
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||||||||
|
IDIV ист. |
Знаковое деление. Выполняет деление знаковых чисел. Пр:= пр / ист. | ? | -- | -- | -- | ? | ? | ? | ? | ? | |||||||||||||||||
| Mov ax ,956; Загрузим 3ВСН в АХ. Mov bx,-300; В BX 0FED4H. Idiv bx; AL = -3 (0FFFDH) в AH =56. | |||||||||||||||||||||||||||
|
AAD | Преобразование данных в ASCII-коде в двоичный код перед делением. AL := (AL+ (10×AH)) | ? | -- | -- | -- | * | * | ? | * | ? | |||||||||||||||||
| Mov ax ,1405 H; Делимое в АХ. Mov bl ,3; Делитель загрузим в ВХ. And 0F0F; Распакуем делимое. Aad; Коррекция делимого.(в АХ 45) Idiv BL; Результат в АХ = 15. | |||||||||||||||||||||||||||
|
Команды расширения знака | |||||||||||||||||||||||||||
|
CBW |
Преобразовать байт в слово. AH 8- 15 : = AL 7 | -- | -- | -- | -- | -- | -- | -- | -- | -- | |||||||||||||||||
| Mov al ,0 FCH; Загрузим – 4 в AL. Cbw; В АХ 0FFFCH (- 4). | |||||||||||||||||||||||||||
|
CWD | Дата: 2018-11-18, просмотров: 691. | ||||||||||||||||||||||||||