《微机原理与接口技术-第5章 汇编程序设计_11.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术-第5章 汇编程序设计_11.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5 5章章 汇编语言程序设计汇编语言程序设计mov ax,12hcall displayJmp 1234h1 1主要内容:主要内容:5.1汇编语句格式汇编语句格式5.2伪指令伪指令5.3数据项和表达式数据项和表达式5.4宏指令语句宏指令语句5.5条件汇编伪指令条件汇编伪指令(自学自学)5.6汇编语言源程序汇编语言源程序5.7汇编语言程序的上机过程汇编语言程序的上机过程5.8汇编语言程序设计的基本方法汇编语言程序设计的基本方法5.9程序设计举例程序设计举例5.10小结小结2 2什么是汇编语言源程序?什么是汇编语言源程序?汇编语言汇编语言指令助记符、符号地址、标号、指令助记符、符号地址、标号、
2、伪指令等语言元素的集合以及这些元素使伪指令等语言元素的集合以及这些元素使用的规则用的规则用汇编语言编写的程序叫用汇编语言编写的程序叫汇编语言源程序汇编语言源程序汇编语言源程序有严格的格式要求汇编语言源程序有严格的格式要求3 3DATADATA SEGMENTSEGMENT;数据段数据段数据段数据段hellohello dbdbWelcometotheworldofassembler!$Welcometotheworldofassembler!$DATADATA ENDSENDS;数据段结束数据段结束数据段结束数据段结束CODECODE SEGMENTSEGMENT;代码段代码段代码段代码段as
3、sumeassume cs:cs:CODECODE,ds:ds:DATADATAstart:start:movmovax,dataax,datamovmov dsds,ax,axmovmov dxdx,offsetoffsethellohellomovmovah,ah,9 9;显示显示显示显示$结尾的字符串结尾的字符串结尾的字符串结尾的字符串intint21h21hmovmovah,ah,1 1;等待按键等待按键等待按键等待按键intint21h21hmovmovah,ah,4ch4ch;返回返回返回返回DOSDOSintint21h21hCODECODE ENDSENDS;代码段结束代码段结
4、束代码段结束代码段结束ENDEND startstart;整个程序结束整个程序结束整个程序结束整个程序结束,指定程序入口点指定程序入口点指定程序入口点指定程序入口点4 4什么是汇编程序?什么是汇编程序?常用的汇编程序:常用的汇编程序:常用的汇编程序:常用的汇编程序:MASMMASMMicrosoftMacroAssemblerMicrosoftMacroAssemblerTASMTASMTuborTuborAssemblerAssembler 汇编源程序需翻译成机器语言汇编源程序需翻译成机器语言汇编源程序需翻译成机器语言汇编源程序需翻译成机器语言,变成可执行文件变成可执行文件变成可执行文件变成
5、可执行文件,机器才能执行机器才能执行机器才能执行机器才能执行,这个翻译过程叫这个翻译过程叫这个翻译过程叫这个翻译过程叫汇编汇编汇编汇编。高级语言高级语言高级语言高级语言中称该过程为中称该过程为中称该过程为中称该过程为“解释解释解释解释”或或或或“编译编译编译编译”。执行翻译的程。执行翻译的程。执行翻译的程。执行翻译的程序称为序称为序称为序称为“汇编程序汇编程序汇编程序汇编程序”。汇编程序汇编程序汇编语言汇编语言源程序源程序机器语言机器语言目标程序目标程序5 55.1汇编语句格式汇编语句格式汇编语句:汇编语句:汇编语句:汇编语句:指令、伪指令、宏指令指令、伪指令、宏指令指令、伪指令、宏指令指令、
6、伪指令、宏指令每条每条每条每条指令指令指令指令语句都生成机器代码,各对应一种语句都生成机器代码,各对应一种语句都生成机器代码,各对应一种语句都生成机器代码,各对应一种CPUCPU操作,在程序运行时执行操作,在程序运行时执行操作,在程序运行时执行操作,在程序运行时执行,汇编后产生目标代码。汇编后产生目标代码。汇编后产生目标代码。汇编后产生目标代码。伪指令伪指令伪指令伪指令语句为汇编和链接过程提供辅助信息、数语句为汇编和链接过程提供辅助信息、数语句为汇编和链接过程提供辅助信息、数语句为汇编和链接过程提供辅助信息、数据定义语句分配存储空间,伪指令不生成目标码。据定义语句分配存储空间,伪指令不生成目标
7、码。据定义语句分配存储空间,伪指令不生成目标码。据定义语句分配存储空间,伪指令不生成目标码。宏指令宏指令宏指令宏指令是用户按照宏定义格式编写的一段程序,是用户按照宏定义格式编写的一段程序,是用户按照宏定义格式编写的一段程序,是用户按照宏定义格式编写的一段程序,可以包含指令、伪指令、甚至其他宏指令。可以包含指令、伪指令、甚至其他宏指令。可以包含指令、伪指令、甚至其他宏指令。可以包含指令、伪指令、甚至其他宏指令。6 6 标识符标识符/语句标号语句标号 助记符助记符 操作数序列操作数序列 ;注释;注释 标识符标识符用来为变量、段及过程等命名用来为变量、段及过程等命名 语句标号语句标号标识符后加标识符
8、后加 :,提供转移地址,提供转移地址助记符助记符指令可分为三类:机器指令、伪指令和宏指令。指令可分为三类:机器指令、伪指令和宏指令。机器指令:机器指令:指令系统中的指令,程序运行时由指令系统中的指令,程序运行时由CPU执行;执行;伪伪指指令令:汇汇编编程程序序执执行行的的操操作作,规规定定汇汇编编程程序序如如何何按按要要求求进行汇编及分配内存进行汇编及分配内存。宏宏指指令令:由由一一系系列列指指令令或或伪伪指指令令构构成成,汇汇编编时时展展开开成成若若干干条机器指令,用于提高编程效率。条机器指令,用于提高编程效率。操操作作数数序序列列可可以以是是常常量量、变变量量、表表达达式式、寄寄存存器器名
9、名或或标号等,用逗号隔开。标号等,用逗号隔开。(伪指令和宏指令由汇编程序在汇编期间处理伪指令和宏指令由汇编程序在汇编期间处理)注释符注释符“;”后可给出语句注释,提高可读性和可理解性。后可给出语句注释,提高可读性和可理解性。汇编语言语句一般格式为:汇编语言语句一般格式为:7 7DATADATA SEGMENTSEGMENT;数据段数据段数据段数据段hellohello dbdbWelcometotheworldofassembler!$Welcometotheworldofassembler!$DATADATA ENDSENDS;数据段结束数据段结束数据段结束数据段结束CODECODE SEG
10、MENTSEGMENT;代码段代码段代码段代码段assumeassume cs:cs:CODECODE,ds:ds:DATADATAstart:start:movmovax,dataax,datamovmov dsds,ax,axmovmov dxdx,offsetoffsethellohellomovmovah,ah,9 9;显示显示显示显示$结尾的字符串结尾的字符串结尾的字符串结尾的字符串intint21h21hmovmovah,ah,1 1;等待按键等待按键等待按键等待按键intint21h21hmovmovah,ah,4ch4ch;返回返回返回返回DOSDOSintint21h21hC
11、ODECODE ENDSENDS;代码段结束代码段结束代码段结束代码段结束ENDEND startstart;整个程序结束整个程序结束整个程序结束整个程序结束,指定程序入口点指定程序入口点指定程序入口点指定程序入口点8 8主要内容:主要内容:5.1汇编语句格式汇编语句格式5.2伪指令伪指令5.3数据项和表达式数据项和表达式5.4宏指令语句宏指令语句5.5条件汇编伪指令条件汇编伪指令(自学自学)5.6汇编语言源程序汇编语言源程序5.7汇编语言程序的上机过程汇编语言程序的上机过程5.8汇编语言程序设计的基本方法汇编语言程序设计的基本方法5.9程序设计举例程序设计举例5.10小结小结9 95.7汇编
12、语言程序的上机过程汇编语言程序的上机过程在计算机上运行汇编语言程序的步骤在计算机上运行汇编语言程序的步骤在计算机上运行汇编语言程序的步骤在计算机上运行汇编语言程序的步骤:用编辑程序(用编辑程序(用编辑程序(用编辑程序(EDITEDIT)建立源程序文件()建立源程序文件()建立源程序文件()建立源程序文件(ASMASM文件);文件);文件);文件);用汇编程序(用汇编程序(用汇编程序(用汇编程序(MASMMASM或或或或TASMTASM)把)把)把)把ASMASM文件汇编成目标程文件汇编成目标程文件汇编成目标程文件汇编成目标程序文件(序文件(序文件(序文件(OBJOBJ文件);文件);文件);文
13、件);用链接程序(用链接程序(用链接程序(用链接程序(LINKLINK)把)把)把)把OBJOBJ文件转换成文件转换成文件转换成文件转换成EXEEXE文件;文件;文件;文件;在在在在DOSDOS命令状态下直接键入文件名就可执行该文件。命令状态下直接键入文件名就可执行该文件。命令状态下直接键入文件名就可执行该文件。命令状态下直接键入文件名就可执行该文件。1010汇编语言上机过程汇编语言上机过程YYYNNN有有错错?有错有错?有有错错?结束结束汇汇 编编输入输入(修改修改)源程序源程序连连 接接运运 行行查查 错错开始开始用用EDIT,NOTEPAD等任何文本编辑器。等任何文本编辑器。源程序存为源
14、程序存为.ASM文件文件用用MASM宏汇编程序进行汇编。宏汇编程序进行汇编。汇编后生成汇编后生成.OBJ目标文件。目标文件。命令格式:命令格式:MASM;用用LINK连接程序进行连接。连接程序进行连接。连接后生成连接后生成.EXE可执行文件。可执行文件。命令格式:命令格式:LINK;用用TD、DEBUG等调试程序进行调试。等调试程序进行调试。命令格式:命令格式:TD1111系统功能调用系统功能调用系统功能调用系统功能调用由由由由OSOSOSOS提供的一组实现特殊功能的提供的一组实现特殊功能的提供的一组实现特殊功能的提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工作量。子程序供程
15、序员在程序中调用,以减轻编程工作量。子程序供程序员在程序中调用,以减轻编程工作量。子程序供程序员在程序中调用,以减轻编程工作量。DOSDOSDOSDOS操作系统中的操作系统中的操作系统中的操作系统中的系统功能调用有两种,一种称为系统功能调用有两种,一种称为系统功能调用有两种,一种称为系统功能调用有两种,一种称为DOSDOS功能调用,另一种称为功能调用,另一种称为功能调用,另一种称为功能调用,另一种称为BIOSBIOS功能调用。功能调用。功能调用。功能调用。DOSDOSDOSDOS中这些功能调用是以软中断的方式提供的中这些功能调用是以软中断的方式提供的中这些功能调用是以软中断的方式提供的中这些功
16、能调用是以软中断的方式提供的。DOSDOSDOSDOS功能调用由功能调用由功能调用由功能调用由INT 21HINT 21HINT 21HINT 21H提供。提供。提供。提供。BOISBOISBOISBOIS中的功能调用常用的有中的功能调用常用的有中的功能调用常用的有中的功能调用常用的有INT 10HINT 10HINT 10HINT 10H,INT 16HINT 16HINT 16HINT 16H,INT 13HINT 13HINT 13HINT 13H等。等。等。等。5.7.5汇编语言和汇编语言和DOS的接口的接口程序的执行是在相应的操作系统支持下进行的,程序的执行是在相应的操作系统支持下进
17、行的,1616位实地址方式要在位实地址方式要在DOSDOS操作系统中运行,他需要操作系统中运行,他需要DOSDOS的功能调用的功能调用(INT 21H)(INT 21H)支持。支持。1212INT 2lHINT 2lH功能大致可以分为四个方面:功能大致可以分为四个方面:设备管理、目录管理、文件管理和其它设备管理、目录管理、文件管理和其它。D0SD0SD0SD0S系统功能调用的使用方法如下:系统功能调用的使用方法如下:系统功能调用的使用方法如下:系统功能调用的使用方法如下:AHAHAHAH功能号功能号功能号功能号;设置该功能所要求的其他入口参数;设置该功能所要求的其他入口参数;设置该功能所要求的
18、其他入口参数;设置该功能所要求的其他入口参数;执行执行执行执行INT 21HINT 21HINT 21HINT 21H指令;指令;指令;指令;分析出口参数。分析出口参数。分析出口参数。分析出口参数。以下以下以下以下介绍介绍介绍介绍INT21HINT21H的几个最常用的功能。的几个最常用的功能。的几个最常用的功能。的几个最常用的功能。5.7.6DOS功能调用和功能调用和BIOS功能调用功能调用1.DOS系统功能调用系统功能调用1313【功能号功能号01H】功能:等待键入一个字符,有回显。功能:等待键入一个字符,有回显。功能:等待键入一个字符,有回显。功能:等待键入一个字符,有回显。入口参数:无入
19、口参数:无入口参数:无入口参数:无出口参数:出口参数:出口参数:出口参数:ALAL按键的按键的按键的按键的ASCIIASCII码码码码说明:若说明:若说明:若说明:若AL=0AL=0,表明按键是功能键、光标键,需,表明按键是功能键、光标键,需,表明按键是功能键、光标键,需,表明按键是功能键、光标键,需再次调用本功能,才能返回按键的扩展码。再次调用本功能,才能返回按键的扩展码。再次调用本功能,才能返回按键的扩展码。再次调用本功能,才能返回按键的扩展码。MOVAH,1MOVAH,1INT21HINT21H1414例例例例:程序中有时需要用户对提示做出应答。程序中有时需要用户对提示做出应答。程序中有
20、时需要用户对提示做出应答。程序中有时需要用户对提示做出应答。GET_KEY:GET_KEY:GET_KEY:GET_KEY:MOV AH,1MOV AH,1MOV AH,1MOV AH,1;等待键入字符等待键入字符等待键入字符等待键入字符 INT 21HINT 21HINT 21HINT 21H;结果在结果在结果在结果在ALALALAL中中中中 AND ALAND ALAND ALAND AL,0DFH0DFH0DFH0DFH;转大写转大写转大写转大写 CMP AL,Y CMP AL,Y CMP AL,Y CMP AL,Y;是是是是Y?Y?Y?Y?JZ YES JZ YES JZ YES JZ
21、 YES ;是是是是,转转转转YESYESYESYES CMP AL,N CMP AL,N CMP AL,N CMP AL,N;是是是是N?N?N?N?JZ NO JZ NO JZ NO JZ NO ;是是是是,转转转转NONONONO JMP GET_KEY JMP GET_KEY JMP GET_KEY JMP GET_KEY;否则继续等待输入否则继续等待输入否则继续等待输入否则继续等待输入 YES:YES:YES:YES:NO:NO:NO:NO:1515【功能号功能号02H】功能:在屏幕的当前位置上显示一个字符功能:在屏幕的当前位置上显示一个字符功能:在屏幕的当前位置上显示一个字符功能:
22、在屏幕的当前位置上显示一个字符入口参数:入口参数:入口参数:入口参数:DL=DL=待显字符的待显字符的待显字符的待显字符的ASCIIASCII码码码码出口参数:无出口参数:无出口参数:无出口参数:无说明:说明:说明:说明:显示字符,光标右移一个字符位置。如果光显示字符,光标右移一个字符位置。如果光显示字符,光标右移一个字符位置。如果光显示字符,光标右移一个字符位置。如果光标到达行末,则返回下一行开头。标到达行末,则返回下一行开头。标到达行末,则返回下一行开头。标到达行末,则返回下一行开头。该功能破坏该功能破坏该功能破坏该功能破坏ALAL寄存器的内容寄存器的内容寄存器的内容寄存器的内容例:在屏幕
23、当前位置显示字符例:在屏幕当前位置显示字符例:在屏幕当前位置显示字符例:在屏幕当前位置显示字符HHMOVAH,2MOVDL,HINT21H1616【功能号功能号05H】功能:向打印机发送一个字符功能:向打印机发送一个字符入口参数:入口参数:DL=待打印字符的待打印字符的ASCII码码出口参数:无出口参数:无说明:调用时,说明:调用时,DOS将自动检测打印机的将自动检测打印机的状态,若打印机异常,则在屏幕上显示异状态,若打印机异常,则在屏幕上显示异常信息常信息1717【功能号功能号09H】功能:将当前数据区中功能:将当前数据区中功能:将当前数据区中功能:将当前数据区中DS:DXDS:DX指向的字
24、符串送屏指向的字符串送屏指向的字符串送屏指向的字符串送屏幕显示幕显示幕显示幕显示入口参数:入口参数:入口参数:入口参数:DS:DX=DS:DX=字符串首地址,字符串必须字符串首地址,字符串必须字符串首地址,字符串必须字符串首地址,字符串必须以以以以$为结束标志。为结束标志。为结束标志。为结束标志。出口参数:无出口参数:无出口参数:无出口参数:无调用格式:调用格式:调用格式:调用格式:LEALEADX,DX,字符串首地址字符串首地址字符串首地址字符串首地址MOVMOVAH,9AH,9INTINT21H21H1818例例例例:在屏幕上显示:在屏幕上显示:在屏幕上显示:在屏幕上显示:HELLO,WO
25、RLD!HELLO,WORLD!;在数据段定义字符串:在数据段定义字符串:在数据段定义字符串:在数据段定义字符串:DATADATASEGMENTSEGMENTSTR1STR1 DBDBHELLO,WORLD!$HELLO,WORLD!$DATADATAENDSENDS;在代码段中进行显示输出在代码段中进行显示输出在代码段中进行显示输出在代码段中进行显示输出MOVMOVAH,9AH,9LEALEADX,STR1DX,STR1INTINT21H21H1919【功能号功能号0AH】功能:功能:功能:功能:从键盘接收字符串送入内存的输入缓冲区,从键盘接收字符串送入内存的输入缓冲区,从键盘接收字符串送入
26、内存的输入缓冲区,从键盘接收字符串送入内存的输入缓冲区,同时送屏幕显示同时送屏幕显示同时送屏幕显示同时送屏幕显示调用前要求:调用前要求:调用前要求:调用前要求:必须先定义一个输入缓冲区必须先定义一个输入缓冲区必须先定义一个输入缓冲区必须先定义一个输入缓冲区 BufferBuffer DBDB100100;最大可键入字符数最大可键入字符数(包括回车符包括回车符)DBDB?;实际键入的字符数实际键入的字符数(不包括回车符不包括回车符)DBDB100DUP(?)100DUP(?)调用格式:调用格式:调用格式:调用格式:LEALEA DXDX,BufferBufferMOVMOVAH,AH,1010I
27、NTINT 21H21H2020数据输数据输入缓冲区的格式入缓冲区的格式BUF+0N1预置可容纳的字符个数预置可容纳的字符个数BUF+1实际接收的字符个数实际接收的字符个数BUF+2键入字符串的实际存储空间键入字符串的实际存储空间BUF+N1+22121 若用户键入的字符数若用户键入的字符数若用户键入的字符数若用户键入的字符数(包括回车包括回车包括回车包括回车)定义的定义的定义的定义的N1N1,本本本本功能调用将不再接收新的键入,且光标不再向右移功能调用将不再接收新的键入,且光标不再向右移功能调用将不再接收新的键入,且光标不再向右移功能调用将不再接收新的键入,且光标不再向右移动。动。动。动。例
28、:设在数据段定义键盘缓冲区如下:例:设在数据段定义键盘缓冲区如下:例:设在数据段定义键盘缓冲区如下:例:设在数据段定义键盘缓冲区如下:STR1DB10,?,10DUP(?)STR1DB10,?,10DUP(?)调用调用调用调用DOSDOSDOSDOS功能的功能的功能的功能的0AH0AH0AH0AH号功能的程序段为:号功能的程序段为:号功能的程序段为:号功能的程序段为:LEALEA DXDX,STR1STR1MOVMOVAHAH,0AH0AHINTINT21H21H 此程序段最多从键盘接收此程序段最多从键盘接收此程序段最多从键盘接收此程序段最多从键盘接收10101010个按键(包括回车)个按键(
29、包括回车)个按键(包括回车)个按键(包括回车)。2222DATADATA SEGMENTSEGMENTStringStringDBDB 100100,?,100DUP(?),?,100DUP(?)DATADATAENDSENDSCODECODE SEGMENTSEGMENTMOVMOVAX,DATAAX,DATAMOVMOVDS,AXDS,AXLEALEADX,DX,StringStringMOVMOVAH,10AH,10;0AH0AH号功能调用号功能调用号功能调用号功能调用INTINT 21H21HCODECODE ENDSENDS 例:例:例:例:接受键盘输入的字符串接受键盘输入的字符串接
30、受键盘输入的字符串接受键盘输入的字符串(最大长度限定为最大长度限定为最大长度限定为最大长度限定为100100100100个字符个字符个字符个字符)2323【功能号功能号4CH】功能:终止当前程序的运行,返回功能:终止当前程序的运行,返回DOS。由被终止程序打开的全部文件都被关闭,由被终止程序打开的全部文件都被关闭,程序占用的内存空间交还给程序占用的内存空间交还给DOS入口参数:入口参数:AL=返回码返回码出口参数:无出口参数:无MOVAX,4C00H;返回码为;返回码为0INT21H24242.BIOS功能调用功能调用BIOSBIOS的功能:加电自检、引导装入、设备驱动、的功能:加电自检、引导
31、装入、设备驱动、的功能:加电自检、引导装入、设备驱动、的功能:加电自检、引导装入、设备驱动、系统接口初始化系统接口初始化系统接口初始化系统接口初始化BIOSBIOS中也提供了一组功能调用。与中也提供了一组功能调用。与中也提供了一组功能调用。与中也提供了一组功能调用。与DOSDOS功能调用功能调用功能调用功能调用相比,它们更接近底层硬件,运行效率更高。相比,它们更接近底层硬件,运行效率更高。相比,它们更接近底层硬件,运行效率更高。相比,它们更接近底层硬件,运行效率更高。BIOSBIOS功能调用模式如下:功能调用模式如下:功能调用模式如下:功能调用模式如下:MOVAH,MOVAH,功能号功能号功能
32、号功能号 设置入口参数设置入口参数设置入口参数设置入口参数 INTINTn n 分析出口参数分析出口参数分析出口参数分析出口参数2525BIOS键盘输入功能调用键盘输入功能调用INT16H【功能号功能号功能号功能号00H00H】功能:读取键入的一个字符,无回显,响应功能:读取键入的一个字符,无回显,响应功能:读取键入的一个字符,无回显,响应功能:读取键入的一个字符,无回显,响应Ctrl_CCtrl_C,无键入则等待。,无键入则等待。,无键入则等待。,无键入则等待。入口参数:无入口参数:无入口参数:无入口参数:无出口参数:出口参数:出口参数:出口参数:AL=AL=键入字符的键入字符的键入字符的键
33、入字符的ASCIIASCII码。若码。若码。若码。若AL=0AL=0,则,则,则,则AH=AH=键入字符的扩展码。键入字符的扩展码。键入字符的扩展码。键入字符的扩展码。【功能号功能号功能号功能号01H01H】功能:查询键盘的缓冲区。功能:查询键盘的缓冲区。功能:查询键盘的缓冲区。功能:查询键盘的缓冲区。入口参数:无入口参数:无入口参数:无入口参数:无出口参数:出口参数:出口参数:出口参数:Z Z标志标志标志标志0 0,表示有键入,此时,表示有键入,此时,表示有键入,此时,表示有键入,此时AL=AL=键入字符的键入字符的键入字符的键入字符的ASCIIASCII码,码,码,码,AH=AH=键入字符
34、的扩展码。键入字符的扩展码。键入字符的扩展码。键入字符的扩展码。Z Z标志标志标志标志1 1,表示无键入。,表示无键入。,表示无键入。,表示无键入。262627【功能号功能号功能号功能号0202H H】功能:读取当前按键状态功能:读取当前按键状态功能:读取当前按键状态功能:读取当前按键状态入口参数:无入口参数:无入口参数:无入口参数:无出口参数:出口参数:出口参数:出口参数:AL=AL=键盘状态字。键盘状态字。键盘状态字。键盘状态字。状态字各位定义如下:状态字各位定义如下:状态字各位定义如下:状态字各位定义如下:ALAL7 7 置置置置1Insert1Insert键有效(被奇数次按下)键有效(
35、被奇数次按下)键有效(被奇数次按下)键有效(被奇数次按下)ALAL6 6 置置置置11CapsLockCapsLock 键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)ALAL5 5 置置置置11NumlockNumlock键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)ALAL4 4 置置置置11ScrollLockScrollLock键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)键有效(相应的指示灯亮)ALAL3 3 置置置置11按下了按下了按下了按下了AltAlt键键
36、键键 ALAL2 2 置置置置11按下了按下了按下了按下了CtrlCtrl键键键键 ALAL1 1 置置置置11按下左按下左按下左按下左ShiftShift键键键键 ALAL0 0 置置置置11按下了右按下了右按下了右按下了右ShiftShift键键键键2727例例检测按下的是否是检测按下的是否是F1或或F2键键MOVMOV AH,0AH,0INTINT16H16HCMPCMPAL,0AL,0;AL=0;AL=0,按下的是功能键,按下的是功能键,按下的是功能键,按下的是功能键JNEJNEERRERR;AL;AL00,按下的是字符键,按下的是字符键,按下的是字符键,按下的是字符键CMPCMPAH
37、,3BHAH,3BH;F1;F1键的扫描码键的扫描码键的扫描码键的扫描码JEJEKEY_F1KEY_F1CMPCMPAH,3CHAH,3CH;F2;F2键的扫描码键的扫描码键的扫描码键的扫描码JEJEKEY_F2KEY_F2ERR:ERR:.;错误处理错误处理错误处理错误处理KEY_F1:KEY_F1:;F1F1按下后的处理按下后的处理按下后的处理按下后的处理KEY_F2:KEY_F2:;F2F2按下后的处理按下后的处理按下后的处理按下后的处理GOON:GOON:2828BIOS的屏幕显示功能调用的屏幕显示功能调用INT10H【功能号功能号00H00H】n功能:设置屏幕显示方式功能:设置屏幕显
38、示方式n入口参数:入口参数:AL=0 AL=0 40X2540X25黑白文本方式黑白文本方式 AL=1 AL=1 40X2540X25彩色文本方式彩色文本方式 AL=2 AL=2 80X2580X25黑白文本方式黑白文本方式 AL=3 AL=3 80X2580X25彩色文本方式彩色文本方式n出口参数:无出口参数:无【功能号功能号01H01H】n功能:设置光标形状功能:设置光标形状n入口参数:入口参数:CH=CH=光标顶部扫描线行号,光标顶部扫描线行号,CL=CL=光标底部扫描线光标底部扫描线行号行号n出口参数:无出口参数:无2929BIOS的屏幕显示功能调用的屏幕显示功能调用INT10H【功能
39、号功能号功能号功能号02H02H】功能:预置光标位置功能:预置光标位置功能:预置光标位置功能:预置光标位置 入口参数:入口参数:入口参数:入口参数:BH=BH=显示页号,显示页号,显示页号,显示页号,DH=DH=行号,行号,行号,行号,DL=DL=列号列号列号列号 出口参数:无出口参数:无出口参数:无出口参数:无MOVBH,0MOV DH,10MOV DL,0MOVAH,2INT10H3030【功能号功能号功能号功能号03H03H】功能:读取光标的当前位置功能:读取光标的当前位置功能:读取光标的当前位置功能:读取光标的当前位置入口参数:入口参数:入口参数:入口参数:BH=BH=显示页号显示页号
40、显示页号显示页号出口参数:出口参数:出口参数:出口参数:DHDH、DL=DL=光标在屏幕上的行、列号光标在屏幕上的行、列号光标在屏幕上的行、列号光标在屏幕上的行、列号MOVBH,0MOVAH,3INT10H3131【功能号功能号05H】功能:设置当前显示页功能:设置当前显示页入口参数:入口参数:AL=显示页号(显示页号(03)出口参数:无出口参数:无MOVAL,1MOVAH,5INT10H3232【功能号功能号08H】功能:读取光标所在位置的字符及其属性功能:读取光标所在位置的字符及其属性入口参数:入口参数:BH=显示页号显示页号出口参数:出口参数:AH=字符属性字符属性AL=字符的字符的AS
41、CII码码说明:说明:AH=光标所在位置的字符属性,光标所在位置的字符属性,AL=光标光标所在位置的字符的所在位置的字符的ASCII码,如果没有对应于码,如果没有对应于字符的字符的ASCII码,则码,则AL置置0。3333【功能号功能号09H】功能:从光标所在位置开始,显示若干个相同功能:从光标所在位置开始,显示若干个相同的字符的字符入口参数:入口参数:AL=待显示字符的待显示字符的ASCII码码BH=显示页号显示页号BL=待显字符的属性待显字符的属性CX=重复显示的字符数。重复显示的字符数。出口参数:无出口参数:无343435【功能号功能号0EH】功能:以功能:以TTY方式显示一个字符方式显
42、示一个字符入口参数:入口参数:AL=待显字符的待显字符的ASCII码码出口参数:无出口参数:无说明:该功能在当前光标位置显示一个字符,说明:该功能在当前光标位置显示一个字符,然后光标后移一个位置。类似于然后光标后移一个位置。类似于DOS系统系统的的2号功能调用。号功能调用。3535例子:显示扩展例子:显示扩展ASCII码的码的256个字符个字符0127标准标准ASCII码码001FH001FH非显示字符非显示字符非显示字符非显示字符128255扩展扩展ASCII码,无国际统一标码,无国际统一标准准3636MOVCX,256MOVCX,256MOVDL,0MOVDL,0NEXT:MOVAH,2NEXT:MOVAH,2INTINT21H21HINCINCDLDLLOOPNEXTLOOPNEXT3737作业(补充)作业(补充)1.1.用适当的用适当的用适当的用适当的INT21HINT21H、INT10HINT10H的功能调用在屏幕的功能调用在屏幕的功能调用在屏幕的功能调用在屏幕指定位置指定位置指定位置指定位置(0(0页、第页、第页、第页、第1010行、第行、第行、第行、第5 5列列列列)显示一个字符显示一个字符显示一个字符显示一个字符串信息串信息串信息串信息(“ILikeMacroAssembler!”)(“ILikeMacroAssembler!”)。3838