NASM实现Hello,world
本人以《X86汇编语言:从实模式到保护模式》为参考书。
运行环境
- VirtualBox、.vhd固定大小分配
- 虚拟机的配置为:Other–other/unknow
需要软件:
-
《X86汇编语言:从实模式到保护模式》附带工具包中的"Vhd Writer"工具。
-
NASM编译器
前提了解
①在8086CPU中,其中0xB800~0xBFFF是显卡所在区域,因此,只要将数据写显存,就可以在屏幕上输出。
②一个有效的主引导扇区,最后两个字节应该是0x55和0xaa。
③ROM-BIOS读取主引导扇区(512字节)的时候,会将其加载到逻辑地址0x0000:0x7c00处,也就是物理地址0x07c00处,然后判断它是否有效。
代码实现如下:
;显示Hello,world!
jmp near start ;跳过数据段
mytext: db 'H',0x07,'e',0x07,'l',0x07,'l',0x07,'o',0x07,',',0x07,\
'w',0x07,'o',0x07,'r',0x07,'l',0x07,'d',0x07
start:
m