2013-08-06 2 views
-1

Я пытаюсь написать загрузочный сектор, который печатает строку на экране. Я использую nasm. В моем учебнике говорится, что при вызове int 10h вы положили значение 07h в bl. Это цвет вашего текста. Я попытался изменить значение bl на 08h, но ничего не напечатал! Поэтому я попытался изменить его на 06h и все равно ничего! Можно ли изменить цвет, используя значение в bl? Если да, какое значение соответствует какому цвету?Значение bl при вызове int 10h

Если я изменю значение в ah, int 10h сделает что-нибудь еще (например, сканирует текст в al)?

ответ

3

Для того, чтобы напечатать символ, вам нужно поставить:

  1. 9 в AH (команда записи)
  2. Персонаж AL
  3. Номер страницы в BH
  4. атрибуте цвета в BL (высокие 4 бита являются фоном, низкие 4 бита являются передними)
  5. Число символов для записи в CX
  6. вызовов BIOS прерывания 10

Итак:

mov ah, 9 ; Write instruction for int 0x10 
mov al, 64 ; A 
mov bh, 0 ; Page number 
mov bl, 4 ; Red on black (00000100 - High 0000 is black, low 0100 is red) 
mov cx, 1 ; Writes one character 
int 0x10 

О тебе ты последний вопрос, да. Прерывание 10 - это видео-услуги BIOS. Он имеет many functions, все контролируются значением AH. У каждого есть разные аргументы.

+0

Я пробовал то, что вы сказали, и печатает «A», но в белом на черном не красном на черном. –

+1

На каком оборудовании/виртуальной машине вы тестируете это? – Macmade

+0

dell inspiron 2012 –