.


:




:

































 

 

 

 


- CALL, INT,RET, JMP




− CALL

CALL (call a procedure - ) :

SS:SP IP ( ), CS, IP ( SS:SP, SS:SP-2) () ;

IP , , CS, IP , ( ). CALL :

CALL ,

.

16- , CALL IP.

INT

INT , n. INT. , , . 8086 - . INT (interrupt - ) :

INT _,

_ , 256 , ( - ). , 256 , IP CS . INT :

1. .

2. CS.

3. IP.

4. TF IF .

5. , _ 4.

6. CS .

7. 2 IP .

8. IF TF.

, INT CS IP, TF IF 0, CS:IP .

256 . 4 , 1 , .. 0 3FFH.

, INT 21 8086 54 (4 × 21). 54 56, , IP CS, . 256 Intel 5 ( 0 4) . Al, AH, DX, . IBM PC - (BIOS), DOS.

RET

RET (return from procedure - ) , , "" , CALL.

: RET

RET , . ( , RET , ).

RET . NEAR (.. , CALL), RET IP. FAR (.. ), RET : IP, CS.

.

MY_PROC NEAR ( ):

04F0 CALL MY PROC; .

04F3 2: Mov AX,BX; .

04F5...;

...;

...; .

 

 

proc MY PROC; .

0602 Mov CL,6;

...;

...

0622 Ret; ( 04F5h).
0624 My proc Endp; .

CALL 2 (04F3H), MY_PROC (0500H) IP. PROC , MY_PROC NEAR. IP , , , . MOV CL, 6.

RET, IP. , 2.

 

JMP

JMP (jump unconditionally − ) - . () JMP. :

JMP

, CALL. , NEAR FAR, .

JMP , NEAR, , FAR. 128 127 JMP, JMP , , SHORT (short ).

, JMP SHORT 4 . JMP , .

, , , , CF. , , .

(CF, AF, ZF, SF, PF, OF).

: , , .

18 . :

( − , );

( − , );

zf, sf, cf, of, pf.

: Jxx,

;

_ .

_ . . - 128 +127 , Near, 32768 32767 .

.

, .

, . :

− Equal() ;

N − Not () ;

G Greater () ;

L − Less () ;

A Above () ;

B Below () .

4.1 .

1, 2 .

4.1 −

JE o1 = o2 ZF=1
JNE 1≠ o2 ZF=0
JL 1 < o2 SF≠ OF
JLE 1 ≤ o2 ZF=1 SF≠ OF
JG 1 > o2 SF = OF ZF = 0
JB 1 < o2 F = 1
JA 1 > o2 = 0 ZF = 0
JAE 1 ≥ o2 =0

 

, . , , N, . 4.2 .

4.2

JZ ZF = 1 JNZ ZF = 0
JS SF = 1 JNS SF = 0
JC F= 1 JNC F= 0
JO OF = 1 JNO OF = 0
JP PF = 1 JNP PF = 0

 

, . :

JCXZ ; = 0, .

, , .

1. ADD AL,BL; (F=1),

JC TOOBIG; TOOBIG.

2. SUB AL,BL; AL (ZF=1),

JZ ZERO; ZERO.

3. AL,BL; AL BL (ZF=1),

JE ZERO; ZERO.

JZ, JE (jump if equal , ) .

, , . , BXMORE, , .

, :

,; .

JA ME; , (CF=0).

, JA ME JG ME.

, .

 

- LOOP

.

8086 . 1, " " .

LOOP (loop until Count complete ). : LOOP MP,

MP .

1, 0 128+127 , 0. , 65536 ( = 0). :

CX:= CX 1, if CX ≠ 0 then go to < >

Loop :

1. Dec CX; 1 (CX: = CX -1).

2. Cmp CX,0; 0.

3. Jne MP; CX ≠ 0, .

, :

MOV ,100; 3 .
START: MOV AX, TAB+[SI];

INC ;

...;

...; .

LOOP START; 0, START.
...; .

LOOP , 0.





:


: 2016-03-26; !; : 3167 |


:

:

, .
==> ...

1370 - | 1147 -


© 2015-2024 lektsii.org - -

: 0.025 .