文档介绍:第五章
循环与分支程序设计
11/14/2017
ch5
教学重点
1. 掌握基本程序结构――顺序结构、循环结构、分支结构及其汇编语言程序设计
2. 熟悉常见程序设计问题:
数据范围判断(0~9、A~Z、a~z)
字母大小写转换;
字符串传送、比较等操作
求最大最小值、数据求和、统计字符个数
数组排序,查找,插入,删除
●
11/14/2017
ch5
(3)分支结构(4) 子程序结构
●程序结构
(5)复合结构:多种程序结构的组合
…
(1) 顺序结构(2) 循环结构
11/14/2017
ch5
●编制汇编语言程序的步骤
(1) 分析题意,确定算法
(2) 根据算法画出程序框图
(3) 根据框图编写程序
(4) 上机调试程序
11/14/2017
ch5
顺序程序设计
顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构
一般纯粹的顺序结构的程序设计较少。
11/14/2017
ch5
例
data segment
X dw 5
Y dw 6
Z dw 7
W dw ?
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,X
add ax,Y
add ax,Z
mov W,ax
ret
main endp
code ends
end start
WX+Y+Z
11/14/2017
ch5
例代码转换
;查表法,实现一位16进制数转换为ASCII码显示
data segment
ASCII db 30h,31h,32h,33h,34h,35h
db 36h,37h,38h,39h ;0~9的ASCII码
db 41h,42h,43h,44h,45h,46h;A~F的ASCII码
hex db 0bh ;任意设定一个待转换的一位16进制数
data ends
code segment
main proc far
11/14/2017
ch5
例代码转换
assume cs:code,ds:data
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------
mov bx,offset ASCII ;BX指向ASCII码表
mov al,hex
;AL取得一位16进制数,正是ASCII码表中位移
11/14/2017
ch5
and al,0fh ;只有低4位是有效的,高4位清0
xlat ;换码:AL←DS:[BX+AL]
mov dl,al ;入口参数:DL←AL
mov ah,2 ;02号DOS功能调用
int 21h ;显示一个ASCII码字符
ret
main endp
code ends
end start
例代码转换
11/14/2017
ch5
;查表法,实现一位16进制数转换为ASCII码显示
data segment
ASCII db 30h,31h,32h,33h,34h,35h
db 36h,37h,38h,39h ;0~9的ASCII码
db 41h,42h,43h,44h,45h,46h;A~F的ASCII码
hex db 0bh ;任意设定一个待转换的一位16进制数
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------
mov bx,offset ASCII ;BX指向ASCII码表
mov al,hex ;AL取得一位16进制数,正是ASCII码表中位移
and al,0fh ;只有低4位是有效的,高4位清0
xlat ;换码:AL←DS:[BX+AL]
mov dl,al ;入口参数:DL←AL
mov ah,2 ;02号DOS功能调用
int 21h ;显示一个ASCII码字符
ret
main endp
code ends
end start
11/14/2017
ch5