[ASSEMBLY] - Sobre bootloader, função 0eh da BIOS, interrupção int 10h. - 16Bits

https://michelizza.developpez.com/realiser-son-propre-systeme/

BOOTLOADER

Bootloader é um sistema que esta gravado no MBR(Master Boot Record), que é o registro mestre de inicialização, esse registro mestre de inicialização ele se encontra no primeiro setor do disco, seja ele disket, pendrive ou HD. A BIOS ele carrega o código que esta nesse primeiro setor para a memoria e é carregado exatamente no endereço 0x7C00h.

Se estiver em um arquivo .asm "times 510 - ($ - $$) db 0", é porque é obrigatório o Bootloader ter 512 Bytes, O BIOS precisa identificar os 510 Bytes + 2 Bytes que serão a assinatura, e essa assinatura ficara no final depois do "times 510 - ($ - $$) db 0", e esse código quer dizer, preencha 510 vezes do início "$" até o final "$$" de 0, é a onde estarão os códigos e meta-tags. A assinatura vai identificar se o disco contem o sistema operacional. A assinatura seria:

   dw 0xAA55

Se caso o disco tiver essa assinatura no final dos 512 BYTES, significa que ele contem o SO se caso não tiver ele não contem o SO e ele não é carregado.


  MOV AH, 0EH

mov ah, 0eh é uma função da BIOS para imprimir caracteres na tela, os caracteres que serão imprimidos ficaram no registrador AL.

As funções da BIOS sempre ficaram no registrador AH. Então AH + AL é mesmo que dizer AX, pois AH ele tem 8 BITS, AL tem 8 BITS, AX é 8 BITS + 8 BITS que será 16 BITS (2 BYTES) 


INT 10H

int 10, é um interrupção de video ou de monitor, a partir do momento que é chamada a interrupção de vídeo, o monitor ele vai se comunicar com a memória capturando o dado que esta em AL que estará na memória, ex de dado: "mov al, 48h", o "int 10h" vai pegar os caracteres que estão na memória, para mostrar na tela.


Ex:

 MOV AH, 0Eh

MOV AL, 48h

INT 10h

"MOV AL" vai enviar para memória os dois dados que são "mov ah, 0eh" e "mov al, 48h", e o int 10h vai pegar os caracteres que estão na memória e mostrar na tela.

OBS: já que AH já tem " 0eh", você pode definir só o que esta em AL, que serão os caracteres, se for escrever mais caracteres.






Comentários