一起学习x86/x64知识(二)

这里,\\.\g就是U盘的设备名,当配置文件中添加写入U盘时(目标文件为U盘设备名),我们可以插入U盘到真实机器去运行。

接下来,需要编写自己的boot代码,下面是简短的示例片断:

; set BOOT_SEG environment

mov ax, cs

mov ds, ax

mov ss, ax

mov es, ax

mov sp, BOOT_SEG                ; stack 底为 BOOT_SEG

call clear_screen

mov si, hello

call print_message

mov si, 20                  ; setup 模块在第20 号扇区里

mov di, SETUP_SEG - 2

call load_module                ; 使用 load_module() 读多个扇区

mov si, SETUP_SEG

call print_message

mov si, word [load_message_table + eax * 2]

call print_message

next:

jmp $

在这个boot示例里,主要的工作是调用load_module()函数来加载上述的某个模块,接下来,调用print_message()打印信息。

 

最后,每个测试实验下,都包括源代码文件,bochs配置文件,merge工具的配置文件,软盘映像文件(demo.img)以及硬盘映像文件(c.img)。

 

原文地址:https://www.cnblogs.com/broadview/p/2719584.html