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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏
友情链接

[2011-06-14 17:48] 17.4

图片载入中
assume cs:code

data segment
  db '1',2,'2',2,'3',2,'4',2,'5',2,'6',2,'7',2,'8',2,'9',2
data ends                    

;要写入到软盘的数据

code segment
start: mov bx,data   ;es:bx指向呗写入软盘的数据段
       mov es,bx
       mov bx,0

       mov al,1
       mov cl,0
       mov dx,0
       mov ah,1
       call rwp

       mov bx,0b800h
       mov es,bx
       mov bx,13*160+30*2


       mov al,1
       mov cl,0
       mov dx,0
       mov ah,0
       call rwp

      mov ax,4c00h
      int 21h

 

;-------------------------------------------子列程rwp---------------------------------------------- 
;功能读或写,ah传递参数1写0读,dx传递逻辑扇区号,al传递读写的扇区数,cl传递驱动器号,es:bx指向读或写的内存区


  rwp: cmp ah,1        ;判断ah中策参数是否大于1
       ja rets         ;大于则返回
       jmp short rwps  ;否则转移到表号rwps

       table db 16 dup (0)

 rwps: push ax
       push cx
       push dx

       mov table[0],ah     ;读写功能号送入内存
       mov table[1],cl     ;驱动器号入内存
       mov table[2],al     ;读写扇区数入内存

       mov cx,1440         ;求出面号
       mov ax,dx
       mov dx,0
       div cx
       mov table[3],al
       
       mov cx,18           ;求出磁道号
       mov ax,dx   
       mov dx,0
       div cx
       mov table[4],al

       add dx,1            ;求出扇区号
      
       mov cl,dl           ;设置扇区号
       mov dh,table[3]     ;设置面号
       mov ch,table[4]     ;设置磁道号
       mov al,table[2]     ;读取的扇区数
       mov dl,table[1]     ;设置驱动器号
      
       cmp table[0],0      ;判断读或写
       jne write
 
       mov ah,2            ;读
       int 13h

       jmp short rets
  
write: mov ah,3            ;写
       int 13h

 rets: pop dx
       pop cx
       pop ax
       ret

;--------------------------子列程rwp结束----------------------------

code ends
end start

;-----------------------------程序结束---------------------------------
评论次数(0)  |  浏览次数(551)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码