.


:




:

































 

 

 

 


8. COM LPT




: .

: . : , .

:

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 - - - - - - -




:


: 2016-10-06; !; : 575 |


:

:

.
==> ...

1507 - | 1433 -


© 2015-2024 lektsii.org - -

: 0.016 .