文档介绍:循环程序设计
分支程序设计
第5章循环与分支程序设计
1
分支结构子程序结构
程序结构:
复合结构:多种程序结构的组合
…
顺序结构循环结构
2
编制汇编语言程序的步骤:
(1) 分析题意,确定算法
(2) 根据算法画出程序框图
(3) 根据框图编写程序
(4) 上机调试程序
3
1. 循环程序设计
DO-WHILE 结构 DO-UNTIL 结构
控制条件
初始化
循环体
Y
N
控制条件
初始化
循环体
Y
N
4
初始化:设置循环的初始状态
循环体:循环的工作部分及修改部分
控制条件:计数控制
特征值控制
地址边界控制
5
BX
1
2
3
4
例:把 BX 中的二进制数以十六进制的形式显示在屏幕上
6
……
mov ch, 4
rotate: mov cl, 4
rol bx, cl
mov al, bl
and al, 0fh
add al, 30h ; ’0’~’9’ ASCII 30H~39H
cmp al, 3ah
jl printit
add al, 7h ; ’A’~’F’ ASCII 41H~46H
printit: mov dl, al
mov ah, 2
int 21h
dec ch
jnz rotate
……
7
……
mov bx, 0
newchar: mov ah, 1 ;键盘输入
int 21h
sub al, 30h
jl exit ; <0退出
cmp al, 9
jg exit ; >9退出
cbw
xchg ax, bx
mov cx, 10
mul cx
xchg ax, bx
add bx, ax
jmp newchar
exit: ……
例:从键盘接收十进制数并存入 BX
( ( 0×10)+1 )×10+2 )×10+5
1 2 5
31 32 35
8
……
mov bx, 0
newchar: mov ah, 1 ;键盘输入
int 21h
sub al, 30h
jl exit ; <0退出
cmp al, 10
jl add_to
sub al, 27h ; ‘a’~‘f’
cmp al, 0ah
jl exit ; <‘a’退出
cmp al, 10h
jge exit ; >’f’退出
add_to: mov cl, 4
shl bx, cl
mov ah, 0
add bx, ax
jmp newchar
exit: ……
例:从键盘接收十六进制数并存入 BX
1 a f
31 61 66
((0×16)+1) × 16+0a) × 16+0f
9
2. 分支程序设计
…
case 1 case 2 case n
?
?
case 1 case 2 case n
CASE 结构 IF-THEN-ELSE 结构
(1) 逻辑尺控制
(2) 条件控制
(3) 地址跳跃表(值与地址有对应关系的表)
10