Oficina
8. O loader Numaboa
Sab 26 Mai 2007 16:20 |
- Detalhes
- Categoria: Sistemas Operacionais
- Atualização: Domingo, 12 Abril 2009 17:38
- Autor: vovó Vicki
- Acessos: 13439
Escrevendo a string na tela
A sub-rotina ou procedimento PoeString vai precisar de um loop que, a cada passada, imprima o caracter encontrado na tela. Este loop termina quando o caracter 0 (zero) for encontrado. Nossa rotina de teletipo ficará dentro desta função:
O opcode LODSB carrega um byte existente em [DS:SI] em AL. Depois disto incrementa ou decrementa SI (dependendo da flag de direção: incrementa se a flag for 0, decrementa se for 1). Este código operacional é uma mão na roda para transferir sequências de bytes.
Bem, o código acima realiza o que projetamos. Salve-o como loader2a.asm e compile-o para loader2a.bin com o NASM.
Verificando o boot loader Numaboa
Só para matar a curiosidade, vamos dar uma olhada no código compilado. Use o editor hexadecimal da sua preferência e verifique os 512 bytes do arquivo loader2a.bin, que deve mostrar o seguinte:
0000 B4 07 B0 20 B7 07 B9 00 00 B6 20 B2 B0 CD 10 B4 ´.° ·.¹..¶ ²°Í.´ 0010 02 B7 00 BA 00 00 CD 10 B8 00 00 8E D8 BE 35 7C .·.º..Í.¸..ŽØ¾5| 0020 E8 02 00 EB FE B4 0E B7 00 B3 07 AC 08 C0 74 04 è..ëþ´.·³.¬.Àt. 0030 CD 10 EB F7 C3 53 69 73 74 65 6D 61 20 4F 70 65 Í.ë÷ÃSistema Ope 0040 72 63 61 69 6F 6E 61 6C 20 3E 75 6D 61 42 6F 61 racional NumaBoa 0050 0D 0A 00 00 00 00 00 00 ... ... 01F0 ... 00 00 00 00 00 00 55 AA
Testando o bootloader Numaboa
Prepare o disquete de teste da mesma forma como foi explicado no módulo anterior. Agora, é só cruzar os dedos e torcer para que tudo dê certo (pra mim deu ).
Dê o boot com o disquete no drive e deixe o Sistema Operacional Numaboa assumir o comando e ficar "travado" no loop infinito...