请教关于int 0x13的详细用法?
答案:1 悬赏:10 手机版
解决时间 2021-03-25 13:55
- 提问者网友:最爱你的唇
- 2021-03-25 09:03
请教关于int 0x13的详细用法?
最佳答案
- 五星知识达人网友:风格不统一
- 2021-03-25 10:24
只能在DOS下用,windows下有保护。
BIOS中断INT 0x13中,
ah=0x02,即为读磁盘扇区到内存,利用这二号服务即可读入setup模块。
[b]说明:
al=需要读出的扇区数;
ch=磁道号的低八位;
cl=开始扇区(位0—5),磁道号高二位(位6—7)
dh=磁头号
dl=驱动器号(若是硬盘则要置位7)
es:dx—>指向数据缓冲区
若出错则CF示志置位
[/b]
[b][/b]
[b]程序:
……
load_setup:
mov dx,#0x0000 !驱动器0,磁头0;
mov cx,#0x0002 !扇区2,磁道0;
mov bx,#0x0200 !此时es已置为0x9000,则指向地址0x9200;
mov ax,#0x0200+SETUPLEN !置为服务二,读入SETUPLEN=4个扇区;
int 0x13 !中断13;
jnc ok_load_setup !判断是否成功;
mov dx,#0x0000 !未成功,复位磁盘;
mov ax,#0x0000
int 0x13
j load_setup !继续读;
ok_load_setup:
……
[/b]
BIOS中断INT 0x13中,
ah=0x02,即为读磁盘扇区到内存,利用这二号服务即可读入setup模块。
[b]说明:
al=需要读出的扇区数;
ch=磁道号的低八位;
cl=开始扇区(位0—5),磁道号高二位(位6—7)
dh=磁头号
dl=驱动器号(若是硬盘则要置位7)
es:dx—>指向数据缓冲区
若出错则CF示志置位
[/b]
[b][/b]
[b]程序:
……
load_setup:
mov dx,#0x0000 !驱动器0,磁头0;
mov cx,#0x0002 !扇区2,磁道0;
mov bx,#0x0200 !此时es已置为0x9000,则指向地址0x9200;
mov ax,#0x0200+SETUPLEN !置为服务二,读入SETUPLEN=4个扇区;
int 0x13 !中断13;
jnc ok_load_setup !判断是否成功;
mov dx,#0x0000 !未成功,复位磁盘;
mov ax,#0x0000
int 0x13
j load_setup !继续读;
ok_load_setup:
……
[/b]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