《选择与循环结构》PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环结果处理 状态判别处理
编辑课件ppt结果存放
12
(b) DO…UNTIL<条件> 结构(直到型循环结构,
较常用)
➢先执行,再判断条件 ➢循环体部分至少执行一次
循环初始化
地址指针初值 数据初值 循环次数或条件设定
循环体
循环公共操作
Y 继续循环条件? N
循环结果处理
状态判别处理 结果存放
循环可以嵌套(多重循环)编,辑课但件p各pt 循环结构之间不能交13 叉
4
IF…THEN…ELSE结构
程序结构:
N
条件满足
Y

处理P1
标号1: 处理P2
标号2:
TEST/CMP指令 Jx 标号1 处理体P1
…… JMP 标号2 标号1: 处理体P2
……
标号2:其他指令 ……
编辑课件ppt
5
CASE结构
条件1
成立?
Y P1
标号1: N
条件2
成立?
Y P2
… 标号2: N
;不满足转标号3
处理体P3…
JMP 标号n+1
标号3:TEST/CMP指令(测试条件4)


标号n+1:(公共出口)
编辑课件ppt
6
[4.6.2] 1.二路分支结构程序设计
P.135
[例] 从键盘输入一位数字,判断其奇偶性,并在屏 幕输出一个标志,若为奇数,则输出1,否则输出0。
画出流程图。
Y
偶数?
;数据段
STRING DB 'HOW DO YOU DO!$'
.STACK 200
;堆栈段,预留200字节
.CODE
;代码段
START:MOV AX,@DATA
;取数据段地址
MOV DS,AX
MOV DX,OFFSET STRING ;取字符串首地址
MOV AH,9
;9号DOS功能调用,输出字符串
INT 21H
补充[例1]将BUF单元开始的三个单元内容相加存放到SUM单元中。
DATA SEGMENT
;数据段
BUF DB 12H,31H,0A5H ;定义三个原始数据
SUM DB ?
;定义存放累加和的字节单元,无初值
DATA ENDS
CODE SEGMENT
;代码段
ASSUME CS:CODE,DS:DATA ;段说明
编写上述两程序并调试,对结果进行讨论。
编辑课件ppt
11
4.6.3 循环结构程序的设计
P.137
(a) DO WHILE <条件> 结构(当型循环结构,较
少用)
➢ 先判断条件,再执行
➢ 循环体部分有可能一次都不执行。
循环初始化
地址指针初值 数据初值
循环次数或条件设定
循环结束条件? Y
N
循环体
循环公共操作
• 调试
DEBUG 试运行、验证、诊断、修改
最终程序
编辑课件ppt
3
4.6.2 分支结构程序的设计 IF…THEN结构
P.135
条件满足 Y

N 处理 标号:
程序结构:一个入口,一个出口
……
测试/比较指令 (TEST/CMP) 条件转移指令 (Jx 标号)
处理体
标号: 其他指令 ……
编辑课件ppt
条件n
成立?
标号n: N
Pn+1
标号n+1:
Y Pn
程序结构:

TEST/CMP指令(测试条件1)
Jx 标号1
;不满足转标号1
处理体P1…
JMP 标号n+1
标号1:TEST/CMP指令(测试条件2)
Jx 标号2
;不满足转标号2
处理体P2…
JMP 标号n+1
标号2:TEST/CMP指令(测试条件3)
Jx 标号3
MOV AL,x ;取x
CMP AL,0 ;作x-0比较
JGE GE1 ;x≥0则转
MOV AL,-1
JMP EX ;否则x<0则赋-1
GE1: JE ZERO ;x≥0前提下x=0则转 (同JZ )
MOV AL,1 ;x≥0前提下x≠0则x>0赋+1
JMP EX ;转存结果
ZERO:
MOV AL,0 ;x=0则赋0
MOV AH,4CH
;返回DOS
INT 21H
END START
;汇编结束
编辑课件ppt
2
汇编语言程序调试过程

编辑建立汇编语言源程序 EDIT
写字板、记事本
源文件 .ASM
• 汇编
MASM
目标文件 .OBJ
列表文件.LST 交叉引用文件.CRF
• 链接
LINK
可执行文件 .EXE
连接映象文件.MAP
1, 当x>0 y = 0, 当x=0
-1, 当x<0
画出程序流程图,见教材P136图4.6。
编辑课件ppt
9
;P.136求x的符号函数的完整程序
.MODEL SMALL
;小模式
.DATA
;数据段
x DB -18
y DB ?
.CODE
;代码段
START:MOV AX,@DATA
;取数据段
MOV DS,AX
第四章 汇编语言的程序设计
4.6.2 基本程序结构的设计
顺序结构,分支结构,循环结构是用汇编 语言进行程序设计的基本程序结构。下面 主要学习形成这些结构的程序控制方法和 指令用法。
编辑课件ppt
1
简化段的定义
例——在显示器上显示“HOW DO YOU DO!”
.MODEL SMALL
;小模式
.DATA
POP AX
;弹出AX中标志内容
MOV AH,2 ;2号DOS系统调用
MOV DL,AL ;输出奇数/偶数标志
INT 21H
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
编辑课件ppt
8
END BEGIN ;汇编到此结束
[4.6.2] 2.多路分支结构程序设计
[例] 任意给定x值(-128≤x≤+127),求以下符号 函数y的值。
一个入口
百度文库
JMP DISP
EVN: MOV AL,30H ;偶数,置“0”标志 DISP: MOV AH,2 ;2号DOS系统调用
一个出口
PUSH AX ;保存AX中标志内容(因为2号INT 21H会将DL→AL)
MOV DL,0AH ;输出换行
INT 21H
MOV DL,0DH ;输出回车
INT 21H
EX: MOV y,AL ;存结果
是否需要
MOV AH,4CH INT 21H END START
;返回DOS 加JMP ;汇编结束 EX?
编辑课件ppt
一个入口
一个出口
10
分支程序作业:
1、编写程序,将DISP单元中存放的单字节内容以十 六进制字符形式输出显示。
2、求X、Y两个双字节无符号数的差的绝对值存入Z 单元。
N
一个入口
AL<--30H
AL<-31H
输出AL
一个出口
编辑课件ppt
7
CODE SEGMENT
;代码段
ASSUME CS:CODE
BEGIN:MOV AH,01H
;1号DOS系统调用
INT 21H
;键入一位数字送AL且显示
TEST AL,01H ;测试最低位
JZ EVN
;偶数,转
MOV AL,31H ;奇数,置“1”标志
相关文档
最新文档