要求用汇编语言进行编程,下面是编写过程中主要涉及的知识点(其中举例只是实现方法之一,可根据自己对知识的掌握情况进行设计并调试):
1、在PC机中,对键盘的管理是通过中断机构和8255芯片来实现的,在8255中有两个端口PA和PB,在这个硬件接口的基础上,系统在BIOS中配备了键盘服务功能,可以调用键盘的DOS和BIOS功能编程,也可以直接在硬件接口的基础上编程。在硬件接口得基础上编写键盘输入程序,有关端口的信息:
7
6
5
4
3
2
1
0
PA(60H)
若PB位7=0
键盘扫描码
7
6
5
4
3
2
1
0
若PB位7=1
7
6
5
4
3
2
1
0
PB(61H)
定时器2与门
扬声器脉冲门
PC位0~3选源
0=启开盒式带马达
0=允许RAM
0=允许由扩充槽的错误信号
0=禁止键盘时钟
PA选源,即1=键盘应答
2、视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H即可建立某种显示方式。
用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令 INT 21H来实现调用,例:要输出多于一个字符时,利用DOS功能调用9。
3、键盘扫描程序设计:检测键盘状态,有无输入,并检测输入各值。例:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器。
参考资料:
1.《微型计算机接口技术及应用》
2.《汇编语言程序设计》
3.《微型计算机汇编语言程序设计》
四、
教科书中关于IBM-PC/XT机系统硬件的内容,包括8250(串行口控制器),8253,8255,8259等。
五、
DOS系统功能调用。INT
21H
10、
显示
显示单个字符
入参:
AH=02H
DL=字符ASCII值
出参:
无
显示字符串
入参:
AH=09H
DS:DX 此寄存器对指向内存中字符串的首地址,字符串以$结束
出参:
无
11、
键盘
检查键盘状态
入参:
AH=0BH
出参:
AL=00H无输入
0FFH有一字符
读键盘字符
入参:
AH=08H
出参:
AL=字符ASCII值
12、
其它
退出程序,返回系统
入参:
AH=4CH
出参:
无
取中断矢量
入参:
AH=35H
AL=中断类型号
出参:
ES:BX 中断矢量,ES为段地址,BX为偏移地址
置中断矢量
入参:
AH=25H
AL=中断类型号
DS:DX 中断矢量,DS为段地址,DX为偏移地址
出参:
AL=字符ASCII值
六、
BIOS屏幕功能调用。INT
10H
1、清屏操作
MOV
AX,0600H
MOV
CX,0000H
MOV
DX,184FH
MOV
BH,07H
INT
10H
2、移动光标
MOV
AH,02H
MOV
DH,**
;**为目的地行数(0-24)
MOV
DL,**
;**为目的地列数(0-79)
MOV
BH,00H
INT
10H
3、禁止光标显示
MOV
AH,01H
MOV
CX,2000H
INT
10H
4、恢复光标显示
MOV
AH,01H
MOV
CX,0C0DH
INT
10H