汇编语言第8章 综合程序设计

上传人:woxinch****an2018 文档编号:56884727 上传时间:2018-10-16 格式:PPT 页数:70 大小:258.50KB
返回 下载 相关 举报
汇编语言第8章 综合程序设计_第1页
第1页 / 共70页
汇编语言第8章 综合程序设计_第2页
第2页 / 共70页
汇编语言第8章 综合程序设计_第3页
第3页 / 共70页
汇编语言第8章 综合程序设计_第4页
第4页 / 共70页
汇编语言第8章 综合程序设计_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《汇编语言第8章 综合程序设计》由会员分享,可在线阅读,更多相关《汇编语言第8章 综合程序设计(70页珍藏版)》请在金锄头文库上搜索。

1、第8章 综合程序设计,8.1 显示程序设计 8.1.1显示程序概述 8.1.2显示程序设计实例 8.2键盘输入输出程序设计 8.2.1键盘输入输出程序概述 8.2.2键盘输入输出程序设计实例 8.3 文件管理 8.3.1文件管理概述 8.3.2文件管理设计实例,8.1.1显示程序概述,两类显示方式:文本显示方式:DOS操作系统图形显示方式:WINDOWS操作系统,8.1.1显示程序概述,1文本显示方式 所谓文本显示方式是指以字符为单位的显示方式。文本方式是图形适配器器的默认方式,主要用于字符文本处理。 文本显示模式下,显示器的屏幕被划分为80列25行,所以每一屏最多可显示2000(80*25)

2、个字符,也就需要4000个字节来存储一屏的显示信息。一般用行号和列号组成的坐标未定位屏幕上的每个可显示位置,左上角的坐标规定为(0,0),向右增加列号,向下增加行号,这样右下角的坐标便是(79,24)。,8.1.1显示程序概述,2显示属性屏幕上显示的字符取决于字符的ASCII码及字符显示属性。在单色显示时,显示属性定义了闪烁、反相和高亮度等显示特性。在彩色显示时,属性还定义了前景色和背景色。,图8-1显示属性各字段位定义,8.1.1显示程序概述,8.1.1显示程序概述,8.1.1显示程序概述,显示适配卡带有显示存储器,用于存放显示屏幕上显示文本的代码及属性或图形信思。显示存储器作为系统存储器的

3、一部分,可用访问普通内存的方法访问显示存储器。通常为显示存储器安排的存储地址空间的段值是B800H或B000H,对应的内存区域就称为显示缓冲区。假设段值是B800H。 文本显示模式下,屏幕的每一个显示位置依次对应显示存储区中的两个字节单元,这种对应关系如图8-2所示。在图中,为了直观起见,将存储器地址从上到下编码,即高地址端存下端。,8.1.1显示程序概述,图8-2显示位置与存储区的对应关系,8.1.1显示程序概述,为了在屏幕上某个位置显示字符,只需把要显示字符的代码及属性填到显示存储区中的对应存储单元即可。下面的程序片段属性在屏幕的左上角以黑底白字显示字符“A”:MOV AX, B800HM

4、OV DS, AXMOV BX, 0MOV AL,AMOV AH, 07HMOV BX, AX,8.1.1显示程序概述,如果要了解屏幕上某个显示位置的字符是什么,或显示的颜色是什么,那么只要从显示存储区中的对应存储单元中取出字符的代码和属性即可。下面的程序片段取得屏幕右下角显示字符的代码及属性:MOV AX,B800HMOV DS,AXMOV BX,(8*)*2MOV AX,BX 这种直接存取显示存储器进行显示的方法称为直接写屏。 利用直接写屏方法,程序可实现快速显示。但编程较复杂,并且最终的程序也与显示适 配卡相关。所以,一般不采用直接写屏方法,而是调用BIOS提供的显示I/O程序。,3调用

5、BIOS提供的显示I/O程序,显示I/O程序的主要功能列于表8-3。在调用I/O程序的某个功能时,根据要求设置好入口参数,把功能编号置入AH寄存器中,然后发出中断指令“INT 10H”。,3调用BIOS提供的显示I/O程序,显示I/O程序的主要功能列于表8-3。在调用I/O程序的某个功能时,根据要求设置好入口参数,把功能编号置入AH寄存器中,然后发出中断指令“INT 10H”。,8.1.1显示程序概述,4DOS功能中的屏幕输出 屏幕输出是最常用的一种输出形式,DOS操作系统提供了几种实现屏幕输出的功能调用。INT 21H中的相关功能如下:02H显示的字符;06H控制台的输入/输出:当DL0FF

6、H,表示显示字符;09H在屏幕上显示一个字符串。,8.1.1显示程序概述,5图形显示方式图形显示是目前最常用的一种显示方式,也是WINDOWS操作系统的默认显示方式。在该显示方式下,我们可以看到优美的图象、VCD、浏览丰富多彩的网页等。,8.1.1显示程序概述,6设置光标设置光标是一个基本的中断请求,因为光标的位置决定了下一个字符将在哪里显示或输入。屏幕处理的BIOS操作取决于INT 10H以及AH中的功能码。例如,INT 10H的02H功能是告诉BIOS设置光标,并将要求的页号装入BH(页号通常为0),行号装入DH,列号装入DL。,8.1.2显示程序设计实例,【例8-1】在屏幕上显示字符串“

