汇编网首页登录博客注册
lwbfq的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  不去想接下来的瞬间可能发生的事,只体味捕捉那瞬间的心情,这才是幸福的人。
  • 『姓名』:不告诉你
  • 『性别』:保密『发送消息
  • 个人说明:说汇编难学,我不信。别人说的不算,我得试验一下。
  • 详细信息『加为好友』
学习动态
友情链接

[2008-11-27 00:42] 试验17

安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
参数说明:
(1)用AH寄存器传递功能号:0表示读,1表示写;
(2)用DX寄存器传递要读写的扇区的逻辑扇区号;
(3)用EX:BX指向存储读出数据或写入数据的内存区。
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov si,offset chstart
mov ax,0
mov es,ax
mov di,200h
mov cx,offset chend - offset chstart
cld
rep movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h

chstart:
push cx
cmp ah,2
jnb over
add ah,2 ;功能号
push ax
mov ax,dx
mov dx,0
mov cx,1440
div cx
push dx
mov dx,ax
mov dh,dl;得到面号
mov dl,0 ;置驱动器号为0,表示读软驱
pop cx
mov ax,cx
push dx
mov dl,18
div dl
mov ch,al;磁道号
mov cl,ah
inc cl;扇区号
pop dx
pop ax
int 13h
over:
pop cx
ret
chend:nop
code ends
end start
总觉得这个程序有点烦,可能是心烦的原因,因此好长时间不敢去碰它了。今天终于踏下新来,把它搞定了,心情舒畅了很多,我用虚拟机进行了测试,不知什么原因,在读取或写入1面扇区(逻辑扇区>=1440)时,虚拟机就会死机,然后再重启虚拟机就起不来了,暂时还没找到原因.
评论次数(1)  |  浏览次数(1203)  |  类型(汇编作业) |  收藏此文  | 

[  mouse   发表于  2008-11-28 13:34  ]

实验证真知,不多说了:-)

马上做课设二了,加油啊~

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码