Следующий сайт «Написание кода загрузочного сектора» предоставляет образец кода, который выводит «A» на экран при загрузке системы. Из того, что я читал, вам не нужно использовать код операции INT, чтобы заставить BIOS делать определенные вещи? Как работает приведенный ниже код с сайта, на который есть ссылки, без прерываний? Какая часть кода на самом деле говорит оборудованию выводить на экран букву «А»?
Код вопроса:
.code16
.section .text
.globl _start
_start:
mov $0xb800, %ax
mov %ax, %ds
movb $'A', 0
movb $0x1e, 1
idle:
jmp idle
ПРИЛОЖЕНИЕ К ОРИГИНАЛЬНОМУ ВОПРОСУ
Если я использую следующий код, BIOS вызывает для меня запись в текстовый буфер? Буфер, начинающийся с адреса 0xb800?
# Author: Matthew Hoggan
# Date Created: Tuesday, Mar 6, 2012
.code16 # Tell assembler to work in 16 bit mode (directive)
.section .text
.globl _start # Help linker find start of program
_start:
movb $0x0e, %ah # Function to print a character to the screen
movb $0x00, %bh # Indicate the page number
movb $0x07, %bl # Text attribute
mov $'A', %al # Move data into low nibble
int $0x10 # Video Service Request to Bios
_hang:
jmp _hang
.end