当前位置: 技术问答>linux和unix
setup.s中关于选通A20的问题
来源: 互联网 发布时间:2015-09-06
本文导语: 代码如下: call empty_8042 mov al,#0xd1 out #0x64,al call empty_8042 mov al,#0xdf out #0x60,al call empty_8042 ...... ...... empty_8042: .word 0x00eb,0x00eb in al,#0x64 test al,#2 jnz empty_8042 ...
代码如下:
call empty_8042
mov al,#0xd1
out #0x64,al
call empty_8042
mov al,#0xdf
out #0x60,al
call empty_8042
......
......
empty_8042:
.word 0x00eb,0x00eb
in al,#0x64
test al,#2
jnz empty_8042
ret
我的问题是:0xd1 0xdf这两个字是什么作用?8042 P2口的位1用于A20的选通,是不是第一个只要是个奇数就行?第二个又是什么意思?
另外一个问题是empty_8042应该是等待输入缓冲器空,可如果在开机后读入setup模块时,用户按下了键盘是不是就会死机呢?应该是不会吧,那原因是什么?
call empty_8042
mov al,#0xd1
out #0x64,al
call empty_8042
mov al,#0xdf
out #0x60,al
call empty_8042
......
......
empty_8042:
.word 0x00eb,0x00eb
in al,#0x64
test al,#2
jnz empty_8042
ret
我的问题是:0xd1 0xdf这两个字是什么作用?8042 P2口的位1用于A20的选通,是不是第一个只要是个奇数就行?第二个又是什么意思?
另外一个问题是empty_8042应该是等待输入缓冲器空,可如果在开机后读入setup模块时,用户按下了键盘是不是就会死机呢?应该是不会吧,那原因是什么?
|
硬件的逻辑电路就这样设计的