Realice una IPL real (Grabador de programas de inicio)
Teniendo en cuenta el desarrollo futuro, solo necesitamos usar nask para hacer un área de arranque de 512 bytes, y usamos la herramienta de administración de imágenes de disco para hacer el resto, para que el desarrollo sea conveniente.
day2 / helloos4 / ipl.nas modificó las instrucciones de ensamblaje señaladas por la etiqueta msg. La versión modificada es la siguiente:
msg:
DB 0x0a, 0x0a ; 换行
DB "hello, world"
DB 0x0a ; 换行
DB 0
RESB 0x7dfe-$ ; 到0x7dfe在0x00中填补的命令
DB 0x55, 0xaa
Transformamos asm.bat e ingresamos ... \ tolset \ z_tools \ nask.exe ipl.nas ipl.bin ipl.lst (esto se ingresa de acuerdo con el directorio real donde se encuentra el archivo en su computadora; de lo contrario, la ruta será no ser encontrado error)
Haga doble clic en el archivo! Cons_nt.bat e ingrese asm. Encontramos que no hay un archivo de imagen helloos.img directo, sino un archivo ipl.bin y ipl.lst. Verificamos el ipl.lst, que es un archivo de texto para confirme cómo se traducen estas instrucciones al lenguaje de máquina.
¡seguir adelante! Lo que necesitamos es el archivo de mapeo .img, el código en makeimg.bat es… \ tolset \ z_tools \ edimg.exe imgin:… /… /… / tolset / z_tools / fdimg0at.tek wbinimg src: ipl.bin len: 512 from: 0 to: 0 imgout: helloos.img (también de acuerdo con el directorio actual)
continúe ingresando makeimg en la ventana de cmd, podemos ver que hay un helloos.img adicional en la carpeta, esto es lo que necesitamos.img Archivo de mapeo
Luego, ingrese ejecutar en la consola para
ver que el sistema operativo hello world que escribimos se ha ejecutado correctamente.
Aquí edimg.exe es una herramienta de administración de mapeo de disco que se utiliza para administrar el archivo de mapeo img generado.
Empezando con Makefile
Generamos el archivo de imagen helloos.img en helloos4 y usamos la máquina virtual qemu para ejecutar este archivo. Los archivos por lotes involucrados son incluso más de lo que realmente necesitamos. Podemos escribir estos comandos de un solo paso en un archivo para ejecutar.
Cree un nuevo archivo, el nombre del archivo es Makefile, no use el sufijo, abra este archivo en el Bloc de notas, ingrese la siguiente declaración:
#默认动作
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
A continuación, cree un nuevo archivo llamado make.bat e ingrese el contenido:
… \ tolset \ z_tools \ make.exe% 1% 2% 3% 4% 5% 6% 7% 8% 9
Esta vez, haga doble clic icons_nt_bat, en cmd Ingrese make run en él, generará automáticamente los archivos lst, bin e img para nosotros, y cargará el archivo de mapeo img en la máquina virtual para ejecutarlo.
El contenido de la carpeta es el siguiente:
Resultados de la ejecución de la máquina virtual QEMU (la declaración de salida en ipl.nas puede ser modificada por usted mismo)