第5-2章循环程序设计.ppt
《第5-2章循环程序设计.ppt》由会员分享,可在线阅读,更多相关《第5-2章循环程序设计.ppt(51页珍藏版)》请在三一文库上搜索。
1、 第六章第六章 循环程序设计循环程序设计 坐 术 婪 孪 映 潘 鲤 饰 螟 沧 晓 吵 甲 殊 杜 寺 腹 颇 怀 漠 份 松 奄 书 匿 允 惧 札 油 丘 崎 枷 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 设问: 1怎样用分支结构构成循环? 2循环指令有哪些? 3串处理操作是循环执行的吗? 4. 多重循环有什么特点? 5. 如何实现排序? 爵 第 苹 佬 踩 李 米 肤 交 嫡 刃 卧 蹭 掖 溃 檬 纺 郑 颗 妆 胚 斑 夕 碰 勇 塘 烷 礼 簇 硼 恋 长 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序
2、 设 计 本章重点 循环的概念 循环指令 串处理 多重循环 枫 拘 绝 孺 授 分 出 氏 万 志 没 烈 蝴 潜 昏 炉 慎 去 瘩 缩 憎 谢 耶 死 禽 吓 完 述 伙 古 缴 刘 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.1 循环的概念 在汇编语言中,程序的循环可以用 分支转移指令实现,也可以用8086指 令系统中提供的专门的循环指令,这 样使程序更清晰、简便。 除了循环指令之外,还有很多地方用 到了循环的概念。例如串处理,需要 对串中的字符循环地进行操作。 丹 园 稼 矿 乏 空 庐 诗 悍 绒 拽 礼 衡 魏 燃 葡 闽 淀 赣 丙
3、 忽 粪 咯 镰 董 但 须 鸳 圈 于 勋 乎 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.1.1 循环结构 循环结构有两种形式。一种是DO WHILE结构, 另一种是DO UNTIL结构。 哦 镭 屈 杜 碾 归 畔 划 咏 器 蝉 厄 篇 卉 急 裳 吉 时 临 价 泣 舜 泣 腻 橙 裁 栋 哇 苍 蓖 艘 擦 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 循环程序有三部分: l 设置循环的初始状态 l 循环体 l 循环控制部分 在 义 栖 芹 翘 沈 屹 蔡 警 挎 枢 赤 伍 赡 铬 哄 歌
4、傀 堕 房 皿 乔 庇 茹 翌 帮 世 嵌 疟 蛛 壮 酷 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.1.1 循环程序例子 示例6-1 在5行16列上用写显存方法显 示多彩字符串。用循环指令实现。 运行结果: 境 情 贵 莉 羚 频 宇 求 雕 淌 刁 舆 民 勇 习 寅 警 胡 恍 焊 匣 凹 娶 逆 枝 帽 裔 牢 槛 荒 爪 补 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 设计思路: (1)用DH存放行号,DL存放列号; (2)BL存放字符属性,第1个字符的属性为4 ,红色;其他字符属性+1改变
5、; (3)字符的位置计算公式:行号*160+列号; (4)用循环指令LOOP实现将多彩字符串循环 写入显存。 各 湿 甫 蛔 吱 弘 尺 傻 跌 钠 由 搀 栋 漫 信 焦 闽 脯 友 捻 攀 易 搽 刁 盆 搔 獭 虚 验 榨 冉 巫 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 程序如下: ;6-1.asm 在5行16列上用写显存方法显示多彩字符 串。 data segment a1 db Hello world! a2 db 0 data ends code segment assume cs:code,ds:data start: mov dh
6、,5;行 mov dl,16;列 mov bl,4;属性 mov ax,data mov ds,ax mov si,0 威 急 卵 杰 棱 疑 莆 心 白 楼 秃 仆 呈 猾 撬 付 驶 学 命 愧 愧 伞 的 嘎 终 雹 彦 烟 溜 尝 苟 秉 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 show_str: mov ax,0b800h;显存首址 mov es,ax mov ax,160 mul dh;行号*160 mov di,ax;起始行位置 sal dl,1 mov dh,0 add di,dx;+列号 mov cx,a2-a1;字符串长度 l
7、et1: mov al,si;循环写字符和属性到显存 mov es:di,al mov byte ptr es:di+1,bl inc si inc bl add di,2;写完即显示完 loop let1;循环指令 mov ah,4ch int 21h code ends end start 孽 痴 榜 渝 篙 咖 渔 卤 狠 赐 妒 殊 爪 钒 汕 窗 杉 断 绑 唇 蛊 圆 礼 敷 卿 敬 瓣 艇 改 迄 叔 畴 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.2 循环指令 格式: LOOP OPR 执行的操作:(CX)=(CX)-1,若CX0
8、,跳转 到标号OPR处循环执行,CX=0则执行LOOP 的下一条指令。 说明:目的操作数OPR是标号,该标号处的 指令应该在LOOP指令之前,以构成循环 。 6.2.1 LOOP循环指令 朵 率 勋 毯 苞 京 跟 甲 窃 捧 春 经 荆 大 祁 眨 永 憋 抹 狱 屉 敬 陷 阔 顾 盈 装 辊 究 岔 邦 瘫 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 例1 求X=1+2+3+10的累加值。 MOV AL,0 MOV BL,1 MOV CX,10 SS1:ADD AL,BL INC BL LOOP SS1 MOV X,AL 噬 吸 别 淳 铬 救
9、 健 牙 喷 狄 韧 代 创 闺 菜 登 穴 瓦 今 肄 和 床 尸 锥 孜 塘 窜 恫 柬 翌 蔷 圭 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.2.2 LOOPZ/LOOPE 格式: LOOPZ/LOOPE OPR 执行的操作:(CX)=(CX)-1,若CX0,并且 ZF=1则跳转到标号OPR处循环执行,若 CX=0,或者ZF=0则执行LOOP的下一条指 令。 说明:结果为0或相等循环。当执行到 LOOPZ/LOOPE时,如果之前的指令结果为 0或者相等时继续循环,如果结果不为0或者 不相等,提前退出循环,即使计数值CX还没 减为0。 幂
10、位 慑 鹰 妒 慑 稍 戒 棍 担 啦 岿 聊 奢 悠 铣 诌 南 洒 谭 漱 遗 倡 阳 妹 暇 尝 平 诡 压 彻 堕 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 STRING DB *P* MOV CX,10 MOV BX,-1 MOV AL,0 SS3: INC BX CMP STRINGBX,* LOOPE SS3 MOV Y,BX 例1 10个星号字符的STRING串中有一个 字符不是星号,找出该字符的位置,保存 在Y单元。 晰 歉 槐 邹 游 涵 绝 积 耿 姓 完 淮 栽 居 埃 铲 姑 楞 佩 朱 牛 萝 荆 信 尿 秦 泥 褒 逝
11、 藉 兴 梭 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 MOV BX,-1 MOV CX,M SS4:INC BX MOV AL,ALPHABX TEST AL,20H LOOPZ SS4 MOV DL,AL 例2 取出字母串ALPHA中的第一个小 写字母放入DL。 辆 誉 呢 列 雹 便 竭 氧 帖 爱 镣 琳 旧 悲 蓝 专 阶 乏 殿 银 扩 盼 山 伞 粕 榜 猎 聋 依 扫 萍 错 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 格式: LOOPNZ/LOOPNE OPR 执行的操作:(CX)=(C
12、X)-1,若CX0,并且 ZF=0则跳转到标号OPR处循环执行,若CX=0 ,或者ZF=1则执行LOOP的下一条指令。 6.2.3 LOOPNZ/LOOPNE 说明:结果不为0或不相等循环。 当执行到LOOPNZ/LOOPNE时,如果之前的 指令结果不为0或者不相等时继续循环,如果 结果为0或者相等,提前退出循环,即使计数 值CX还没减为0。 傲 敷 晕 蚕 手 肪 辕 戒 叁 色 臻 插 钞 貌 皑 煮 巢 匪 掠 歌 科 闷 左 撞 桌 贰 坟 垢 惶 翔 罪 米 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 MOV BX,0 MOV AH,1 S
13、S5:INT 21H MOV SYMBOLBX,AL INC BX CMP AL,0DH LOOPNE SS5 MOV AX,0 例1 循环输入字符,并将字符保存在 SYMBOL数组中,当输入回车时结束 。 柄 剧 玛 熙 畅 塘 怔 驭 悉 赛 脯 伸 捣 冯 冯 楷 奏 菱 挣 砰 诗 瘟 些 摈 镭 谎 谁 趋 颊 榷 躯 探 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 MOV BX,-1 MOV CX,M SS6:INC BX CMP SYMBOLBX,A LOOPNE SS6 OR SYMBOLBX,20H 例2 在长度为M的字符串SYMB
14、OL中查 找大写字母A,找到后将其变为小写。 特 镜 牡 呆 蔑 极 炯 抓 腹 举 抿 琉 狄 棵 痪 枫 浪 啥 晚 来 虑 榜 盐 脾 侵 袄 仟 酗 兑 除 宴 炔 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 练习: 1写出计算Y=5!的程序段。 2写程序段。查找CATT表中的字符 ”,找到后将其保存到SIGN单元,其 位置值保存到ADDI单元。 3写程序段。在长度为N的字数组 VALUE中取出第一个负数保存到AX中 。 寿 迢 淑 计 冶 胆 炎 拜 帜 箱 火 唇 伸 炒 躺 俱 酗 阜 限 撅 观 氯 宙 子 氖 疤 拄 禹 闷 火 尸
15、 噬 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.3 串处理 在汇编语言中,可将连续的n个存储单 元称为串、表、数组等。 对于这种数据结构的操作称为串处理 。 对串进行操作,需要几个参数,如串 的长度、串的起始单元地址等;而且 串操作大都是循环执行的,循环如何 控制、串的存取方式等都不同于其它 数据操作。 6.3.1 串的概念 腥 弧 块 揖 苞 锣 踞 紧 行 嘶 丽 亡 峙 文 拘 冬 芝 仍 漫 风 氢 立 赖 岭 才 卑 僚 棒 嗣 猖 拔 昭 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.3
16、.2 串处理例子 设计思路: (1)分别定义数据段和附加段; (2)用SI保存源串STRG1的偏移地址,DI 保存目的串STRG2的偏移地址,传送个数 由CX指出; (3)用CLD指令将方向标志DF清0,以便 从低地址单元开始取数,依次地址增加, 取下一数; (4)用REP MOVSB指令实现串传送。 示例6-2 将数据段中的字符串STRG1传送到 附加段的STRG2中。 墙 镐 拄 酣 萧 陀 惠 桶 痘 愤 欲 诵 争 洱 问 涡 憎 锈 坦 躬 倡 讣 意 州 挖 蠕 祟 誊 茹 韦 袒 搅 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 程序如下
17、: ;6-2.asm 串传送 data segment strg1 db 1234567890 data ends extra segment strg2 db 10 dup(?) extra ends code segment assume cs:code,ds:data,es:extra start: mov ax,data mov ds,ax mov ax,extra mov es,ax lea si,strg1 lea di,strg2 cld;方向标志清0 mov cx,10 rep movsb ;以字节形式重复传送CX次 mov ah,4ch int 21h code ends e
18、nd start 刀 让 绚 刘 博 畦 推 筛 盅 寒 靴 些 副 尝 贸 宽 象 遁 弛 锈 躲 寿 郭 映 惨 泊 辈 猫 酪 颠 丈 礼 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 运行结果: 要观察运行结果,采用DEBUG执行6-2.exe。在 DEBUG下,用U命令查看,找到断点0018,用G 0018执行,再用D ES:0命令查看传送结果。 惕 烛 埂 堵 淘 篆 看 押 货 蛀 当 腺 卡 冈 颅 五 检 游 症 芝 俱 猛 嘎 说 梭 骏 檬 逃 琢 茂 羡 幼 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环
19、 程 序 设 计 此时,数据段的段地址为0B45H,而附加 段的段地址为0B46H。查看的结果在附 加段中。 思考:如果采用循环指令实现串传送, 程序如何改写? 细 炎 悸 换 挣 热 司 浚 俊 易 毋 候 陈 内 捻 烘 婿 塌 奴 钥 仟 醋 鸭 疫 滞 侮 慰 雪 胞 铭 裔 维 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 6.3.3 串处理指令 8086汇编语言指令系统中提供了5种串处理指令。 分别是: MOVS (move string)串传送 CMPS (compare string)串比较 SCAS (scan string)串扫描
20、LODS (load string)串获取 STOS (store string)串存入 上述串指令应该和重复前缀REP、REPZ/REPE、 REPNZ/REPNE结合. 例 比较两个字串BUNCH1和BUNCH2是否相同,相 同打印Y,不相同打印N。 审 乳 墒 煤 秤 综 青 标 娘 丧 参 窒 匙 终 塞 悯 健 怔 栓 毖 窒 硕 桨 目 浙 立 便 帛 蝇 甩 螟 十 第 5 - 2 章 循 环 程 序 设 计 第 5 - 2 章 循 环 程 序 设 计 示例6-3 比较两个字串BUNCH1和 BUNCH2是否相同,相同打印Y, 不相同打印N。 程序如下: 狭 炭 搽 另 践 虽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 程序设计
链接地址:https://www.31doc.com/p-5924502.html