() . 580 . , . , , ( 8.2.3.1,). . SP ; (, SP); , SP; SP: , .
8.2.3.1.
, . .. , 1 2. , : SP ; SP ( 8.2.3.1. ). , SP , .
. , SP. , , + 1. , : , SP, SP ; , SP, SP (. 5.6, ).
, , " ". , , SP. , .
.
SP SPHL (11 111 001), SP HL.
DE : PUSH D (11 010 101). D5 D4 D3 010 DE. :
SP ← (SP) - 1, [(SP)] ← (D), SP ← (SP) - 1, [(SP)] ← ().
DE: POP D (11 010 001). D5 D4 D3 010 DE. :
|
|
← [(SP)], SP ← (SP) + 1, D ← [(SP)], SP ← (SP) + 1.
8.2.4.
, :
1. ;
2. ;
3. ;
4. ;
5. ;
6. ;
7. ;
8. .
(), . , .
. MOV, .
IN OUT . ( -), .
. , , , . ADD SUB , . ADC, SBB , . , . NEG , .
( IMUL, IDIV) ( MUL, DIV). , , . . ( MUL, IMUL) , . ( DIV, IDIV) , , .
. , , , AND, OR, XOR. , . NOT .
. , . , , , . (SR EFLAGS), , .
|
|
8.2.4.1.:
( SHL) ( SHR),
( SAL),
( RCL, RCR),
( ROL, ROR)
8.2.4.1. .
. , N, Z, V, . . (>,<, =) . , , .
TST, . N, Z ( ) .
. bn . Z. n , .
. . BTS bn = 1, - bn = 0. bn .
:
;
;
;
;
.
JMP, PC , . JMP ( ), PC , ( ). PC , , . , .
CALL ( JSR). PC , , ( ), ( ). PC , . RET, PC .
|
|
( ) PC , , . , . 8.2.3.1 , ( Pentium).
8.2.3.1.
JO | V= 1 | JNO | V = 0 |
JB | ( ) = 1 | JNB | ( ) = 0 |
JE | () ZF= 1 | JNE | ( ) Z = 0 |
JBE | ( ) C + Z= 1 | JNBE | () C + Z = 0 |
JS | N= 1 | JNS | N = 0 |
JL | ( ) | JNL | ( ) |
JLE | ( ) | JNLE | () |
, . , Z : , Z = 1 ( 0); , Z = 0 ( 0.
, . , Pentium LOOP . LOOP 1 () . = 0, , ( LOOP). =0, . LOOP , n , n .
INT ( ). PC . . , Pentium 8- , INT. , () . PC, . IRET , .
- , , . , Pentium LAHF SAHF, , , EFLAG EFLAGS . CLC, STC CF = 0, CF = 1, CMC . , .
|
|
. , , . HLT , (Reset). NOP ( ), - , , .
CLI, STI , I . Pentium () IF EFLAGS.
, , . Pentuim CPUID, , , , EDX .
, -, , . ( ) -, - .