計算機を実行できるオペレーティングシステム用にコーディングする必要があります。これはデスクトップ計算機のようなものです。このために私はブートローダーの第2段階を完了した壊れたとげのオペレーティング開発シリーズを読んでいますブートローダーはリアルモードです。この後、作者はプロテクトモードについて説明しています。プロテクトモードは使いたくない。そのための時間がありません。したがって、BIOS割り込みを使用して、リアルモードで計算機を記述したいと思います。出来ますか?ブートローダーの第2ステージで記述できると思います(わかりません)。つまり、カーネルを使用する必要がない(わかりません)。BIOS割り込みを使用してキーボードを処理する方法がわかりません。誰かが私にこれで私を助けるリンクを提供できますか?そして、私が上で仮定したwhatevetの何かが間違っているなら、私を訂正してください。よろしくお願いします。
7984 次
3 に答える
10
5
IRQ 1(x86コントローラーによって割り込み9にマップされます)を処理し、ポートからキーを読み取ることができます60h
。
http://inglorion.net/documents/tutorials/x86ostut/keyboard/を参照してください。
于 2010-11-06T13:24:43.140 に答える
3
最小限のGASブートセクターBIOSの例
文字を入力すると、画面に印刷されます。
main.S
.code16
.global _start
_start:
cli
/* Set SS and SP as they may get used by BIOS calls. */
xor %ax, %ax
mov %ax, %ss
mov $0x0000, %sp
/* Get input to %al */
mov $0x00, %ah
int $0x16
/* Print the input from %al */
mov $0x0E, %ah
int $0x10
hlt
.org 510
.word 0xaa55
コンパイルして実行します。
as -o main.o main.S
ld --oformat binary -o main.img -Ttext 0x7C00 main.o
qemu-system-i386 -hda main.img
Ubuntu 14.04 AMD64、Binutils 2.24、QEMU 2.0.0、および実際のハードウェアLenovoThinkpadT400でテスト済み。
于 2015-09-20T17:55:20.567 に答える