<自己动手写操作系统>2011033002
【分析】
部分代码
xor ah, ah ; ┓
xor dl, dl ; ┣ 软驱复位
int 13h ; ┛
这里涉及到中断13H,AH=0H的功能描述
(1)、功能00H
功能描述:磁盘系统复位
入口参数:AH=00H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
关于int 13H的具体,参考http://blog.sina.com.cn/s/blog_5028978101008wk2.html
补充一个int指令描述
int指令
格式:int n
n为中断类型码,它的功能是引发中断过程。
CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下:
1)取中断类型码n;
2)标志寄存器入栈,IF=0,TF=0;
3)CS、IP入栈
4)(IP)=(n*4),(CS)=(n*4+2)
从此处转去执行n号中断的中断处理程序。
可以在程序中使用int指令调用任何一个中断的中断处理程序。
另外int中断中有Bios中断和Dos中断,现在暂时提供一个Bios中断功能的说明
参看:http://blog.csdn.net/liguodong86/archive/2009/03/09/3973337.aspx
关于Bios和dos中断调用:
1、将调用参数写入特定寄存器
2、BIOS或DOS功能号写入AH
3、如需子功能号,把它装入AL
4、按中断号调用DOS或BIOS中断(INT)
5、检查或取出返回参数
看到这个中断调用的过程,你就会发现以前看到什么mov ax,xxx之类的,int xx之类,目的就在于中断调用
部分代码
xor ah, ah ; ┓
xor dl, dl ; ┣ 软驱复位
int 13h ; ┛
这里涉及到中断13H,AH=0H的功能描述
(1)、功能00H
功能描述:磁盘系统复位
入口参数:AH=00H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
关于int 13H的具体,参考http://blog.sina.com.cn/s/blog_5028978101008wk2.html
补充一个int指令描述
int指令
格式:int n
n为中断类型码,它的功能是引发中断过程。
CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下:
1)取中断类型码n;
2)标志寄存器入栈,IF=0,TF=0;
3)CS、IP入栈
4)(IP)=(n*4),(CS)=(n*4+2)
从此处转去执行n号中断的中断处理程序。
可以在程序中使用int指令调用任何一个中断的中断处理程序。
另外int中断中有Bios中断和Dos中断,现在暂时提供一个Bios中断功能的说明
参看:http://blog.csdn.net/liguodong86/archive/2009/03/09/3973337.aspx
关于Bios和dos中断调用:
1、将调用参数写入特定寄存器
2、BIOS或DOS功能号写入AH
3、如需子功能号,把它装入AL
4、按中断号调用DOS或BIOS中断(INT)
5、检查或取出返回参数
看到这个中断调用的过程,你就会发现以前看到什么mov ax,xxx之类的,int xx之类,目的就在于中断调用
无论生活、还是技术,一切都不断的学习和更新~~~努力~