Normalmente, quando o computador inicia, ele tentará carregar 512 bytes
do setor 1 head 0, cilindro 0 de uma unidade de disquetes A até
0000H: 7C00h e atribuir-lhe o controle.
Se isto falhar, uma unidade de disco rígido é utilizada.
Este tutorial cobre a inicialização através de disquetes, o mesmo princípio é
utilizado para iniciar a partir do disco rígido. Usar o dispositivo de disquetes tem várias vantagens:
Você pode manter o seu sistema operacional atual (Windows, DOS ...).
É fácil modificar o registro de incialização de uma unidade de disquetes.
Exemplo de um programa de inicialização simples:
; directive to create BOOT file:
#MAKE_BOOT#
; Boot record is loaded at 0000:7C00,
; so inform compiler to make required
; corrections:
ORG 7C00h
; load message address into SI register:
LEA SI, msg
; teletype function id:
MOV AH, 0Eh
print: MOV AL, [SI]
CMP AL, 0
JZ done
INT 10h ; print using teletype.
INC SI
JMP print
; wait for 'any key':
done: MOV AH, 0
INT 16h
; store magic value at 0040h:0072h:
; 0000h - cold boot.
; 1234h - warm boot.
MOV AX, 0040h
MOV DS, AX
MOV w.[0072h], 0000h ; cold boot.
JMP 0FFFFh:0000h ; reboot!
new_line EQU 13, 10
msg DB 'Hello This is My First Boot Program!'
DB new_line, 'Press any key to reboot', 0
Copie o exemplo acima para o editor fonte emu8086 e
pressione o botão [Compile and Emulate].
O emulador carrega automaticamente o arquivo “.boot" para 0000H: 7C00h.
Você pode executá-lo apenas como um programa regular, ou pode usar o menu
Virtual Drive para Write 512 bytes at 7C00h to Boot Sector
do drive de disquete virtual (arquivo FLOPPY_0 na pasta do emulador).
Depois de escrever o seu programa na unidade de disquetes virtual, você pode selecionar
Boot from Floppy do menu Virtual Drive.
Se você estiver curioso, você pode escrever
o disquete virtual (FLOPPY_0) ou arquivo ".boot" para um disquete real e
inicializar o computador a partir dele, eu recomendo
utilizar "RawWrite para Windows" de:
http://uranus.it.swin.edu.au/ ~ jn / linux
(note que este não é compatível com o setor de inicialização MS-DOS
por isso é melhor usar e esvaziar o disquete, embora ele deva ser formatado pela
IBM (MS-DOS)).
Arquivos ".Boot" estão limitados a 512 bytes (tamanho do setor) e, portanto, se o seu
Sistema Operacional vai crescer acima desse tamanho, você deve usar o programa de iniciar
para carregar dados de outros setores. Um bom exemplo de sistema operacional pequeno pode
ser baixado aqui:
Para criar extensões para o seu Sistema Operacional (mais de 512 bytes), você pode usar
arquivos ".Bin" (selecione "BIN Template" no menu "File" -> "New").