欢迎来到天天文库
浏览记录
ID:52253959
大小:121.26 KB
页数:5页
时间:2020-03-25
《微机原理与接口技术4-2.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、•通过使用BIOS和基本DOS系统提供的功能模块子程序,用户程第六节操作系统资源的使用序能够访问和使用PC机的硬件。•DOS功能调用BIOS功能调用1.DOS为编程人员提供丰富的服务程序,在编程时,可以直接调用。2.DOS提供的服务程序称为DOS功能调用。DOS系统功能调用3.所有的功能调用都是通过软中断指令实现的。(21H类型中断调用)4.INT21H称为系统功能调用,有近百个服务子程序提供给用户各种功能。•DOS功能调用•DOS功能调用可提供设备管理、文件管理、目录操作等服务。1.设置调用所需的参数(入口参数)。2.功能编号送AH寄存器。3.用INT21H来调用(功能调用软中断指令)
2、。4.调用结束后可能有出口参数(一般存放在寄存器中)。设置入口参数在AH设置功能号m执行中断指令INTN分析、应用出口参数1.显示单字符(02H功能)一、字符输入输出DOS功能调用入口参数DL=要显示字符的ASCII码1.显示单字符(02H功能)功能号AH=02H2.显示字符串(09H功能)类型号INT21H3.单字符输入(01H、07H、08H功能)出口参数无4.字符串输入(0AH功能)实现功能显示指定字符,光标随动。5.检测键盘状态(0BH功能)例显示字符A6.保存中断向量(35H功能)MOVDL,‘A’7.设置中断向量(25H功能)MOVAH,02HINT21H13.字符串输入(0
3、AH功能)2.显示字符串(09H功能)入口参数DS:DX=缓冲区的首地址入口参数①定义要显示的字符串,(DS:DX)=限制最多输入的字符数字符串尾应为’$’,作为结束显示的标志。功能号AH=0AH类型号21H②DS:DX=字符串的首地址出口参数(DS:DX+1)=实际键入的字符(不含回车符)功能号AH=09H从(DS:DX+2)开始顺序存放键入的字符串,类型号21H回车符0DH为串尾最后一字符。出口参数无实现功能等待从键盘输入字符串,并存入设定的缓冲区内,实现功能显示字符串,遇’$’停止显示,光标随动。同时回显字符串,光标随着移动,回车符使光标回到行首。注:应按要求先定义缓冲区,再调用。
4、二、磁盘文件管理DOS功能调用完整汇编程序的基本框架第一种:建立文件(功能号3CH)codeSEGMENT打开文件(功能号3DH)关闭文件(功能号3EH)ASSUMECS:code读文件(功能号3FH)start:写文件(功能号40H)…;程序主体部分三、结束用户程序返回DOS方法...MOVAH,4CH;返回DOS;INT20HINT21H利用程序段前缀PSPcodeENDS利用4CH功能调用ENDstart第二种:第七节宏汇编和条件汇编可保证执行INT20H时,xxxx:0CD20程序段当前的CS值为程序段前缀在内存的段值。前缀PSP、、、一、宏定义、宏调用和宏扩展codeSEGME
5、NTASSUMECS:code宏指令是一系列汇编指令的集合。只要使用宏定义指令在mainPROCFAR;使RET为远返回用户程序源程序中定义一次便可多次调用。汇编时,汇编程序会用相应start:PUSHDS;入栈保存地址的代码序段代替宏指令,这个过程称为宏展开。因此宏指令的MOVAX,0;程序段前缀的首地址应用分为宏定义,宏调用和宏展开三个阶段。SS:SP0000PSP的偏值PUSHAXxxxxPSP的段值、、;程序主体部分SS:SPRET;取程序段前缀首地址CSIPmainENDPcodeENDSENDstart22、宏调用格式1、定义格式宏名[实在参数表]宏名MACRO[形式参数表]
6、<宏定义体>注:1)宏名和宏定义中使用的宏名相同。ENDM2)实在参数表和宏定义的形式参数表一一对应。注:1)宏名是任何合法的标识符。3、宏展开2)宏可以带任选的形式参数表,名参数之间用逗号分隔。3)形式参数也可以出现在操作码中(注意“&”符号的使用)。当源程序被汇编时,汇编程序将在每个宏调用处作宏展开,即用宏定义体取代源程序中的宏调用指令。例:用宏定义指令完成字节传送动能宏定义在源程序中进行如下宏调用:MOVEBYTEMACROTO,FROM,NPUSHSIMOVEBYTEVAR1,VAR2,4PUSHDI┇PUSHCXMOVEBYTEVAR3,VAR4,4LEASI,FROM┇LEA
7、DI,TOMOVCX,NREPMOVSBPOPCXPOPDIPOPSEENDM宏展开:宏指令与子程序的区别:┇+PUSHSI+PUSHDI+PUSHCX1)宏指令只是简化源程序的书写,没有简化目标程序。+LEASI,VAR22)宏调用不需要控制的转移与返回,故宏指令的执行速+LEADI,VAR1+MOVCX,4度比子程序快。+REPMOVSB+POPCX+POPDI另外,宏定义还允许嵌套和递归,即在宏定义体内可以+POPSI有宏定义
此文档下载收益归作者所有