文档介绍:汇编语言程序设计 ——分支程序设计
peakeyhust@
主讲:程载和
分支程序设计
简单分支结构
1
跳转表法分支程序设计
2
(1)分支地址表法
3
(2)转移指令表法
4
例3-14:变量X中为一任意有符号字节数,若X为负数,则将其取补码,否则和Y变量相加并将和存放再AX中。
开始
AH ← 0
AL ← X
(AL) < (AH)
AL ← AL求补
X ← AL
结束
AL ←(AL)+Y
Y
N
图3-12 例3-14 程序流程图
DATA SEGMENT
X DB ?
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,0
MOV AL,X
CMP AL,AH
JGE LP1
NEG AL
MOV X,AL
JMP LP2
LP1: ADD AL,Y
LP2: MOV AH,4CH
INT 21H
CODE ENDS
END START
例3-15:根据键盘输入的数字0,1,2或3分别显示信息“8086/8088”,“80386”,“80486”,或“Pentium”。
开始
AL ←数字
(AL)= 0
(AL)= 1
(AL)= 2
M0
M1
M2
M3
显示信息
结束
N
N
N
Y
Y
Y
图3-13 例3-15程序流程图
DATA SEGMENT
MESS0 DB ‘8086/8088’,‘$’
MESS1 DB ‘80386’,‘$’
MESS2 DB ‘80486’,‘$’
MESS3 DB ‘Pentium’,‘$’
DATA ENDS
STACK SEGMENT
DB 80H DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START:MOV AX,DATA
MOV DS,AX
MOV AH,8
INT 21H
AND AL,0FH
CMP AL,0
JZ M0
CMP AL,1
JZ M1
CMP AL,2
JZ M2
M3: MOV DX,OFFSET MESS3
JMP SHORT DISP
M0: MOV DX,OFFSET MESS0
JMP SHORT DISP
M1: MOV DX,OFFSET MESS1
JMP SHORT DISP
M2: MOV DX,OFFSET MESS2
JMP SHORT DISP
;
DISP: MOV AH,09H
INT 21H
;