7、EXAMPLE OF STRING DISPLAY!”,DATA SEGMENTSTR DB 0DH ,0AH, EXAMPLE OF STRING DISPLAY!$DATA ENDSSTACK SEGMENT STACKDB 100DUP (0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACKBEGIN: MOV AX,DATAMOV DS,AXLEA DX,STRMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND BEGIN,【例8-2】采用直接写屏法在屏幕上用多种方式显示“BEIJING

8、2008”。,WIDE=5 COLUMBIA=10 STOPIN=1BH DSEG SEGMENT MESS DBBEIJING 2008 MESS LEN=$-0FFSET MESS COLORB DB 04H,70H,13H,7DH,23H COLORE LABEL BYTE DSEG ENDS CSEG SEGMENTASSUME CS:CSEG,DS:DS BEGIN: MOV AX,DSEGMOV DS,AXMOV DI,OFFSET COLORE STEPC: INC DICMP DI,OFFSET COLORJNZ STEPSMOV DI,OFFSET COLOR STEPS:

9、MOV BI,DIMOV SI,OFFSET MESSMOV CX,MESS LENM OV DH,WIDEMOV DL,COLUMBIA,CALL CLASSMOV AH,0INT 16HCMP AL,STOPINJNZ STEPCMOV AX,4C00H INT 2LH CLASS PROCMOV AX,08800HMOV ES,AXMOV AL,80MUL DHXOR DH,DHADD AX,DXADD AX,AXXCHG AX,BXMOV AH,ALJCXZ CLASS2 CLASSL: MOV AL,SIINC SIMOV ES:BX,AXINC BXINC BXLOOP CLASS

10、L CLASS2: RET CLASS ENDP CSEG ENDSEND BEGIN,【例8-3】用“霓虹灯”的显示方式显示字符串“HELLO”,按ESC键时结束程序的运行。,MODEL SMALL, C .DATA KBESC EQU 1BH BUFF DB “H“, 15, “E“, 15, “L“, 15, “L“, 15, “O“, 15 .CODE CLEAR PROC NEAR USES AX BX CX DX ;清屏幕,并保护所用寄存器 MOV CL, 0 MOV CH, 0 MOV DL, 79 MOV DH, 24 ;(0,0)-(24,79)是屏幕的左上角和右下角 MOV

11、 BH, 7 MOV AL, 0 MOV AH, 6 INT 10H RET CLEAR ENDP .STARTUP CALL CLEAR MOV AX, DS MOV ES, AX MOV SI, 9 AGAIN:,MOV BUFFSI, 15 ;把前一次的红色还原 ADD SI, 2 .IF SI 9MOV SI, 1 .ENDIF MOV BUFFSI, 12 ;把当前字符以红色显示 MOV BH, 0 MOV CX, 5 MOV DH, 5 MOV DL, 20 ;显示位置从(5, 20)开始 LEA BP, BUFF MOV AL, 2 MOV AH, 13H INT 10H ;调用

12、中断10H之功能13H MOV AH, 1 INT 16H ;检查是否有按键 JZ AGAIN ;若无字符可读,则继续循环 MOV AH, 0 INT 16H CMP AL, KBESC JNZ AGAIN ;若按键不是ESCAPE,则继续循环 .EXIT 0 END,【例8-4】在256色320200的图形显示模式下,从屏幕最左边向最右边,依次画竖线(从顶到底),线的颜色从1依次加1。要求用中断调用的方法来画线。,MODEL SMALL .DATA MODE DB ? ;保存当前显示模式 .CODE VLINE PROC NEAR USES AX BX DX ; CX=竖线所在的列,AL=线

13、的颜色 MOV DX, 0 MOV BH, 0 MOV AH, 0CH DRAW: VLINE INT 10H INC DX CMP DX, 200 JL DRAW RET ENDP .STARTUP MOV AH, 0FH INT 10H,MOV MODE, AL ;保存当前显示模式,在程序结束前恢复之 MOV AH, 0 MOV AL, 13H INT 10H ;设置256色320200的图形显示模式 MOV CX, 0 MOV AL, 01H ;CX线所在列,AL线的颜色 DRAW: CALL VLINE INC AL INC CX CMP CX, 320 JL DRAW ;从左到右画3

14、20条竖线 MOV AH, 0 INT 16H ;等待一个按键 MOV AL, MODE MOV AH, 0 INT 10H ;恢复原来的屏幕显示模式 .EXIT 0 END,【例8-5】在显示器上绘制一方框图形,DATA SEGMENT ROW DW 40 COL DW 80 CHX DW 60 CHY DW 40 CLR DB 1 DATA END STK1 SEGMENT PARA STACKDW 20H DUP(0) STK1 ENDS CSG SEGMENTASSUME CS : CSG,DS ; DATA,SS :STACKL SQR: MOV AX,DATAMOV DS,AXMO

15、V AH,O ;选择显示方式MOV AL,06H ;置640*200图形方式INT 10HMOV DX,ROWMOV CX,COLCALL PROXMOV DX,ROWMOV CX,C0L,UMADD CX,CHXCALL PROYMOV DX,ROWMOV CX,COLCALL PROY,MOV DX,ROWADD DX,CHYMOV CX,COLCALL PROXMOV AH,4CHLNT 2LH PROX PROCMOV BP,CHX ;线长 NEXT1: MOV BH,0INC CXMOV AL,CLRMOV ALL,0CHINT L0HDEC BPJNE NEXT1RET PROX ENDP PROY PROCMOV BP,CHY NEXT2: MOV BH,0INC DXMOV AL,CLRMOV ALL,0CHINT 10HDEC BPJNE NEXT2RET PROY ENDP CSG ENDSEND SQR,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号