资源描述:
《微机教师指导手册17》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课题综合应用举例目的任务掌握由条件控制的循环的编程方法;掌握常用系统功能调用;重点难点系统功能调用;堆栈操作教学方法讲授使用教具传统教学法(粉笔和黑板)提问作业备课时间上课时间年月曰审批教研室主任(签字):年月日抽查系主任(签字):2.条件控制的循环对于事先无法知道循环次数的循环结构,多采用比较指令与条件转移指令相结合摭制循坏的结束,也就是条件控制的循坏。例4・42:在以Buff开始的单元里有一批字节型数据,它们以OFFH为结束符,统它们当中等于0的个数,结果存放到字单元Num中。解题分析:本题与例4・41非常相似,只是在例4・41中数据的个数是确定的,本例的数据可数是不确定的,但是这批数据是
2、以OFFH为结束标记的,这様饕例4-41程序中的循环控制指令LOOP换成比较指令和条件转移指令即可。本例的核彳師驹LEASI,Buff;设置地址指针植Again:MOVAL,[SI];从Buff中取岀一个数据CMPAL,OFFH;与结束符比较JEDone;相等,结束循环CMPAL,0;与0比较JNENext;不相等,继续取下一个INCNum;等于,妬Num单元加Next:INCSI;修改地址指针JMPAgainDone:••••••对于一些事先知道循环次数的程序,也可以用条件控制的循环结构寨现本牽7.2节的例4-37>例4・38即如此。还有一些结构更复杂的循环结构,如多重循环结构等,在一般的控
3、制系统编程中极昔特别复杂的程序,这里就不再介绍了。掌握了简单结构的编程后复杂结构的编程通过不断地实践也会逐渐掌握的。4.9.1常用系统功能调用1•概述DOS系统功能调用的常用方法如下:[准备入口参数]MOVAH,功能号INT21H[分析出口参数]DOS系统功能调用提供了上百种功能。掌握的常用功能有:01号、02号和09号功能。2.01号系统功能功能:将键盘输入的字符的ASCII码繼L寄存器,同时回显在屏幕上。入口参数:无出口参数:AL寄存器存放输入字符的ASCII码值格式:MOVAH,1INT21H01号功能相当于高级语言中的输入语句,它们的圃在于:01号功能每次只能输入一个字符,如果我们想通
4、过输入123",必须调用该功能逆。3.02号系统功能功能:将DL寄存器内的ASCII码的ASCII字符输出到屏幕上。入口参数:DL寄存器存放输出字符的ASCII码值。出口参数:无格式:MOVDL,字符MOVAH,2INT21H需要强调的是,只有将要输出字符的ASCII码放到DL寄存器中,才可以正常输出。由于02号系统功能在执行时,会破坏AL寄存器内容,使用时应注意保存。4.09号系统功能功能:将数据段(DS)中以“$”字符结尾的一个字符串输出到屏幕上。入口参数:DX寄存器存放该字符串的首地址(有效地址部分)。出口参数:无格式:LEADX,字符串变量名MOVAH,9INT21H使用09号功能时应
5、特别注意,字符串结束标记“$”不可缺省,一旦遗漏,有可能引起屏幕混乱。同02号系统功能一样,09号功能在执行时,会破坏AL寄存器内容,使用时应注意保存。2.应用实例例4-43:通过键盘输入10个任意字符,然后将它们存放到以Buff开始的单元中。解题分析:显然应通过调用01号功能实现,本程序是一个简单的计数型循环。本例的核心代码为:BuffDB10DUP(?)LEASI,Buff;设置地址指针初值MOVCX,10;循环次数Aga1:MOVAH,1;设置01号功能INT21H;执行01号功能MOV[SI],AL;保存输入的数据(ASCII码)INCSILOOPAga1;循环例4-44:通过键盘输入
6、10个任意字符,然后将它们当中的数字在屏幕上输出。解题分析:由于04号功能每次只可输入一个字符,因此必须先输入、保存,然后再输出。程序由两个循环体组成,第一个循环为数据的输入,第二个循环为数据输出。输出时仅输出数字,数字的ASCII码为30H-39H,小于30H和大于39H都不是数字,输出部分的流程如图4-19所示,核心代码为:BuffDB10DUP(?)LEASI,Buff;输入部分MOVCX,10Aga1:MOVAH,1INT21H;执行01号功能MOV[SI],AL;保存输入的数据INCSILOOPAga1Aga2:Next:LEASI,BuffMOVCX,10MOVDL,[SI]CMP
7、DL,'O'JBNextCMPDL,39HJANextMOVAH,2INT21HINCSILOOPAga2输岀部分取出一个数据与“0”比较小于“0”,不是数字,取下一个与“9”比较大于“9”,不是数字,取下一个;执行02号功能取一个数到(DL)这样就有一个问题:当汇4CH功能,只要我们在程2.4CH号功能由于汇编语言的操作大部分是底层操作,是越过操作系统的。编程序执行完毕后,如何回到操作系统?在系