循环程序设计
分支程序设计
第5章 循环与分支程序设计
分支结构 子程序结构
程序结构:
复合结构:多种程序结构的组合
…
顺序结构 循环结构
编制汇编语言程序的步骤:
(1) 分析题意,确定算法
(2) 根据算法画出程序框图
(3) 根据框图编写程序
(4) 上机调试程序
1. 循环程序设计
DO-WHILE 结构 DO-UNTIL 结构
控制条件
初始化
循环体
Y
N
控制条件
初始化
循环体
Y
N
初始化:设置循环的初始状态
循环体:循环的工作部分及修改部分
控制条件:计数控制
特征值控制
地址边界控制
BX
1
2
3
4
例:把 BX 中的二进制数以十六进制的形式显示在屏幕上
……
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
……
……
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
……
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
x dw ?
array_head dw 3,5,15,23,37,49,52,65,78,99
array_end dw 105
n dw 32
例:将正数 n 插入一个已整序的正数字数组
……
mov ax, n
mov array_head-2, 0ffffh
mov si, 0
compare:
cmp array_end [si], ax
jle
循环程序设计 来自淘豆网www.taodocs.com转载请标明出处.