2

c.でBIOSを使用してデータを印刷する方法はありますか. アセンブリで使用できることは知っていますがint 0x10、Cに相当するものはありますか?

4

1 に答える 1

1

OS がすでに実行されているかどうかによって異なります。
はいの場合、実行中の OS によって異なります。ただし、通常、C を使用している場合は、C stdlib を使用できるはずです。したがって、printf() および/または stdout を使用してください...

OS が利用できない場合は、CPU モードに依存します。

CPU がリアル モードで動作している場合は、10h BIOS 割り込みを使用します。
C でも実行できます。ほとんどの C コンパイラでは、インライン アセンブリが許可されています。
たとえば、GCC の場合は、__asm キーワードを使用します。

32 ビット プロテクト モードの場合、BIOS 割り込みが使用できなくなっているため、ビデオを手動で管理する必要があります。

このような場合、印刷データは、ビデオ バッファを含むメモリ領域に書き込まれるだけです。データを正しい形式で書き込むことができるように、現在のビデオ モードと、メモリ バッファーのメモリ アドレスを知る必要があります。
このような場合、単にメモリ領域への char ポインタを宣言し、文字を書き込む...

于 2010-07-21T22:23:33.640 に答える