fasm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
fasm [2024/09/12 08:34] – [IN] arv | fasm [2024/09/26 08:40] (current) – [CLC] arv | ||
---|---|---|---|
Line 663: | Line 663: | ||
ED IN EAX, | ED IN EAX, | ||
| | ||
- | ==== OUT ==== | + | ==== OUT ==== |
Processor : 8086+ \\ | Processor : 8086+ \\ | ||
Flags : no | Flags : no | ||
Line 672: | Line 672: | ||
EF OUT DX,AX ; Вывести слово из AX в порт в/в по адресу в DX (8086+) | EF OUT DX,AX ; Вывести слово из AX в порт в/в по адресу в DX (8086+) | ||
EF OUT DX, | EF OUT DX, | ||
+ | | ||
+ | ==== MOVS, MOVSB, MOVSW, MOVSD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : no | ||
+ | A4 MOVS m8,m8 ; Записать в ячейку по адресу ES:(E)DI байт из ячейки с адресом DS:(E)SI (8086+) | ||
+ | A5 MOVS m16, | ||
+ | A5 MOVS m32, | ||
+ | A4 MOVSB ; Записать в ячейку по адресу ES:(E)DI байт из ячейки с адресом DS:(E)SI (8086+) | ||
+ | A5 MOVSW ; Записать в ячейку по адресу ES:(E)DI слово из ячейки с адресом DS:(E)SI (8086+) | ||
+ | A5 MOVSD ; Записать в ячейку по адресу ES:(E)DI двойное слово из ячейки с адресом DS:(E)SI (80386+) | ||
+ | ==== CMPS, CMPSB, CMPSW, CMPSD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : OF, SF, ZF, AF, PF, CF | ||
+ | A6 CMPS m8,m8 ; Сравнить байт по адресу DS:(E)SI с байтом по адресу ES:(E)DI (8086+) | ||
+ | A7 CMPS m16, | ||
+ | A7 CMPS m32, | ||
+ | A6 CMPSB ; Сравнить байт по адресу DS:(E)SI с байтом по адресу ES:(E)DI (8086+) | ||
+ | A7 CMPSW ; Сравнить слово по адресу DS:(E)SI со словом по адресу ES:(E)DI (8086+) | ||
+ | A7 CMPSD ; Сравнить двойное слово по адресу DS:(E)SI с двойным словом по адресу ES:(E)DI (80386+) | ||
+ | | ||
+ | ==== SCAS, SCASB, SCASW, SCASD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : OF, SF, ZF, AF, PF, CF | ||
+ | AE SCAS m8 ; Сравнить байт по адресу ES:(E)DI с AL (8086+) | ||
+ | AF SCAS m16 ; Сравнить слово по адресу ES:(E)DI с AX (8086+) | ||
+ | AF SCAS m32 ; Сравнить двойное слово по адресу ES:(E)DI с EAX (80386+) | ||
+ | AE SCASB ; Сравнить байт по адресу ES:(E)DI с AL (8086+) | ||
+ | AF SCASW ; Сравнить байт по адресу ES:(E)DI с AX(8086+) | ||
+ | AF SCASD ; Сравнить байт по адресу ES:(E)DI с EAX (80386+) | ||
+ | | ||
+ | ==== STOS, STOSB, STOSW, STOSD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : no | ||
+ | AA STOS m8 ; Сохранить AL по адресу ES:(E)DI (8086+) | ||
+ | AB STOS m16 ; Сохранить AX по адресу ES:(E)DI (8086+) | ||
+ | AB STOS m32 ; Сохранить EAX по адресу ES:(E)DI (80386+) | ||
+ | AA STOSB ; Сохранить AL по адресу ES:(E)DI (8086+) | ||
+ | AB STOSW ; Сохранить AX по адресу ES:(E)DI (8086+) | ||
+ | AB STOSD ; Сохранить EAX по адресу ES:(E)DI (80386+) | ||
+ | | ||
+ | ==== LODS, LODSB, LODSW, LODSD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : no | ||
+ | AC LODS m8 ; Считать байт по адресу DS:(E)SI в AL (8086+) | ||
+ | AD LODS m16 ; Считать слово по адресу DS:(E)SI в AX (8086+) | ||
+ | AD LODS m32 ; Считать двойное слово по адресу DS:(E)SI в EAX (80386+) | ||
+ | AC LODSB ; Считать байт по адресу DS:(E)SI в AL (8086+) | ||
+ | AD LODSW ; Считать байт по адресу DS:(E)SI в AX (8086+) | ||
+ | AD LODSD ; Считать байт по адресу DS:(E)SI в EAX (80386+) | ||
+ | | ||
+ | ==== INS, INSB, INSW, INSD ==== | ||
+ | Processor : 80286+ \\ | ||
+ | Flags : no | ||
+ | 6C INS m8,DX ; Загрузить байт из порта в/в DX в память по адресу ES:(E)DI (80286+) | ||
+ | 6D INS m16, | ||
+ | 6D INS m32, | ||
+ | 6C INSB ; Загрузить байт из порта в/в DX в память по адресу ES:(E)DI (80286+) | ||
+ | 6D INSW ; Загрузить слово из порта в/в DX в память по адресу ES:(E)DI (80286+) | ||
+ | 6D INSD ; Загрузить двойное слово из порта в/в DX в память по адресу ES:(E)DI (80386+) | ||
+ | | ||
+ | ==== OUTS, OUTSB, OUTSW, OUTSD ==== | ||
+ | Processor : 80286+ \\ | ||
+ | Flags : no | ||
+ | 6E OUTS DX,m8 ; Вывести байт из ячейки памяти DS:(E)SI в порт в/в по адресу в DX (80286+) | ||
+ | 6F OUTS DX, | ||
+ | 6F OUTS DX, | ||
+ | 6E OUTSB ; Вывести байт из ячейки памяти DS:(E)SI в порт в/в по адресу в DX (80286+) | ||
+ | 6F OUTSW ; Вывести слово из ячейки памяти DS:(E)SI в порт в/в по адресу в DX (80286+) | ||
+ | 6F OUTSD ; Вывести двойное слово из ячейки памяти DS:(E)SI в порт в/в по адресу в DX (80386+) | ||
+ | | ||
+ | ==== REP, REPE, REPNE ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : no | ||
+ | F3 6C REP INS r/ | ||
+ | F3 6D REP INS r/m16,DX ; Загрузить (E)CX слов из порта в/в DX в память по адресу ES:(E)DI (80286+) | ||
+ | F3 6D REP INS r/m32,DX ; Загрузить (E)CX двойных слов из порта в/в DX в память по адресу ES:(E)DI (80386+) | ||
+ | F3 A4 REP MOVS m8,m8 ; Записать по адресу ES:(E)DI блок из (E)CX байт, считываемый по адресу DS:(E)SI (8086+) | ||
+ | F3 A5 REP MOVS m16,m16 ; Записать по адресу ES:(E)DI блок из (E)CX слов, считываемый по адресу DS:(E)SI (8086+) | ||
+ | F3 A5 REP MOVS m32,m32 ; Записать по адресу ES:(E)DI блок из (E)CX двойных слов, считываемый по адресу DS:(E)SI (80386+) | ||
+ | F3 6E REP OUTS DX,r/m8 ; Вывести блок из (E)CX байт из памяти по адресу DS:(E)SI в порт в/в по адресу в DX (80286+) | ||
+ | F3 6F REP OUTS DX,r/m16 ; Вывести блок из (E)CX слов из памяти по адресу DS:(E)SI в порт в/в по адресу в DX (80286+) | ||
+ | F3 6F REP OUTS DX,r/m32 ; Вывести блок из (E)CX двойных слов из памяти по адресу DS:(E)SI в порт в/в по адрсу в DX (80386+) | ||
+ | F3 AC REP LODS AL ; Считать блок из (E)CX байт по адресу DS:(E)SI в AL (8086+) | ||
+ | F3 AD REP LODS AX ; Считать блок из (E)CX слов по адресу DS:(E)SI в AX 8086 | ||
+ | F3 AD REP LODS EAX ; Считать блок из (E)CX двойных слов по адресу DS:(E)SI в EAX (80386+) | ||
+ | F3 AA REP STOS m8 ; Заполнить блок из (E)CX байт по адресу ES:(E)DI содержимым AL (8086+) | ||
+ | F3 AB REP STOS m16 ; Заполнить блок из (E)CX слов по адресу ES:(E)DI содержимым AX (8086+) | ||
+ | F3 AB REP STOS m32 ; Заполнить блок из (E)CX двойных слов по адресу ES:(E)DI содержимым EAX (80386+) | ||
+ | F3 A6 REPE CMPS m8,m8 ; Найти неравные байты в блоках из (E)CX байт по адресам DS:(E)SI и ES:(E)DI (8086+) | ||
+ | F3 A7 REPE CMPS m16,m16 ; Найти неравные слова в блоках из (E)CX слов по адресу DS:(E)SI и ES:(E)DI (8086+) | ||
+ | F3 A7 REPE CMPS m32,m32 ; Найти неравные двойные слова в блоках из (E)CX двойных слов по адресу DS:(E)SI и ES:(E)DI (80386+) | ||
+ | F3 AE REPE SCAS m8 ; Найти байт не равный AL в блоке из (E)CX байт по адресу ES:(E)DI (8086+) | ||
+ | F3 AF REPE SCAS m16 ; Найти слово не равное AX в блоке из (E)CX слов по адресу ES:(E)DI (8086+) | ||
+ | F3 AF REPE SCAS m32 ; Найти двойное слово не равное EAX в блоке из (E)CX двойных слов по адресу ES:(E)DI (80386+) | ||
+ | F2 A6 REPNE CMPS m8,m8 ; Найти равные байты в блоках из (E)CX байт по адресам DS:(E)SI и ES:(E)DI (8086+) | ||
+ | F2 A7 REPNE CMPS m16,m16 ; Найти равные слова в блоках из (E)CX слов по адресу DS:(E)SI и ES:(E)DI (8086+) | ||
+ | F2 A7 REPNE CMPS m32,m32 ; Найти равные двойные слова в блоках из (E)CX двойных слов по адресу DS:(E)SI и ES:(E)DI (80386+) | ||
+ | F2 AE REPNE SCAS m8 ; Найти байт равный AL в блоке из (E)CX байт по адресу ES:(E)DI (8086+) | ||
+ | F2 AF REPNE SCAS m16 ; Найти слово равное AX в блоке из (E)CX слов по адресу ES:(E)DI (8086+) | ||
+ | F2 AF REPNE SCAS m32 ; Найти двойное слово равное EAX в блоке из (E)CX двойных слов по адресу ES:(E)DI (80386+) | ||
+ | ==== STC ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : CF | ||
+ | F9 STC ; Установить EFLAGS.CF = 1 | ||
+ | | ||
+ | ==== CLC ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : CF | ||
+ | F8 CLC ; Сброс флага EFLAGS.CF | ||
+ | | ||
+ | ==== CMC ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : CF | ||
+ | F5 CMC ; Инверсия флага EFLAGS.CF | ||
+ | | ||
+ | ==== STD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : DF | ||
+ | FD STD ; Установить EFLAGS.DF = 1 | ||
+ | ==== CLD ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : DF | ||
+ | FC CLD ; Сброс флага EFLAGS.DF | ||
+ | |||
+ | ==== STI ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : IF | ||
+ | FB STI ; Установить флаг разрешения внешних маскируемых прерываний | ||
+ | |||
+ | ==== CLI ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : IF | ||
+ | FA CLI ; Сброс флага EFLAGS.IF (внешние маскируемые прерывания запрещены) | ||
+ | | ||
+ | ==== LAHF ==== | ||
+ | Processor : 8086+ \\ | ||
+ | Flags : no | ||
+ | 9F LAHF ; AH = EFLAGS(SF, |
fasm.1726130066.txt.gz · Last modified: 2024/09/12 08:34 by arv