Chapter 5-Branching Program Design
Chapter 5-Branching Program Design
IF – THEN - ELSE
∣X-Y ∣=?
MOV AX,X
T CMP AX,Y
Condition
JAE LLL
F
XCHG AX,Y
Program LLL: SUB AX,Y
segment MOV [3000],AX
X DB 43F5H
Y DB 37E6H
Instruction format
JMP Statement Label
∣X-Y ∣=?
Instruction format MOV AX,X
Jxx Statement Label CMP AX,Y
JAE LLL
XCHG AX,Y
Conditions LLL: SUB AX,Y
MOV [3000],AX
X DB 43F5H
Y DB 37E6H
Conditional Jump Instructions
Instructions Functions Conditions
JC When Carry(Borrow),jump CF=1
JNC When no Carry(Borrow),jump CF=0
JZ/JE When the result is 0/equal,jump ZF=1
JNZ/JNE When the result is not 0/equal,jump ZF=0
JA/JNBE When above/below and not equal(A﹥B) CF=0 AND ZF=0
JAE/JNB When above or equal/not below(A≥B) CF=0 OR ZF=1
JB/JNAE When below/not above and not equal (A < B) CF=1 and ZF=0
JBE/JNA When below or equal /not above (A≤B) CF=1 OR ZF=1
5.4 Branching Program Design
Example 1
B 42 b 62
C 43 c 63
Input letter
D 44 d 64 →AL
E 45 e 65
F 46 f 66 T
G 47 g 67
AL=‘#’
H 48 h 68
F
I 49 i 69
F
J 4A j 6A AL
K 4B k 6B
≥’A’
L 4C l 6C T
M 4D m 6D
F
N 4E n 6E
AL
≤’Z’
O 4F o 6F
T
P 50 p 70
Q 51 q 71
AL+20H Output
R 52 r 72
→AL ERROR!
S 53 s 73
T 54 t 74 AL→DL
U 55 u 75
Output Letter
V 56 v 76
W 57 w 77
X 58 x 78
End
Y 59 y 79