Faça um verdadeiro IPL (gravador de programa de inicialização)
Considerando o desenvolvimento futuro, só precisamos usar o nask para fazer uma área de boot de 512 bytes e usar a ferramenta de gerenciamento de imagem de disco para fazer o resto, para que o desenvolvimento seja conveniente
day2 / helloos4 / ipl.nas modificou as instruções de montagem apontadas pelo rótulo msg. A versão modificada é a seguinte:
msg:
DB 0x0a, 0x0a ; 换行
DB "hello, world"
DB 0x0a ; 换行
DB 0
RESB 0x7dfe-$ ; 到0x7dfe在0x00中填补的命令
DB 0x55, 0xaa
Transformamos ainda mais asm.bat e inserimos ... \ tolset \ z_tools \ nask.exe ipl.nas ipl.bin ipl.lst (isso é inserido de acordo com o diretório real onde o arquivo em seu computador está localizado, caso contrário, o caminho será não ser encontrado erro)
Clique duas vezes no arquivo! Cons_nt.bat e insira asm. Descobrimos que não há nenhum arquivo de imagem helloos.img direto, mas um arquivo ipl.bin e ipl.lst. Verificamos o ipl.lst, que é um arquivo de texto para confirme cada Como estas instruções são traduzidas para a linguagem de máquina.
continuar! O que precisamos é o arquivo de mapeamento .img, o código em makeimg.bat é… \ tolset \ z_tools \ edimg.exe imgin:… /… /… / tolset / z_tools / fdimg0at.tek wbinimg src: ipl.bin len: 512 de: 0 a: 0 imgout: helloos.img (também de acordo com o diretório atual)
continue inserindo makeimg na janela cmd, podemos ver que há um helloos.img extra na pasta, é disso que precisamos.img Arquivo de mapeamento
Em seguida, digite run no console para
ver se o sistema operacional hello world que escrevemos foi executado com êxito.
Aqui, edimg.exe é uma ferramenta de gerenciamento de mapeamento de disco usada para gerenciar o arquivo de mapeamento img gerado.
Introdução ao Makefile
Geramos o arquivo de imagem helloos.img em helloos4 e usamos a máquina virtual qemu para executar esse arquivo. Os arquivos em lote envolvidos são ainda mais do que realmente precisamos. Podemos escrever esses comandos de uma única etapa em um arquivo para executar.
Crie um novo arquivo, o nome do arquivo é Makefile, não use o sufixo, abra este arquivo no Bloco de Notas, digite a seguinte instrução:
#默认动作
default :
../../../tolset/z_tools/make.exe img
#文件生成规则
ipl.bin : ipl.nas Makefile
../../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst
helloos.img : ipl.bin Makefile
../../../tolset/z_tools/edimg.exe imgin:../../../tolset/z_tools/fdimg0at.tek \
wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img
#命令
asm :
../../../tolset/z_tools/make.exe -r ipl.bin
img :
../../../tolset/z_tools/make.exe -r helloos.img
run :
../../../tolset/z_tools/make.exe img
copy helloos.img ..\..\..\tolset\z_tools\qemu\fdimage0.bin
../../../tolset/z_tools/make.exe -C ../../../tolset/z_tools/qemu
install :
../../../tolset/z_tools/make.exe img
../../../tolset/z_tools/imgtol.com w a: helloos.img
clean :
-del ipl.bin
-del ipl.lst
src_only :
../../../tolset/z_tools/make.exe clean
-del helloos.img
Em seguida, crie um novo arquivo chamado make.bat e insira o conteúdo nele:
… \ tolset \ z_tools \ make.exe% 1% 2% 3% 4% 5% 6% 7% 8% 9
Desta vez, clique duas vezes icons_nt_bat, em cmd Insira make run nele, ele irá gerar automaticamente os arquivos lst, bin e img para nós, e carregar o arquivo de mapeamento img na máquina virtual para ser executado.
O conteúdo da pasta é o seguinte:
Resultados da execução da máquina virtual QEMU (a instrução de saída em ipl.nas pode ser modificada por você)