做一个操作系统,不可能只在屏幕上打印字符,不让用户操作吧。
int 16h=键盘驱动,详细ah功能号如下
ah=0
读取键盘并等待键盘发出反应。
输出:
ah=属性(应该是在键盘上的位置)
al=字符
ah=1
读取键盘但不等待键盘发出反应,并会设置cf。
输出:
如果键盘按下:
cf=0
ah=属性
al=字符
否则:
cf=1
ah=3
输出:
al=特殊键的状态
之后,我们可以做一个简单的键盘程序:
KeyRead:
mov ah,0
int 16h
mov ah,0eh
int 10h
jmp KeyRead
这样,就可以将你按的键输出在屏幕上了。
但是,再按某些键时(例如:Fx,上下左右),会输出空白(0x00)
我们就可以用ah属性来检测
例如,侦测到左键,那么就打印L。
KeyRead:
mov ah,0
int 16h
cmp ah,"K"
je PrintLift
jmp KeyRead
PrintLift:
mov ah,0eh
mov al,"L"
int 10h
jmp KeyRead
这篇文章就结束了。
我们在开发操作系统(3)再见。