汇编语言程序设计 第5章循环与分支程序设计 在汇编语言程序设计中,程序有顺序 分支、循环和子程序四种基本结构形式。 汇编语言程序设讣的基本过程可分为以下 几个步骤:分析问题。建立数学模型一〉 确定算法—>画流程框图_>编写程序 >上机调试程序 5.1循环程序设计 5.2分支程序设计
汇编语言 程序设计 第5章 循环与分支程序设计 在汇编语言程序设计中,程序有顺序、 分支、循环和子程序四种基本结构形式。 汇编语言程序设计的基本过程可分为以下 几个步骤:分析问题,建立数学模型—> 确定算法—>画流程框图—>编写程序 —>上机调试程序 5.1 循环程序设计 5.2 分支程序设计
汇编语言程序设计 5.1循环程序设计 5.1.1循环程序的结构 盾环程序的组成 个循环程序通常由以下5个部分组成: (1)初始化部分(2)工作部分 (3)修改部分(4)控制部分 (5)结束处理部分
汇编语言 程序设计 5.1 循环程序设计 5.1.1 循环程序的结构 1.循环程序的组成 一个循环程序通常由以下5个部分组成: (1)初始化部分 (2)工作部分 (3)修改部分 (4)控制部分 (5)结束处理部分
汇编语言程序设计 2.循环程序的结构形式 循环程序有两种结构形式 (1)“先执行,后判断”结构 (2)“先判断,后执行”结构 5.1.2循环指令 循环指令L00P 格式:L0OP0PR 测试条件:(CX)≠0
汇编语言 程序设计 2.循环程序的结构形式 循环程序有两种结构形式: (1)“先执行,后判断”结构 (2)“先判断,后执行”结构 5.1.2 循环指令 循环指令LOOP 格式:LOOP OPR 测试条件:(CX)≠0
汇编语言程序设计 当为零或相等时循环指令00PZ/L0OPE 格式:L0OPZ/L0OE0PR 测试条件:ZF=1且(CX)≠0 当不为零或不相等时循环指令 LOOPNZ/ LOOPNE 格式: LOOPNZ/L00PNE0PR 测试条件:ZF=0且(CX)≠=0
汇编语言 程序设计 当为零或相等时循环指令LOOPZ/LOOPE 格式:LOOPZ/LOOPE OPR 测试条件:ZF=1且(CX)≠0 当不为零或不相等时循环指令 LOOPNZ/LOOPNE 格式:LOOPNZ/LOOPNE OPR 测试条件:ZF=0且(CX)≠0
汇编语言程序设计 51.3循环程序设计方法和程序举例 如何控制循环是循环程序设讣中一个重 要环节。控制循环的方法很多,常用的 有 1.用计数器控制循环(循环次数己知) 2.按条件控制循环(循环次数未知) 3.用开关变量控制循环 4.用逻辑尺控制循环
汇编语言 程序设计 5.1.3 循环程序设计方法和程序举例 如何控制循环是循环程序设计中一个重 要环节,控制循环的方法很多,常用的 有: 1.用计数器控制循环(循环次数已知) 2.按条件控制循环(循环次数未知) 3.用开关变量控制循环 4.用逻辑尺控制循环
汇编语言程序设计 例题 例1:求数字1到100的和,将运算结果存储到DX 寄存器中。(代码演示 例2:数组 ARRAY中存储10个字数组,其值分别 为1,2,3,4,5,6,7,8,9,10。求和,并 将其存储到SUM存储单元中。(代码演示 例3:把BX寄存器内的二进制数用十六进制数的 形式在屏幕上显示出来。(代码演示) 扩展 把数组中所有元素以16进制的形式输出到屏幕中 (代码演示)
汇编语言 程序设计 •例题 例1: 求数字1到100的和,将运算结果存储到DX 寄存器中。(代码演示) 例2:数组ARRAY中存储10个字数组,其值分别 为1,2,3,4,5,6,7,8,9,10。求和,并 将其存储到SUM存储单元中。(代码演示) 例3:把BX寄存器内的二进制数用十六进制数的 形式在屏幕上显示出来。(代码演示) •扩展 把数组中所有元素以16进制的形式输出到屏幕中. (代码演示)
汇编语言程序设计 5.1.4多重循环程序设计 例:有一个首地址为A的N字数组编制程 序使该数组中的数按照从大到小的次序 整序.(代码演示 ·1分析 ·2设计 ·3编写代码 4调试
汇编语言 程序设计 5.1.4多重循环程序设计 • 例:有一个首地址为A的N字数组,编制程 序使该数组中的数按照从大到小的次序 整序.(代码演示) • 1.分析 • 2.设计 • 3.编写代码 • 4.调试
汇编语言程序设计 5.2分支结构程序设计 分支程序结构有两种形式:二分支程序结 构和多分支程序结构。 程序的分支一般是通过执行转移指令来实 现的 5.2.1利用比较(或测试)转移指令实现分支程 序设计 5.2.2利用跳转表实现分支程序设计 1)根据表内地址分支 (2)根据表内指令分支 (3)根据表內关键字分支
汇编语言 程序设计 5.2 分支结构程序设计 分支程序结构有两种形式:二分支程序结 构和多分支程序结构 。 程序的分支一般是通过执行转移指令来实 现的 。 5.2.1 利用比较(或测试)转移指令实现分支程 序设计 5.2.2 利用跳转表实现分支程序设计 (1)根据表内地址分支 (2)根据表内指令分支 (3)根据表内关键字分支
汇编语言程序设计 5.2.1利用比较(或测试) 转移指令奥现分支程序设计 例题 求x存储单元中存储的数据的绝对值,将其存入 存储单元xabs中。(代码演示)(开) 读取x到AX寄 存器 扩展 X(X<0) 补 是 1将x的绝对值以16进制显示 将(AX)存入 abs存储单元 2求数组中各个元素的绝对值 结束
汇编语言 程序设计 5.2.1 利用比较(或测试) 转移指令实现分支程序设计 • 例题 求x存储单元中存储的数据的绝对值,将其存入 存储单元x_abs中。(代码演示) x (x>=0) -x (x < 0) |x|= • 扩展 1.将x的绝对值以16进制显示 2.求数组中各个元素的绝对值
汇编语言程序设计 5..1利用比较(或测试) 转移指令奥现分支程序设讣 例题 见教材pl64,折半查找。 中点 首 尾 低半部分 高半部分
汇编语言 程序设计 5.2.1 利用比较(或测试) 转移指令实现分支程序设计 • 例题 见教材p164,折半查找