Отображение данных с помощью BIOS в C - PullRequest
2 голосов
/ 22 июля 2010

Есть ли способ напечатать данные с помощью BIOS в c.Я знаю, что в сборке вы можете использовать int 0x10, но есть ли эквивалент для C?

1 Ответ

1 голос
/ 22 июля 2010

Это зависит от того, запущена ОС или нет.
Если да, это зависит от операционной системы, которая работает. Но обычно, если используется C, должен быть доступен C-stdlib. Так что используйте printf () и / или stdout ...

Если ОС недоступна, это зависит от режима процессора.

Если процессор работает в реальном режиме, используйте 10-часовое прерывание BIOS.
Вы можете сделать это даже в C. Большинство компиляторов C допускают встроенную сборку.
Например, для GCC используйте ключевое слово __asm.

Если вы находитесь в 32-битном защищенном режиме, вам нужно управлять видео вручную, поскольку прерывания BIOS больше не доступны.

В этом случае данные для печати просто записываются в область памяти, которая содержит видеобуфер. Вам необходимо знать, в каком режиме видео вы находитесь, чтобы вы могли записывать данные в правильном формате и каков адрес памяти буфера памяти.
В таком случае просто объявляет указатель на символ в области памяти и записывает символы ...

...