Pular para o conteúdo
Hora local do proprietário em SP:
EXPERIMENTO 003 · x86-os-experiment

setor de boot

o assembly por trás de um hello world da BIOS

concluídoapenas código-fontecriado em x86-os-experiment e966889código-fonte ↗

Pergunta

Como este setor de boot coloca uma mensagem na tela usando serviços da BIOS? O assembly real de um experimento para aprender x86, junto com o comportamento registrado em suas anotações de aprendizado. O Lab apresenta o código-fonte; ele não faz o boot desse código nem o emula.

Bancada

src/main.asm · e9668891 / 5 · entrada
asm
org 0x7C00bits 16%define ENDL 0x0D, 0x0Astart:    jmp main
Nota
O NASM é instruído a montar código de 16 bits com origem em 0x7C00. A entrada salta para main; org descreve o endereço esperado, em vez de carregar o código.
resultado documentado · qemu
Hello, World!
Importante
As anotações de aprendizado do projeto registram esta saída no QEMU. Esta página não faz o boot do código-fonte nem reproduz essa verificação.

As seções agrupam o código-fonte por finalidade, não pela ordem do arquivo. Os comentários do código-fonte foram omitidos.

assembly ↗

Fidelidade

código-fontereal · revisão e966889 · comentários omitidos
execuçãonenhuma · sem boot e sem emulação
resultadodocumentado nas anotações do projeto

Baseado na revisão e966889 do x86-os-experiment. O resultado Hello, World! está documentado nas anotações do projeto e não foi reproduzido de forma independente aqui.

Relacionados

Não existe printf aqui embaixodump ↗anotações de aprendizado — em inglêsgithub ↗