汇编语言程序设计及应用.ppt
第第6 6章章 汇编语言程序设计及应用汇编语言程序设计及应用6.1 汇编语言程序设计的基本方法程序设计步骤程序设计步骤1 1、分析问题、分析问题2 2、确定算法、确定算法3 3、画流程图,、画流程图,简单程序也可以不画流程图,直接编程。简单程序也可以不画流程图,直接编程。4 4、内存空间分配、内存空间分配5 5、编写程序、编写程序6 6、静态检查、静态检查7 7、上机调试、上机调试程序的基本结构形式程序的基本结构形式1 1、顺序结构、顺序结构 程序从起始地址开始顺序执行各条指令程序从起始地址开始顺序执行各条指令直至程序结束,无分支,无循环,程序直至程序结束,无分支,无循环,程序执行按照执行按照IPIP内容自动增加的顺序进行。内容自动增加的顺序进行。2 2、分支结构、分支结构判定条件分支程序段1分支程序段2满足不满足IF-THEN-ELSE结构结构判定条件程序段1程序段2程序段3CASE结构结构条件1条件2条件3例:设x,y为带符号的字节变量,编程实现下面的公式。Y=1x00 x=0-1 x0 x0?X=0?Y=0Y=1Y=-1YNYNNEXT CMP X,0 JGE BIGER MOV Y,-1 JMP NEXTBIGER:JZ EQUL MOV Y,1 JMP NEXTEQUL:MOV Y,0NEXT:3 3、循环结构、循环结构初始化循环体检测循环条件满足不满足初始化循环体检测循环条件满足不满足WHILE-DO结构REPEAT-UNTIL结构例6-1:MOV CX,0 MOV AX,DS:2000HCONT:TEST AX,0FFFFH JE EXIT JNS SKIP INC CXSKIP:SHL AX,1 JMP CONTEXIT:例6-2:MOV SI,1000H MOV DI,2000H MOV CX,100LOP:MOV AL,SI MOV DI,AL INC SI INC DI DEC CX JNE LOP HLTWHILE-DO结构REPEAT-UNTIL结构6.2 汇编语言的编程应用1 1、键盘、键盘I/OI/O 通过系统提供的BIOS键盘中断(INT 16H)从键盘缓冲区中得到字符的ASCII及其相应的扫描码,以供程序使用功能号功能出口参数00H等待从键盘读一个字符AL=字符的ASCII码,AH=扫描码01H读键盘缓冲区字符ZF=0,键盘缓冲区不空,AL=字符的ASCII码,AH=扫描码;ZF=1,键盘缓冲区为空02H取键盘状态字AL=键盘状态字节表6-1 INT 16H的三种功能 MOV AX,DATA MOV DS,AX MOV CX,10 MOV SI,OFFSET WLP:MOV AH,0 INT 16H MOV SI,AL INC SI 例6-3 从键盘接收从键盘接收1010个字符,将其存放于个字符,将其存放于W W开始的开始的缓冲区中,然后把缓冲区的内容送显示器输出。缓冲区中,然后把缓冲区的内容送显示器输出。LOOP LPMOV BYTE PTR SI,$LEA DX,WMOV AH,09HINT 21HMOV AH,4CHINT 21H2 2、鼠标器编程、鼠标器编程 通过系统提供的通过系统提供的BIOSBIOS鼠标中断调用鼠标中断调用(INT 33HINT 33H)获获取鼠标指针的位置及鼠标键状态等信息,以供程序使取鼠标指针的位置及鼠标键状态等信息,以供程序使用。用。鼠标中断调用鼠标中断调用INT 33HINT 33H功能表见课本功能表见课本P155 P155 表表6-46-4例:例:确定鼠标是否安装确定鼠标是否安装MOV AX,00HINT 33CMP AX,-1JNZ DISP1检测左键检测左键MOV AX,05HMOV BX,1INT 33CMP AX,1JNZ DISP23 3、图形显示、图形显示可以使用可以使用BIOSBIOS中断调用的中断调用的 INT 10H INT 10H 来实现有关显示器来实现有关显示器显示方式的选择、光标的控制以及字符属性的读写等显示方式的选择、光标的控制以及字符属性的读写等功能。功能。对于文本方式,与屏幕上每个字符位置相对应的是两对于文本方式,与屏幕上每个字符位置相对应的是两个存储字节单元,分别存放字符的个存储字节单元,分别存放字符的ASCIIASCII码和字符属性。码和字符属性。D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0闪烁背景背景颜色前景前景颜色000黑111白000黑111白亮度0 不闪烁1 闪烁0 正常1 加强闪烁0 不闪烁1 闪烁单色文本方式的属性字节单色文本方式的属性字节彩色文本方式的属性字节彩色文本方式的属性字节MOV AX,DATAMOV DS,AXMOV ES,AXMOV AL,3MOV AH,0INT 10HMOV BP,OFFSET STRINGMOV CX,LENMOV DX,0MOV BL,17HMOV AL,1MOV AH,13HINT 10HMOV AH,4CHINT 21H例6-7 在屏幕上以蓝底白字显示在屏幕上以蓝底白字显示“Hello WorldHello World!”例6-7 在屏幕上分别以蓝底黄字和黄底红字相间在屏幕上分别以蓝底黄字和黄底红字相间地显示地显示“Welcome”Welcome”MOV AX,DATAMOV DS,AXMOV ES,AXMOV AL,3MOV AH,0INT 10HMOV BP,OFFSET STRINGMOV CX,LENMOV DX,0200HMOV AL,3MOV AH,13HINT 10HMOV AH,4CHINT 21H