:
JMP op
, .. , . : .
, :
JMP <>
:
JMP L
L: MOV AX, 0
, , (.. IP. IP). 1 ( ), 2 ( ). . , .
JMP <> JMP < >
, (, IP).
:
B DW L; (),
;
; L, ..
MOV DX, B; DX L
JMP DX; goto [DX] = goto L ,
; DX
JMP B; goto [B] = goto L
; , B
L: MOV AX, 0
, . , JMP Z, Z ( ). Z , . Z JMP, : Z , , Z DW, .
Z: INC AX
JMP Z; goto Z
Z DW L
JMP Z; goto L
Z , .. , , . : , Z . Z , .
, PTR. Z WORD PTR Z, , Z , .
JMP Z; goto Z
Z: INC AX
JMP WORD PTR Z; goto L
Z DW L
, . : , (ZF, SF ..), .
|
|
:
CMP op1, op2
, . CMP , , . ZF, SF, CF, OF.
, :
JXX <>
, , J ( jump ), , .
.
1. , .
, . :
E equal ();
N not ();
G greater () ;
L less () ;
A above (, ) ;
B below (, ) .
. , .
. 1 , ( -).
1
,
JE | op1 = op2 | ZF = 1 |
JNE | op1 <> op2 | ZF = 0 |
JL / JNGE | op1 < op2 | SF <> OF |
JLE / JNG | op1 <= op2 | SF <> OF ZF = 1 |
JG / JNLE | op1 > op2 | SF = OF ZF = 0 |
JGE / JNL | op1 >= op2 | SF = OF |
JB / JNAE | op1 < op2 | CF = 1 |
JBE / JNA | op1 <= op2 | CF = 1 ZF = 1 |
JA / JNBE | op1 > op2 | CF = 0 ZF = 0 |
JAE / JNB | op1 >= op2 | CF = 0 |
, , . : - . .
:
X,Y,Z . Z X Y.
MOV AX,X CMP AX,Y JGE L1 MOV AX,Y L1: MOV Z,AX | MOV AX,X CMP AX,Y JAE L1 MOV AX,Y L1: MOV Z,AX |
2. .
, 1 , N (not), .
|
|
. 2 .
2
JZ | ZF=1 | JNZ | ZF=0 |
JS | SF=1 | JNS | SF=0 |
JC | CF=1 | JNC | CF=0 |
JO | OF=1 | JNO | OF=0 |
JP | PF=1 | JNP | PF=0 |
: JE JZ, JNE JNZ, JB JC, JNB JNC.
:
X,Y,Z . Z = X*X + Y, Z , ERROR .
MOV AL, X
MUL AL
JC ERROR; X*X > 255 (CF=1) > ERROR
ADD AL, Y
JC ERROR; CF=1 > ERROR
MOV Z, AL
3. ( CX).
:
JCXZ <>
JCXZ (jump if CX is zero) :
if CX = 0 then goto <>
, , LOOP (. ).
( , 128 30-40 ). :
CMP AX,BX
JNE L; if AX<>BX then goto L
JMP M; goto M
L: ..
M AX BX.
1.2.2.
. , :
) if X>0 then S1 else S2
) while X>0 do S
) repeat S until X>0
S, S1 S2 , X , , . 3.
3
if X>0 then S1 else S2 | while X>0 do S | repeat S until X>0 | ||||||||||||
CMP X, 0
JLE L1
JMP L2
L2: | BEG: CMP X, 0
JLE FIN
JMP BEG FIN: .
|
CMP X, 0 JG BEG |
LOOP :
LOOP <>
( ):
CX:=CX1;
; (
; CX)
IF CX<>0 THEN GOTO <>;
LOOP , N :
MOV CX, N; CX
; N (N>0)
L:;
;
LOOP L
:
1) CX.
2) CX , , ( 100 , CX 100).
3) LOOP , . , , :
MOV CX, N; N>=0
JCXZ L1;CX=0 -> L1
L:
;
LOOP L
L1:
JCXZ.
1.2.3.