分类: LINUX
2008-04-01 17:22:09
我写的代码如下:
;boot.asm
org 07c00h
mov ax,cs
mov ds,ax
mov es,ax ;使es,ds,cs指向相同的段,以便以后数据操作时的正确定位
mov ax,message
mov bp,ax ;es:bp =串message的地址
mov ax,01301h ;参照如上BIOS 10h中断调用
mov bx,000ch ;参照如上BIOS 10h中断调用
mov dl,0
int 10h ;调用BIOS 10h中断
message: db "Hello World!"
times 510-($-$$) db 0 ;填充剩下的空间
dw 0xaa55 ;结束标志
简单说一下吧,
上述代码实现的功能就是形成一个512字节的程序(因为引导程序刚好占一个扇区即:512字节);
times 510-($-$$) db 0 这段代码就是实现代码长度不够512字节的时候用0填充 即形成510个字节;最后的结束标志刚好是0xaa55 占两个字节;
程序的功能就是打印一个红色字符串"Hello World!"。
chinaunix网友2010-07-16 19:02:23
KK娱乐视频网,快乐齐分享 www.yulekk.com 搞笑视频,动漫视频,美女写真,靓丽车模,美女翻唱,精彩MV,经典DV
bluesky2bb2008-04-14 18:21:01
to 52xxyj.cn: 你只要将上面的代码 用用NASM编译: nasm boot.asm -o boot.bin 然后将boot.bin写入一个虚拟软盘中 其中虚拟软盘可以用VMWare生成,而你可以找一个写软盘的工具将这个引导程序写入即可,再在虚拟机中以软盘启动就行了。 推荐一个链接给你: http://www.vckbase.com/document/viewdoc/?id=1643