РЕЖИМЫ АДРЕСАЦИИ, ОПРЕДЕЛЯЕМЫЕ ПОСТБАЙТОМ




MOD       11(W=0) 11(W=1)
R/M
  [BX+SI] [BX+SI]+D8 [BX+SI]+D16 AL AX
  [BX+DI] [BX+DI]+D8 [BX+DI]+D16 CL CX
  [BP+SI] [BP+SI]+D8 [BP+SI]+D16 DL DX
  [BP+DI] [BP+DI]+D8 [BX+SI]+D16 BL BX
  [SI] [SI]+D8 [SI]+D16 AH SP
  [DI] [DI]+D8 [DI]+D16 CH BP
  D16 [BP]+D8 [BP]+D16 DH SI
  [BX] [BX]+D8 [BX]+D16 BH DI

 

 

  ES ПРИМЕЧАНИЕ
  CS W=0 байт, W=1 слово; D=1 в региср, D=0 из регистра; D`=1-D; V=1 счетчик в регистре, V=0 счетчик непосредственный операнд
  SS R/M-регистр или память; REG-общий регистр;SEG-сегментный регистр S=0 расширение (8‑>16)не производится;S=1 расширение производится
  DS D8 непосредственный операнд байт,D16 непосредственный операнд слово

 

 

Наименование операции Мненокод Содержание операции Операнды Код команды Изменяемые флаги
Пересылка MOV dst,src dst src R/M,REG 1000 10 D W MOD REG R/M Не меняются
НЕПОСР à R/M 1100 011W MOD 000 R/M D8 D16
НЕПОСРàREG 1011 W REG D8 D16
ПАМЯТЬ àAX/AL 1010 00 D` W adrm adrs
R/M,SEG 1000 11 D 0 MOD 0 SEG R/M
Положить в стек PUSH opr   R/M 1111 1111 MOD 110 R/M Не меняются
REG 0101 0 REG
SEG 000 SEG 110
Взять из стека POP opr   R/M 1000 1111 MOD 110 R/M Не меняются
REG 0101 1 REG
SEG 000 SEG 111
Флаги в стек PUSHF     1001 1100 Не меняются
Флаги из стека POPF     1001 1101 Не меняются
Регистры в стек PUSHA     0110 0000 Не меняются
Регистры из стека PUSHA     0110 0001 Не меняются
Перестановка XCHG dst,src Dstßsrc srcßdst REG,R/M 1000 011 W MOD REG R/M Не меняются
REG,AX/AL 1001 0 REG
Пересыл. адреса LEA dst,src dstßадр.scr REG16ßПАМЯТЬ 1000 1101 MOD REG R/M Не меняются
Загр. сегм. данн. LDS dst,src dstßадр.scr DSßSEG scr REG16,ПАМЯТЬ32 1100 0101 MOD REG R/M Не меняются
Загр. сегм. ES. LES dst,src dstßадр.scr ESßSEG scr REG16,ПАМЯТЬ32 1100 0100 MOD REG R/M Не меняются
Сложение ADD dst,src dstßdst+src REG,R/M 0000 00 D W MOD REG R/M SF ZF CF OF PF AF
R/M+НЕПОСР. ОП. 1000 00 S W MOD 000 R/M D8 D16
AX/AL+НЕПОСР.ОП 0000 010 W D8 D16
Сложение c переносом ADC dst,src dstßdst+src+CF REG,R/M 0001 00 D W MOD REG R/M SF ZF CF OF PF AF
R/M+НЕПОСР. ОП 1000 00 S W MOD 010 R/M D8 D16
AX/AL+НЕПОСР.ОП 0001 010 W D8 D16
Увеличение на 1 INC opr oprßopr+1 R/M 1111 111 W MOD 000 R/M SF ZF CF OF PF AF
REG 0100 0 REG
Вычитание SUB dst,src dstßdst-src REG,R/M 0010 10 D W MOD REG R/M SF ZF CF OF PF AF
R/M-НЕПОСР. ОП 1000 00 S W MOD 101 R/M D8 D16
AX/AL-НЕПОСР.ОП 0010 110 W D8 D16
Вычитание с переносом SBB dst,src dstßdst-src-CF REG,R/M 0001 10 D W MOD REG R/M SF ZF CF OF PF AF
R/M-НЕПОСР. ОП 1000 00 S W MOD 011 R/M D8 D16
AX/AL-НЕПОСР.ОП 0001 110 W D8 D16
Декремент DEC opr oprßopr-1 R/M 1111 111 W MOD 001 R/M SF ZF CF OF PF AF
REG 0100 1 REG
Изменение знака NEG opr oprß (‑opr) R/M 1111 011 W MOD 011 R/M SF ZF CF OF PF AF
Умнож. беззнак. MUL src AXßAL*src DX:AXßX*src R/M 1111 011 W MOD 100 R/M CF OF
Умнож. знаков. IMUL src AXßAL*src DX:AXßAX*src R/M 1111 011 W MOD 101 R/M CF OF
Деление беззнак. DIV src ALßAX div src AHßAX mod src R/M 1111 011 W MOD 110 R/M Неопределенное
AXßDX:AX div src DXßDX:AX mod src
Деление знак. IDIV src ALßAX div src AHßAX mod src AXßDX:AX div src DXßDX:AX mod src R/M 1111 011 W MOD 111 R/M Неопределенное
Сравнение CMP op1,op2 op1‑op2 REG,R/M 0011 10 D W MOD REG R/M SF ZF CF OF PF AF
R/M-НЕПОСР. ОП 1000 00 S W MOD 111 R/M D8 D16
AX/AL-НЕПОСР.ОП 0011 110 W D8 D16
Преобразование Байт‑слово CBW AXßAL   1001 1000 Неопределенное
Преобразование Слово‑дв.слово CWD DX:AXßAX   1001 1001 Неопределенное
Отрицание NOT opr ___ oprß opr R/M 1111 011W MOD 010 R/M  
Конъюнкция AND dst,src dstßdst & src REG,R/M 0010 00 D W MOD REG R/M SF ZF PF CF=OF=0
R/M & НЕПОСР. ОП 1000 00 S W MOD 100 R/M D8 D16
AX/AL & НЕПОСР.ОП 0010 010 D8 D16
Дизъюнкция OR dst,src dstßdst Ú src REG,R/M 0000 10 D W MOD REG R/M SF ZF PF CF=OF=0
R/M Ú НЕПОСР. ОП 1000 00 S W MOD 001 R/M D8 D16
AX/AL Ú НЕПОСР.ОП 0000 110 W D8 D16
Исключающее или XOR dst,src dst<‑dst Å src REG,R/M 0011 00 d w mod reg r/m SF ZF PF CF=OF=0
R/M Å НЕПОСР. ОП 1000 00 S W MOD 110 R/M D8 D16
AX/AL Å НЕПОСР.ОП 0011 010 W D8 D16
Проверка бит TEST dst,src Dst & src REG,R/M 1000 010 W MOD REG R/M SF ZF PF CF=OF=0
R/M & НЕПОСР. ОП 1111 011 W MOD 000 R/M D8 D16
AX/AL & НЕПОСР.ОП 1010 100 W D8 D16
Лог. сдвиг влево SHL opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 100 R/M SF ZF PF CF
  cf   opr  
 
