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

获取磁盘参数

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值