: .
: . : , .
:
1. -. (, ASCII- ) COM-. COM- .
2. -. (, ASCII- ) COM- . COM- . (, ASCII- Y). . , .
3. LPT-. (, ASCII- ) LPT-. LPT- .
4. LPT-. (, ASCII- ) LPT- . LPT- . (, ASCII- Y). . , .
9. .
: .
: , . . .
:
1. .
2. cos(0.056739), , .
3. .
4. .
5. sin(0.056739), , .
6. - - ( ).
7. ( - ).
8. .
9. .
10. .
|
|
1. .. IBM PC. .: -, 1994.
2. .. iAPX486. . .: , 1993.
3. .., .., .. IBM PC. .: , 1997.
4. .., .. 80286. . . .: , 1990.
5 ., . IBM PC PS/2. . .: , 1994.
6. .., .. . : -, 1997.
7. . , 1987. - 2- . 1.
8 . . 3.
9 . . .,, 1989.
10. , ., . . .:, 2001 .
1.
1
8086
O | D | I | T | S | Z | A | P | C | |||
IN ACC, PORT | ACC Ü (PORT) | - | - | - | - | - | - | - | - | - | IN PORT AL AX. ( 0-255), DX. |
LAHF | AH Ü FLAGS | - | - | - | - | - | - | - | - | - | LAHF 8080/8086 (SF ZF AF PF CF) AH 7, 6, 4, 2, 0 . . |
LDS DST, SRS. | DS Ü (SRS) DST Ü (SRS + 2) | - | - | - | - | - | - | - | - | - | LDS 32- , SRS. DS, - DST. DST 16- , .. |
LEA DST, SRS | DST Ü ADDR(SRS) | - | - | - | - | - | - | - | - | - | LEA (offset) SRS ( !) DST. SRS , DST 16- , |
LES DST,SRS | ES Ü (SRS) DST Ü (SRS + 2) | - | - | - | - | - | - | - | - | - | LES, ES, , LDS, DS ES |
MOV DST,SRS | DST Ü SRS | - | - | - | - | - | - | - | - | - | DST , SRS |
OUT PORT,ACC | (PORT) Ü ACC | - | - | - | - | - | - | - | - | - | AL AX . ( 0-255), DX. |
POP DST | DST Ü (SP) SP Ü SP + 2 | - | - | - | - | - | - | - | - | - | POP DST, SP 2, |
POPF | FLAGS Ü (SP) SP Ü SP + 2 | * | * | * | * | * | * | * | * | * | POPF FLAGS, , SP 2, |
PUSH SRS | SP Ü SP - 2 (SP) Ü SRS | - | - | - | - | - | - | - | - | - | PUSH SP 2, . SRS 8- . SRS , |
PUSHF | SP Ü SP - 2 (SP) Ü FLAGS | - | - | - | - | - | - | - | - | - | PUSHF SP 2, FLAGS |
SAHF | FLAGS = AH | - | - | - | - | * | * | * | * | * | SAHF AH 7, 6, 4, 2 0 FLAGS, , , , |
XCHG DST,SRS | DSTÛ SRS | - | - | - | - | - | - | - | - | - | XCHG , |
XLAT table | AL Ü (BX + AL) | - | - | - | - | - | - | - | - | - | XLAT , . 256- BX. , , AL. XLAT AL , AL . |
AAA | if (AL & 0Fh) > 9 or (AF = 1) then AL Ü AL + 6 AH Ü AH + 1 AF Ü 1; CF Ü 1 else AF Ü 0; CF Ü 0 AL Ü AL & 0Fh | ? | - | - | - | ? | ? | * | ? | * | , AL , - ( AL |
AAD | AL Ü AH * 10 + AL AH Ü 0 | ? | - | - | - | * | * | ? | ? | ? | AAD , AX, - , DIV IDIV, . AAD AL , - . , DIV , , AH=0. AL, - AH |
AAM | AH Ü AL / 10 AL Ü AL MOD 10 | ? | - | - | - | * | * | ? | * | ? | , - . AX, , AX. , , , |
AAS | if (AL & 0Fh) > 9 or (AF = 1) then AL Ü AL - 6 AH Ü AH - 1 AF Ü 1; CF Ü 1 else AF Ü 0; CF Ü 0 AL Ü AL & 0Fh | ? | - | - | - | ? | ? | * | ? | * | , - , AL - . (DST) , AL. AL |
ADC | DST Ü DST + SRS + CF | * | - | - | - | * | * | * | * | * | ADC , , CF (CF=1), (DST). , . ADC , 16 , .. . |
ADD | DST Ü DST + SRS | * | - | - | - | * | * | * | * | * | ADD (DST). , . |
CBW | if (AL < 80h) then AH Ü 0 else AH Ü FFh | - | - | - | - | - | - | - | - | - | CBW AL AH. . AH 0FFh, AL (.. ) ; AL , AH . , , . |
CMP DST,SRS | (DST - SRS) | * | - | - | - | * | * | * | * | * | CMP , SRS DST, . CMP . . |
CWD | if (AX < 8000h) then DX Ü 0 else DX Ü FFFFh | - | - | - | - | - | - | - | - | - | CWD AX DX. , , AX DX 0FFFFh, (15- ) AX , 0, AX . |
DAA | if (AL & 0Fh) > 9 or (AF = 1) then AL Ü AL + 6 AF Ü 1 else AF Ü 0 if (AL > 9Fh) or (CF = 1) then AL Ü AL + 60h CF Ü 1 else CF Ü 0 | ? | - | - | - | * | * | * | * | * | DAA (, AL). AL , AL . - ; . , - , . , , . ., , AAM (ASCII- ). |
DAS | if (AL & 0Fh) > 9 or (AF = 1) then AL Ü AL - 6 AF Ü 1 else AF Ü 0 if (AL > 9Fh) or (CF = 1) then AL Ü AL - 60h CF Ü 1 else CF Ü 0 | ? | - | - | - | * | * | * | * | * | DAS (, AL). AL , AL |
DEC DST | DST Ü DST - 1 | * | - | - | - | * | * | * | * | * | DST . DST, , |
DIV SRS | if SRS AL Ü AX / SRS AH Ü remainder else AX Ü DX:AX / SRS DX Ü remainder | ? | - | - | - | ? | ? | ? | ? | ? | . SRS , DIV AX SRS, AL (remainder) AH. SRS , DIV DX:AX SRS, AX DX. |
IDIV SRS | if SRS AL Ü AX / SRS AH Ü remainder else AX Ü DX:AX / SRS DX Ü remainder | ? | - | - | - | ? | ? | ? | ? | ? | . SRS , IDIV AX SRS, AL (remainder) AH. SRS , IDIV DX:AX SRS, AX DX. AL (. AX), INT 0 ( ), . 80286 80386 ( ) (80h 8000h), , 8088/8086 INT 0. INT 0, 80286 80386 CS:IP (.. IDIV). 8088/8086 CS:IP , , , IDIV. |
IMUL SRS | if SRS AX Ü AL * SRS; else DX:AX Ü AX*SRS | * | - | - | - | ? | ? | ? | ? | * | . SRS , IMUL SRS AL, AX. SRS , IMUL SRS AX, DX:AX. CF OF (=1), (.. AH , SRS - , DX, SRS - ) - , (=0). |
INC DST | DST Ü DST + 1 | * | - | - | - | - | * | * | * | * | DST . DST, , CF , , , ADD ADC. |
MUL SRS | if SRS AX Ü AL * SRS else DX:AX Ü AX*SRS | * | - | - | - | ? | ? | ? | ? | * | . SRS , MUL SRS AL, AX. SRS , MUL SRS AX, DX:AX. CF OF (=1), (.. AH , SRS - , DX, SRS - ) - , (=0). |
NEG DST | DST Ü DST | * | - | - | - | * | * | * | * | * | NEG destinstion 0 DST. . , . |
SBB DST,SRS | DST Ü DST SRS CF | * | - | - | - | * | * | * | * | * | SBB SRS DST, 1 , (.. CF = 1), DST. , . |
SUB DST,SRS | DST Ü DST SRS | * | - | - | - | * | * | * | * | * | SUB SRS DST DST. , . |
AND DST,SRS | DST Ü DST AND SRS | - | - | - | * | * | ? | * | AND (DST). . | ||
NOT DST | DST Ü NOT DST | ||||||||||
OR DST,SRS | DST Ü DST OR SRS | - | - | - | * | * | ? | * | OR (DST). . | ||
RCL DST,count | * | - | - | - | - | - | - | - | * | RCL , DST, , , COUNT. , DST, CF, CF , , DST. " " COUNT. COUNT 1, OF . COUNT 1, OF , 2 DST. COUNT CL. , , , (CL) 1. 80286 80386 COUNT 31. COUNT , 31, COUNT MOD 32, COUNT 0-31. , - . RCL, 1 , ' , RCL, CL COUNT. , COUNT 1. | |
RCR DST,count | * | - | - | - | - | - | - | - | * | RCR , DST, , , COUNT. , DST, CF, CF , , DST. " " COUNT. RCL. | |
ROL DST,count | * | - | - | - | - | - | - | - | * | ROL , DST, , , COUNT. , DST, . CF , . RCL. | |
ROR DST,count | * | - | - | - | - | - | - | - | * | ROR , DST, , , COUNT. , DST, . CF , . RCL. | |
SAL DST,count | * | - | - | - | * | * | ? | * | * | SAL , DST, , , COUNT. DST, . CF , . RCL. | |
SHL | * | - | - | - | * | * | ? | * | * | , SAL | |
SAR DST,count | * | - | - | - | * | * | ? | * | * | SAR , DST, , , COUNT. DST, , DST. CF , . RCL. | |
SHR DST,count | * | - | - | - | * | * | ? | * | * | SHR , DST, , , COUNT, CL, . DST, . , OF 0, 1. CF , . RCL | |
TEST DST,SRS | (DST AND SRS) | - | - | - | * | * | ? | * | TEST AND . . TEST . , ONE_FIVE_OFF, 1 5 AL . . | ||
XOR DST,SRS | DST Ü DST XOR SRS | - | - | - | * | * | * | * | XOR (DST). . | ||
CMPS DST-string,SRS_string | CMP (DS:SI), (ES:DI); if DF = 0 SI Ü SI + n; n = 1 , 2 DI Ü DI + n else SI Ü SI - n DI Ü DI n. | * | - | - | - | * | * | * | * | * | , , ES:DI, , DS:SI, . . , SI DI 1 ( ) 2 ( ), , 1 2, . . CMPSB, , CMPSW, , , . SI DI . |
CMPSB | |||||||||||
CMPSW | |||||||||||
LODS SRS-str | ACC Ü (DS:SI) if DF = 0 SI Ü SI + n; n = 1 , 2 - else SI Ü SI n. | - | - | - | - | - | - | - | - | - | LODS , DS:SI AX AL, SI ( DF), . LODSB, , LODSW, , , SRS-str . , SI . , , .. AL. |
LODSB | |||||||||||
LODSW | |||||||||||
MOVS DST,SRS | (ES:DI) Ü (DS:SI) if DF = 0 SI Ü SI + n; n = 1 , 2 - DI Ü DI + n else SI Ü SI - n DI Ü DI n. | - | - | - | - | - | - | - | - | - | , DS:SI, ES:DI. SI DI ( ) ( ), . MOVSB, , MOVSW, , , SRS . SI DI SRS DST. |
MOVSB | |||||||||||
MOVSW | |||||||||||
SCAS DST-string | CMP ACC,(ES:DI) if DF = 0 DI Ü DI + n n = 1 , 2 else DI Ü DI - n. | * | - | - | - | * | * | * | * | * | (AL AX) , ES:DI, . . , DI 1 ( ) 2 ( ), , 1 2, . . SCASB, , SCASW, , , . DI . SCAS , . , CMPS |
SCASB | |||||||||||
SCASW | |||||||||||
STOS DST-string | (ES:DI) Ü ACC if DF = 0 DI Ü DI + n; n = 1 , 2 - else DI Ü DI - n. | - | - | - | - | - | - | -- | -- | - | STOS , AL AX, , (ES:DI), DI ( DF), ( ) . STOSB, , STOSW, , , DST-string . , DI . |
STOSB | |||||||||||
STOSW | |||||||||||
REP ( ) | while CX <> 0 CX Ü CX - 1 | - | - | - | - | - | - | - | - | - | REP - , (CMPS, LODS, MOVS, SCAS STOS). REP , CX 0; CX 1 . ( CMPS SCAS , ZF .) CX 0, . CX . ZF CMPS SCAS, . REP, REPE ( ) REPZ ( ) - . REPNZ ( ) REP , CMPS SCAS , ZF , ( REP). REP MOVS ( ) STOS ( ), ", ". ZF . |
CALL ADDRESS | if FAR CALL ( ) PUSH CS CS Ü dest_seg PUSH IP IP Ü dest_offset | - | - | - | - | - | - | - | - | - | CALL , (NEAR-proc), (FAR-proc). CALL , RET CALL ( , CALL ). , CS, IP (IP , CALL), . , IP ( , CALL), . CALL . CALL . |
JMP target | if FAR JUMP ( ) CS Ü dest_seg IP Ü dest_offset | - | - | - | - | - | - | - | - | - | JMP , target. CALL, JMP IP, .. RET . , 16- . . , 127 , ( ); NEAR JMP. "" , "short": JMP short near_by |
RET optional-pop-value | POP IP if FAR RETURN ( ) POP CS SP = SP + optional-pop-value ( | - | - | - | - | - | - | - | - | - | RET , CALL, : - IP; - , CS; - SP optional-pop-value, . , , RET, NEAR, , - FAR. optional-pop-value , SP, "" "" (, , ). |
JA short-label | Jump if CF = 0 and ZF = 0 | - | - | - | - | - | - | - | - | - | JA CMP SUB short-label, ( ) , ( ). -128 127 . |
JAE short-label | Jump if CF = 0 | - | - | - | - | - | - | - | - | - | JAE CMP SUB short-label, . ( .) -128 127 . JNB, , - , JAE. JAE, , . JGE, , . |
JB short-label. | Jump if CF = 1 | - | - | - | - | - | - | - | - | - | JB CMP SUB short-label, , . ( .) -128 127 . JC ( ), JB JNAE ( ) . JB, , . JL, , . |
JBE short-label | Jump if CF = 1 or ZF = 1 | - | - | - | - | - | - | - | - | - | JBE CMP SUB short-label, . ( .) -128 127 . JNA, , - , JBE. JBE, , . JLE, , . |
JC short-label | Jump if CF = 1 | - | - | - | - | - | - | - | - | - | JC short-label, CF (.. =1). -128 127 . JB ( ), JC JNAE ( ) . JNC, , , CF (.. =0). |
JCXZ short-label | Jump if CX = 0 | - | - | - | - | - | - | - | - | - | JCXZ short-label, CX 0. -128 127 . , , (CX) . |
JE short-label | Jump if ZF = 1 | - | - | - | - | - | - | - | - | - | JE CMP SUB short-label, . -128 127 . JZ, , - , JE. |
: JG short-label | Jump if ZF = 0 and SF = OF | - | - | - | - | - | - | - | - | - | JG CMP SUB short-label, , . ( .) -128 127 . JNLE, , - , JG. JA, , . JG, , . |
JGE short-label | Jump if SF = OF | - | - | - | - | - | - | - | - | - | JGE CMP SUB short-label, . ( .) -128 127 . JNL, , - , JGE. JAE, , . JGE, , . |
JL short-label | Jump if SF <> OF | JL CMP SUB short-label, , . ( .) -128 127 . JNGE, , - , JL. JB, , . JL, , . | |||||||||
JLE short-label | Jump if SF <> OF or ZF = 1 | - | - | - | - | - | - | - | - | - | JLE CMP SUB short-label, . ( .) -128 127 . JNG, , - , JLE. JBE, , . JLE, , . |
JNA short-label | - | - | - | - | - | - | - | - | - | JNA - JBE. . JBE | |
JNAE short-label | - | - | - | - | - | - | - | - | - | JNAE - JB. . JB | |
JNB short-label | - | - | - | - | - | - | - | - | - | JNB - JAE. . JAE | |
JNBE short-label | - | - | - | - | - | - | - | - | - | JNBE - JA. . JA | |
JNC short-label | Jump if CF = 0 | - | - | - | - | - | - | - | - | - | JNC short-label, CF (.. =0). -128 127 . JC, , , CF (.. =1). |
JNE short-label | Jump if ZF = 0 | - | - | - | - | - | - | - | - | - | JNE CMP SUB short-label, . -128 127 . JNZ, , - , JNE. |
JNG short-label | - | - | - | - | - | - | - | - | - | JNG - JLE. . JLE. | |
JNGE short-label | - | - | - | - | - | - | - | - | - | JNGE - JL. . JL | |
JNL short-label | - | - | - | - | - | - | - | - | - | JNL - JGE. . JGE. | |
JNLE short-label | - | - | - | - | - | - | - | - | - | JNLE - JG. . JG. | |
JNO short-label | Jump if OF = 0 | - | - | - | - | - | - | - | - | - | JNO short-label, OF (.. =0). -128 127 . JO, , , OF (.. =1). |
JNP short-label | Jump if PF = 0 | - | - | - | - | - | - | - | - | - | JNP short-label, PF (.. =0). -128 127 . JPO, , - , JNP. JP, , , PF (.. =1). |
JNS short-label | Jump if SF = 0 | - | - | - | - | - | - | - | - | - | JNS short-label, SF (.. =0). -128 127 . JS, , , SF (.. =1). |
JNZ short-label | - | - | - | - | - | - | - | - | - | JNZ - JNE. . JNE. | |
JO short-label | Jump if OF = 1 | - | - | - | - | - | - | - | - | - | JO short-label, OF (.. =1). -128 127 . JNO, , , OF (.. =0). |
JP short-label | Jump if PF = 1 | - | - | - | - | - | - | - | - | - | JP short-label, PF (.. =1). -128 127 . |
JPE short-label | - | - | - | - | - | - | - | - | - | JPE - JP. . JP | |
JPO short-label | - | - | - | - | - | - | - | - | - | JPO - JNP. . JNP | |
JS short-label | Jump if SF = 1 | - | - | - | - | - | - | - | - | - | JS short-label, SF (.. =1). -128 127 . JNS, , , SF (.. =0). |
JZ short-label | - | - | - | - | - | - | - | - | - | JZ - JE. . JE | |
LOOP short-label | CX Ü CX - 1 if (CX <> 0) JMP short-label | - | - | - | - | - | - | - | - | - | LOOP CX 1, short-label, CX 0. short-label -128 +127 . |
LOOPE short-label | CX Ü CX - 1 if (CX <> 0) and (ZF = 1) JMP short-label. | - | - | - | - | - | - | - | - | - | LOOPE CMP SUB. CX 1, short-label, CX CMP SUB . short-label -128 +127 . LOOPZ, , - , LOOPE. |
LOOPNE short-label | CX Ü CX - 1 if (CX <> 0) and (ZF = 0) JMP short-label. | - | - | - | - | - | - | - | - | - | LOOPNE CMP SUB. CX 1, short-label, CX CMP SUB . short-label -128 +127 . LOOPNZ, , - , LOOPNE. |
: LOOPNZ short-label | - | - | - | - | - | - | - | - | - | LOOPNZ - LOOPNE. . LOOPNE | |
: LOOPZ short-label | - | - | - | - | - | - | - | - | - | LOOPZ - LOOPE. . LOOPE | |
INT interrupt-num | PUSHF TF Ü 0 IF Ü 0 CALL FAR (INT*4) | - | - | - | - | - | - | - | INT FLAGS , , CS IP , , interrupt-num. IRET, FLAGS . FLAGS , PUSHF. interrupt-num 4. , , IP, - CS. interrupt-num, 3, ; interrupt-num, 3, , (Breakpoint interrupt). | ||
INTO | if (OF = 1) PUSHF TF Ü 0 IF Ü 0 CALL FAR (10h) | - | - | - | - | - | - | - | INTO 4, OF 1; OF = 0, . OF = 1, INT 4; | ||
IRET | POP IP POP CS POPF | * | * | * | * | * | * | * | * | * | IRET , IP, CS FLAGS |
CLC | CF Ü 0 | - | - | - | - | - | - | - | - | CLC . | |
CLD | DF Ü 0 | - | - | - | - | - | - | - | - | CLD ( ) . . SI DI . | |
CLI | IF Ü 0 | - | - | - | - | - | - | - | - | CLI ( ) , . . ( , IF.) | |
CMC | CF Ü NOT CF | - | - | - | - | - | - | - |
|
|
|
|
|
|
|
|