您的位置:首页 > 编程语言

跟大师学习系统编程---操作系统加载(3)

2017-11-01 10:03 357 查看

获取磁盘参数

ok_load_setup:

! Get disk drive parameters, specifically nr of sectors/track

mov dl,#0x00
mov ax,#0x0800      ! AH=8 is get drive parameters
int 0x13
mov ch,#0x00
seg cs
mov sectors,cx
mov ax,#INITSEG
mov es,ax


获取磁盘参数,主要是获取每磁道的扇区数,这样做的目的是为了判断当前的启动磁盘的类型(当时还流行软盘驱动器,而软盘有2种尺寸的——1.2M和1.44M). 他们每磁道包含的扇区数目不同。

第8行代码将ch清0,主要是为了第10行的代码,因为扇区数目是存储在cl中的,所以,要排除ch的干扰。sectors为本程序的一个变量,在程序文件的某位有定义。保存每磁道扇区数目。

第11行和第12行代码用于恢复es寄存器的值,因为取磁盘参数中断程序修订了es寄存器的值,需要重新初始化es。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 编程 磁盘