assume cs:code
code segment
int7ch:
jmp begin
Fun db 32 dup(0) ;设置一段空间保存临时数据
Begin:
push ax
push dx
push cx ;保存现场
mov Fun[0],ah ;先将功能号保存
mov Fun[1],al ;先将要读取的扇区数保存
;取面号即磁头号
mov ax,bx ;低为存放逻辑扇区号
mov dx,0 ;高位置零
mov cx,1440 ;cx做除数
div cx ;取ax=int((逻辑扇区号)/(1440)) 及dx=rem((逻辑扇区号)/(1440))
mov Fun[2],al ;临时存放面号
;取磁道号,扇区号
mov ax,dx
mov dx,0
mov cx,18
div cx ;取得ax=int((rem(逻辑扇区号)/1440)/18),dx=rem((rem(逻辑扇区号)/1440)/18)
mov Fun[3],al ;临时存放磁头号
add dl,1
mov Fun[4],dl ;存放扇区号
;设置功能号
Cmp Fun[0],0
jne write
mov ah,2
jmp int13H
write:
Cmp Fun[0],1
jne return
mov ah,3
;根据参数执行int13H中断
Int13H:
mov al,Fun[1] ;设置读取的扇区数
mov dh,Fun[2] ;设置面号
mov ch,Fun[3] ;设置磁道号
mov cl,Fun[4] ;设置扇区号
mov dl,0 ;设置驱动器号
mov bx,si ;设置读/写位置 es:bx
int 13H ;执行中断
return:
pop cx
pop dx
pop ax ;取回现场
Iret
int7cHend:
Setup:
mov ax,0020H
mov es,ax
mov di,0
mov ax,cs
mov ds,ax
mov si,offset int7ch
mov cx,offset int7cHend - offset int7cH
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7cH*4],0
mov word ptr es:[7cH*4+2],20H
mov ax,0B800H
mov es,ax
mov si,0 ;设置读/写位置,用si暂时保存本该由bx保存的值
mov ah,0
mov al,1
mov bx,0
int 7cH
nop
mov ax,4c00H
int 21H
code ends
end setup
- [游客] wo lai le 12/23 18:50
- [tangxin] 非常有道理 03/06 09:23
- [游客] 现在学校的教学已经不是那么回事了,还是得靠自学。 06/04 12:13
- [assemblyeaten] 顶一下 05/11 10:48
- [游客] eg 05/04 15:55
- [hacker_ld] 哈哈哈!!好文章! 04/30 22:35
- [游客] 其实,很多女孩子也不想那么学,只因考试的时候要考概念,,,,怪谁呢 03/15 17:43
- [游客] 呵呵,,,,好,,,2012 08/25 10:35
- [asshuke] 说的很好,我等菜鸟奋起直追呀! 08/14 11:24
- [xuyanghui] 很好啊,对我很有用的,很经典,谢谢坐着啦. 04/11 18:05
- [游客] 千术揭密教学www.pwmhg.cn 马洪刚反赌www.puke56.cn 马洪刚千术揭秘w 06/07 10:57
- [游客] [url=http://www.gddzbq.com]深圳搬家公司[/url] [url=http 03/02 15:07
- [gecko] 自己给自己留句话! 做人,最怕懒惰,在如何事情上都一样!我不该过于贪图方便.这样的选择,不止我对自 08/25 13:36
- [游客] 您好好我是个超级菜鸟。看了博主的几篇肺腑之言我,深受触动。于是我,有个想法。报软考。最初级。。 请 06/01 14:24
- [Wednesday] 嘿嘿 03/10 15:14
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:29
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读入 01/09 21:15
- [gocker] 我重新审视了自己的ID和博主的ID``偶发现,我们长得太像了。。。假使,如果``我的ID后门没有加上 12/21 23:03
- [happy] 不知gecko的意思是想说什么?摸不着头脑??? 12/20 13:11
- [Wednesday] 可以直接发消息给我 注意右上角的消息中心 哈哈 11/08 18:00