2

AltLinuxブートローダーでキーが押されたかどうかを確認するのに苦労しています

int 0x16
mov ah, 0x0e
int 0x10

Alt上記のコードはASCII文字を問題なく出力しますが、キーを確認するにはどうすればよいですか?

4

1 に答える 1

3

0040h:0017h のビット 3 をテストします。

http://www.ousob.com/ng/bios/ng559a.php

このようなもの (AT/T 構文):

mov    $0x40,%ax
mov    %ax,%es
testb  $8,%es:0x17
jz     noAltKey
.... ;; Alt pressed
noAltKey:

によるとobjdump -d -M intel、インテルの構文では次のようになります。

0:   66 b8 40 00             mov    ax,0x40
4:   8e c0                   mov    es,eax
6:   26 f6 04 25 17 00 00    test   BYTE PTR es:0x17,0x8
d:   00 08 

UPD: 以下は NASM で機能するはずです。

mov    ax,0x40
mov    es,eax
test   [es:0x17],byte 0x8
jz     noAltKey
.... ;; Alt pressed
noAltKey:
于 2013-01-23T19:47:12.763 に答える