+-----------------------------------------------+ 操作系统开发小试-实模式引导程序 +-----------------------------------------------+ + +1.开发语言:ASM(工具:NASM) +2.虚拟环境:Virtual PC +3.应用工具:WinHex Ver11.2 ====================================================== org 0x07c00 这条语句将该引导程序装入绝对地址0x7c00处.该引导程序被编译后有512字节,被加载到磁盘的第1扇区中(引导扇区).当PC启动的时候被BIOS加载到地址0x7c00处. mov ax, cs mov ds, ax mov es, ax 这三条语句是初始化段寄存器的:当系统加载引导程序的时候就把程序的装入地址0x7c00放入代码段寄存器cs中.ds,es保存数据段段地址,如果不使用的话,程序就会找不到要显示的字符串(当进行串操作时,段地址是保存在es中). jmp short beginroot 跳转到标签beginroot处,并从那里开始执行程序代码. bootmsg db ""START YYOS......"" ;16bytes(0x10) 定义了一个字符串,当程序运行后在屏幕显示该友好字符串. cls: mov ax, 0x0600 ;ah=06表示使用INT10的功能6,al=0表示清屏 mov bh, 0 ;bh=0表示使用第0页 mov cx, 0 ;cx=0表示屏幕的左上角 mov dx, 0x174f ;dx=0表示屏幕的右下角 int 0x10 ;调用中断 ret ;函数返回 该块类似一个函数性质,它的作用就是清除屏幕.它调用的是BIOS中断INT10,关于BIOS中断的详细内容我会写一篇详细的文档,请等待. print: mov ax, 0x1300 ;ah=0x13表示使用INT10的功能0x13,al=0表示清屏 mov bx, 0x0002 ;bh=0表示使用第0页,bl=2表示字符串的颜色为绿色 mov cx, 0x10 ;cx=10表示显示字符串的长度 mov dx,...