Пример BIOS минимального загрузочного сектора GAS
Когда вы вводите символ, он выводится на экран.
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
GitHub upstream .
Протестировано на Ubuntu 14.04 AMD64, Binutils 2.24, QEMU 2.0.0 и на реальном оборудовании Lenovo Thinkpad T400.