微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17

上传人:E**** 文档编号:118221602 上传时间:2019-12-11 格式:PDF 页数:4 大小:108.95KB
返回 下载 相关 举报
微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17_第1页
第1页 / 共4页
微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17_第2页
第2页 / 共4页
微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17_第3页
第3页 / 共4页
微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17》由会员分享,可在线阅读,更多相关《微机原理与接口技术教师指导手册教学课件作者孟虎微机教师指导手册17(4页珍藏版)》请在金锄头文库上搜索。

1、微机原理 课课 17 讲讲 微机教师指导手册微机教师指导手册 主讲人主讲人 课课 题题 综合应用举例 目的任务目的任务 掌握由条件控制的循环的编程方法; 掌握常用系统功能调用; 重点难点重点难点 系统功能调用;堆栈操作 教学方法教学方法 讲授 使用教具使用教具 传统教学法(粉笔和黑板) 提问作业提问作业 备课时间备课时间 年年 月月 日日 上课时间上课时间 年年 月月 日日 审审 批批 教研室主任(签字) : 年 月 日 抽抽 查查 系主任(签字) : 年 月 日 2条件控制的循环 对于事先无法知道循环次数的循环结构, 多采用比较指令与条件转移指令相结合来控制 循环的结束,也就是条件控制的循环

2、。 例 4-42:在以 Buff 开始的单元里有一批字节型数据,它们以 0FFH 为结束符,统计它 们当中等于 0 的个数,结果存放到字单元 Num 中。 解题分析:本题与例 4-41 非常相似,只是在例 4-41 中数据的个数是确定的,本例的数 据可数是不确定的,但是这批数据是以 0FFH 为结束标记的,这样只要将例 4-41 程序中的 循环控制指令 LOOP 换成比较指令和条件转移指令即可。本例的核心代码为: LEA SI,Buff ; 设置地址指针初值 Again: MOV AL,SI ; 从 Buff 中取出一个数据 CMP AL,0FFH ; 与结束符比较 JE Done ; 相等,

3、结束循环 CMP AL,0 ; 与 0 比较 JNE Next ; 不相等,继续取下一个 INC Num ; 等于,则给 Num 单元加 1 Next: INC SI ; 修改地址指针 JMP Again Done: 对于一些事先知道循环次数的程序,也可以用条件控制的循环结构来实现,本章 4.7.2 节的例 4-37、例 4-38 即如此。 还有一些结构更复杂的循环结构, 如多重循环结构等, 在一般的控制系统编程中极少有 特别复杂的程序,这里就不再介绍了。掌握了简单结构的编程后,复杂结构的编程通过不断 地实践也会逐渐掌握的。 4.9.1 常用系统功能调用 1概述 DOS 系统功能调用的常用方法

4、如下: 准备入口参数 MOV AH,功能号 INT 21H 分析出口参数 DOS 系统功能调用提供了上百种功能。掌握的常用功能有:01 号、02 号和 09 号功能。 201 号系统功能 功能:将键盘输入的字符的 ASCII 码值送 AL 寄存器,同时回显在屏幕上。 入口参数:无 出口参数:AL 寄存器存放输入字符的 ASCII 码值。 格式:MOV AH,1 INT 21H 01 号功能相当于高级语言中的输入语句,它们的区别在于:01 号功能每次只能输入一 个字符,如果我们想通过输入“123” ,必须调用该功能三次。 302 号系统功能 功能:将 DL 寄存器内的 ASCII 码值的 ASC

5、II 字符输出到屏幕上。 入口参数:DL 寄存器存放输出字符的 ASCII 码值。 出口参数:无 格式:MOV DL,字符 MOV AH,2 INT 21H 需要强调的是,只有将要输出字符的 ASCII 码放到 DL 寄存器中,才可以正常输出。 由于 02 号系统功能在执行时,会破坏 AL 寄存器内容,使用时应注意保存。 409 号系统功能 功能:将数据段(DS)中以“”字符结尾的一个字符串输出到屏幕上。 入口参数:DX 寄存器存放该字符串的首地址(有效地址部分) 。 出口参数:无 格式: LEA DX,字符串变量名 MOV AH,9 INT 21H 使用 09 号功能时应特别注意,字符串结束

6、标记“”不可缺省,一旦遗漏,有可能引 起屏幕混乱。同 02 号系统功能一样,09 号功能在执行时,会破坏 AL 寄存器内容,使用时 应注意保存。 5应用实例 例 4-43:通过键盘输入 10 个任意字符,然后将它们存放到以 Buff 开始的单元中。 解题分析:显然应通过调用 01 号功能实现,本程序是一个简单的计数型循环。本例的 核心代码为: Buff DB 10 DUP(?) LEA SI, Buff ; 设置地址指针初值 MOV CX, 10 ; 循环次数 Aga1: MOV AH, 1 ; 设置 01 号功能 INT 21H ; 执行 01 号功能 MOV SI , AL ; 保存输入的

7、数据(ASCII 码) INC SI LOOP Aga1 ; 循环 例 4-44:通过键盘输入 10 个任意字符,然后将它们当中的数字在屏幕上输出。 解题分析:由于 01 号功能每次只可输入一个字符,因此必须先输入、保存,然后再输 出。程序由两个循环体组成,第一个循环为数据的输入,第二个循环为数据输出。输出时仅 输出数字,数字的 ASCII 码为 30H39H,小于 30H 和大于 39H 都不是数字,输出部分的 流程如图 4-19 所示,核心代码为: Buff DB 10 DUP(?) LEA SI, Buff ; 输入部分 MOV CX, 10 Aga1: MOV AH,1 INT 21H

8、 ; 执行 01 号功能 MOV SI , AL ; 保存输入的数据 INC SI LOOP Aga1 LEA SI, Buff ; 输出部分 MOV CX,10 Aga2: MOV DL,SI ; 取出一个数据 CMP DL,0 ; 与“0”比较 JB Next ; 小于“0” ,不是数字,取下一个 CMP DL, 39H ; 与“9”比较 JA Next ; 大于“9” ,不是数字,取下一个 MOV AH, 2 INT 21H ; 执行 02 号功能 Next: INC SI LOOP Aga2 图 4-19 例 4-44 输出部分程序流程图 64CH 号功能 由于汇编语言的操作大部分是底层操作,是越过操作系统的。这样就有一个问题:当汇 编程序执行完毕后,如何回到操作系统? 在系统功能调用中,专门设置了一个解决这一问题的功能:4CH 功能,只要我们在程 序结束前调用它即可返回到操作系统。即在程序的最后加上: MOV AH,4CH INT 21H

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号