Лог. сдвиг вправо SHR opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 101 R/M SF ZF PF CF
  opr   cf  
 
Арифм. Сдвиг влево SAL opr,cnt oprßopr*2cnt R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 100 R/M SF ZF PF CF
Арифм. Сдвиг вправо SAR opr,cnt oprßopr/2cnt R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 111 R/M SF ZF PF CF
         
Цикл..сдвиг влево ROL opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 000 R/M SF ZF PF CF
  cf   opr  
 
Цикл. Сдвиг вправо ROR opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 001 R/M SF ZF PF CF
  Opr   cf  
 
Цикл..сдвиг влево с перенос. RCL opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 010 R/M SF ZF PF CF
  cf   opr  
 
Цикл. Сдвиг вправо с перен. RCR opr,cnt   R/M,НЕПОСР. ОП или CX 1101 00 V W MOD 011 R/M SF ZF PF CF
  opr   cf  
 
Безусловный переход JMP адрес   Короткий 1110 1011 адрес  
Прямой внутрисегмент. 1110 1001 adrm adrs
Косвенный внутрисегм. 1111 1111 MOD 100 R/M
Прямой межсегментн. 1110 1010 adrm adrs segm segs
Косвенный межсегм. 1111 1111 MOD 101 R/M
Вызов подпрограммы CALL адрес   Прямой внутрисегмент. 1100 1000 adrm adrs Не меняются
Косвенный внутрисегм. 1111 1111 MOD 010 R/M
Прямой межсегментн. 1001 1010 adrm adrs segm segs
Косвенный межсегм. 1111 1111 MOD 011 R/M
цикл LOOP мет. CXßCX-1,CX¹0 Короткие переходы от –128 до 127 E2 смещение  
LOOPE мет. LOOPZ мет. CXßCX-1, CX¹0 или ZF=1 E1 смещение
LOOPNE м. LOOPNZ м. CXßCX-1, CX¹0 или ZF=0 E0 смещение
JCXZ метка CX=0   E3 смещение
Условный переход   JE op1 = op2 ZF=1 Любые 74 смещение После команды CMP или команд, изменя-ющих флаги
JZ ZF=1  
JNE op1 ¹ op2 ZF=0 Любые 78 смещение
JNZ ZF=0  
JL / JNGE op1 < op2 Знаковые 7С смещение
JLE / JNG op1 <= op2 Знаковые 7E смещение
JG / JNLE op1 >op2 Знаковые 7D смещение
JGE / JNL op1 => op2 Знаковые 75 смещение
JB / JNAE op1 < op2 Без знака 72 смещение
JBE / JNA op1 <= op2 Без знака 76 смещение
JP / JPE PF=0  
JA / JNBE op1 > op2 Без знака 77 смещение
JAE / JNB op1 => op2 Без знака 73 смещение
JO OF=1   7A смещение
JS SF=1   70 смещение
JNO OF=0   71 смещение
JNS SF=0   79 смещение
Возврат из подпрограммы RET   Далекий 1100 1011 Не меняются
Близкий 1100 0011
Возврат из подпрограммы RET n n- число байтов занимаемые параметрами в стеке Далекий 1100 1010 D8 D16 Не меняются
Близкий 1100 0010 D8 D16
Прерывание INT номер     1100 1101 номер IF TP
Очисть флаг DF CLD DF=0   FC  
Установ.флаг DF STD DF=1   FD  
Очисть флаг CF CLC CF=0   F8  
Измен. флаг CF CMC CF=1‑ CF   F5  
Установ.флаг CF STC CF=1   F9  
                                                   

 

Структура прграммы

title < разместите здесь заголовок>

Page,132

stak segment PARA STACK ‘STACK’

DB 64 DUP (‘STACK’)

STAK ENDS

DATA SEGMENT PARA PUBLIC ‘DATA’

;<поместите здесь данные >

DATA ENDS

;< Если требуется оператор EXTRN, поместите его здесь>

;< Если требуется оператор PUBLIC, поместите его здесь>

 

CODE SEGMENT PARA PUBLIC ‘CODE’



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: