; boot.asm
org 07c00h
jmp SHOWSTR
DATA:
db "Hello World"
SHOWSTR:
mov ax,cs
mov es,ax
mov bp,DATA
mov cx,12
mov bx,000ch
mov dh,0
mov al,1
mov ah,13h
int 10h
AGAIN:
jmp AGAIN
times 510-($-$$) db 0
dw 0xAA55
- 引导程序一般位于磁盘的第一个扇区,只有512字节,在BIOS POST进行时,会将该扇区内容拷贝到0x7c00的内存地方(历史原因),而不是用户决定的.
- org 7c00h 的作用是对标签如“DATA” 进行重定位。如果不加org 7c00h 的话,在对“DATA”进行编译后,为相对该段起始地址的偏移地址,这样在加载到内存中,进行引用数据的话,就会出错的。
- times 表示重复,$ 表示当前地址,$$表示当前段开始的地址,$-$$ 表示当前行在段内的偏移。
- 通过命令 nasm boot.asm -o boot.bin ,然后将boot.bin的512个字节的内容复制到软盘镜像的第一个扇区。通过使用vmware 利用软驱启动,会看到显示“Hello world!”