Пр:= [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 пр.
|
Изменение знака. Инвертирование и Инкремент операнда. Пр.: = пр. + 1 или Пр.: = 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, просмотров: 471. |