您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第4章 汇编语言程序设计(2)
第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计1、汇编语言程序格式2、MASM中的表达式3、伪指令语句4、DOS系统功能调用和BIOS中断调用5、程序设计方法第四章汇编语言程序设计4.4DOS系统功能调用(高级调用)DOS系统功能调用的作用:系统功能调用——由操作系统OS提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工作量。系统功能调用的分类:系统功能调用有两种:一种:DOS功能调用,另一种:BIOS功能调用。第四章汇编语言程序设计BIOS(基本输入输出系统)功能调用包括:系统测试、初始化引导、一部分中断矢量装入程序及外部设备的服务程序,它们都固化在系统主板的ROM中。它与系统硬件直接相关。系统功能调用的实现方式:用户程序在调用这些系统服务程序时,不是用CALL命令,而是采用软中断指令INTn来实现。DOS系统功能调用都是用软中断指令INT21H来实现的。它具有90多个子功能的中断服务程序,它们通过功能号AH来区分。它不依赖于具体的硬件系统。第四章汇编语言程序设计INT2lH功能分类:大致可以分为四个方面,即为(1)设备管理(2)目录管理(3)文件管理(4)内存管理、存取时间、存取终端矢量、终止程序等D0S系统功能调用的使用方法:①AH←功能号;②设置该功能所要求的其他入口参数;③执行INT21H指令;分析出口参数。第四章汇编语言程序设计关于数据输入和输出我们这里只讨论键盘输入和显示输出,调用系统功能需要提供入口参数及所调用的功能号,调用结束返回结果。1.DOS键盘功能调用(1)从键盘输入一个字符(功能号=1)MOVAH,1INT21HAL中有键入的字符INT21H的几个最常用的功能第四章汇编语言程序设计例:程序中有时需要用户对提示做出应答。GET_KEY:MOVAH,1;等待键入字符INT21H;结果在AL中CMPAL,’Y’;是’Y’?JZYES;是,转YESCMPAL,’N’;是’N’?JZNO;是,转NOJMPGET_KEY;否则继续等待输入YES:……NO:…第四章汇编语言程序设计(2)输入字符串(功能号=0AH)此功能调用从键盘输入一串字符并把它存入用户指定的缓冲区中。MOVAH,0AHLEADX,字符串缓冲区首地址INT21H(预留的N1个字节的存储单元)0DHN2N1N1:缓冲区长度(最大键入字符数)N2:实际键入的字符数(不包括回车符)用户定义的输入字符串的缓冲区格式第四章汇编语言程序设计若用户键入的字符数(包括回车)≥定义的N1,本功能调用将不再接收新的键入,且光标不再向右移动。例:设在数据段定义键盘缓冲区如下:STR1DB10,?,10DUP(?)调用DOS功能的0AH号功能的程序段为:LEADX,STR1MOVAH,0AHINT21H此程序段最多从键盘接收10个按键(包括回车)。第四章汇编语言程序设计2.DOS显示功能调用(1)在显示器上显示一个字符(功能号=2)MOVAH,2MOVDL,要显示的字符INT21H例:在显示器上显示一个字符‘A’MOVAH,2MOVDL,’A’;或MOVDL,41HINT21H第四章汇编语言程序设计MOVAH,9LEADX,字符串INT21H注意:被显示的字符串必须以’$’结束。(2)显示字符串(功能号=9)第四章汇编语言程序设计例:在屏幕上显示:’HELLO,WORLD!’;在数据段定义字符串:DATASEGMENTSTR1DB‘HELLO,WORLD!$’DATAENDS;在代码段中进行显示输出MOVAH,9LEADX,STR1INT21H第四章汇编语言程序设计BIOS功能调用(低级调用)定义:基本输入输出系统,是固化在EPROM中的一组实现基本输入输出功能的子程序。功能:系统测试程序、初始化引导程序、一部分中断矢量装入程序及外部设备的服务程序等。BIOS与系统硬件有直接的依赖关系。调用方法:BIOS调用通过多个软中断提供,具体的调用方法为:MOVAH,功能号设置入口参数,一般将参数放在寄存器中INT中断类型第四章汇编语言程序设计BIOS中的几个主要中断类型如下:INT10H——屏幕显示INT13H——磁盘操作INT14H——串行口操作INT16H——键盘操作INT17H——打印机操作每类中断由包含许多子功能,调用时通过功能号指定。第四章汇编语言程序设计BIOS中断程序处于DOS功能调用和硬件环境之间,和DOS功能调用相比其优点是效率高,缺点是编程相对复杂;和直接对硬件编程相比,优点是实现相对容易,缺点是效率相对较低。BIOS中断调用与DOS功能调用的比较(1)第四章汇编语言程序设计在一些情况下既能选择DOS中断也能选择BIOS中断来执行同样的功能。例如,打印机输出一个字符的功能,可用DOS中断21H的功能5,也可用BIOS中断17H的功能0。因为BIOS比DOS更靠近硬件。一般情况下,尽可能地使用DOS功能,但在少数情况下必须使用BIOS功能。例如,BIOS中断17H的功能2为读打印机状态,DOS就没有等效的功能。BIOS中断调用与DOS功能调用的比较(2)第四章汇编语言程序设计因此,对BIOS和DOS调用的选择原则是,无法使用DOS功能调用或DOS没有提供而BIOS提供了功能的情况下可以考虑使用BIOS中断。BIOS中断调用与DOS功能调用的比较(3)第四章汇编语言程序设计第四章汇编语言程序设计1、汇编语言程序格式2、MASM中的表达式3、伪指令语句4、DOS系统功能调用和BIOS中断调用5、程序设计方法第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计小结汇编语言程序格式MASM中的表达式伪指令语句DOS系统功能调用和BIOS中断调用程序设计方法第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计第四章汇编语言程序设计
本文标题:第4章 汇编语言程序设计(2)
链接地址:https://www.777doc.com/doc-3515790 .html