CRT 对角线显示笑脸(回答被采用后加分)

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:33:02
一、 使用目的
1、 学会用字符在CRT作图的方法;
2、 掌握用BIOS(INT 10H)的0号功能调用的方法,设置CRT的两种黑白(80×25和40×25)文本显示方式。
二、 实验要求
1、 在CRT左下角显示下述菜单:
2、 按“1”键,选择40×25的单色文本显示方式,并在CRT的左上角至右下角对角线上显示笑脸,然后返回菜单;
3、 按“2”键,选择80×25的单色文本显示方式,并在CRT的左上角至右下角对角线上显示笑脸,然后返回菜单;
4、 按除1和2的任意键,返回DOS的单色80×25的文本显示方式;
5、 在显示笑脸的过程中,菜单显示保持不变。
三、 编程要点
1、 扫描键用DOSI/O设备的功能调用的INT 21H的第7号功能;
2、 显示菜单用INT 21H的第9号功能,入口参数DS:DX=菜单缓冲区首址;
3、 设置CRT的两种文本显示方式,调用BIOS显示器驱动程序(INT 10H)的0号功能,入口参数分别为(AL)=0,(AL)=7。
4、 本程序还要用INT 10H的三个功能:AH=0FH,把显示也好填入BH;AH=2,设置光标;AH=0AH,显示一个字体。

DATA SEGMENT
INFO1 DB "1. 40c/line please enter1",0DH,0AH,'$'
INFO2 DB "2. 80c/line please enter2",0DH,0AH,'$'
INFO3 DB "3. Any other key exit",0DH,0AH,'$'
DATA ENDS
CDEG SEGMENT
ASSUME CS:CDEG ;
START: MOV DX,1500H ;显示菜单开始,光标初始位置 (21,0)
MOV CX,01H
MOV AH,02H
INT 10H
MOV AX,SEG INFO1
MOV DS,AX
MOV DX,OFFSET INFO1
MOV AH,09H
INT 21H ;在显示器上显示字符串提示信息"1. 40c/line please enter1"
MOV AX,SEG INFO2
MOV DS,AX
MOV DX,OFFSET INFO2
MOV AH,09H
INT 21H ;在显示器上显示字符串提示信息 "2. 80c/line please enter2"
MOV AX,SEG INFO3
MOV DS,AX
MOV DX,OFFSET INFO3 ;在显示器上显示字符串提示信息"3. Any other key exit"
MOV AH,09H
INT 21H ;显示菜单结束
INPUT: MOV AH,07H ;从键盘读取字符到AL寄存器