. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->使用BIOS进行键盘输入和磁盘读写
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  发个 实验17 给大家看看  [待解决] 回复[ 1次 ]   点击[ 393次 ]  
zhenglxd
[帖 主]   [ 发表时间:2009-07-01 15:02 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
;大家有什么问题的博客给我留言
;实现 软驱b 内容 到软驱a
assume cs:code

data segment
db 2048 dup (0)
data ends

code segment
start: mov ax,0
       mov es,ax
       mov word ptr es:[7ch*4],200h
       mov word ptr es:[7ch*4+2],0
;写新的7ch入口地址
      
       mov ax,cs
       mov ds,ax
       mov si,offset int7ch
       mov di,200H
       mov cx,offset int7chend- offset int7ch
       cld
       rep movsb
;安装新int7ch中断

       mov ax,data 
       mov es,ax
       mov cx,2880
       mov si,0
tests: push cx

       mov ah,0  ; 0=读
       mov dx,si  ;0=逻辑扇区号       
       mov bx,0  ;es:bx 指向存取地址
       mov al,1 ;读写扇区数
       mov cl,1   ;1=disk b 扇区号
       int 7ch
;把diskb从逻辑扇区0~2779数据 写入es:bx
       
       mov ah,1  ; 1=写
       mov dx,si  ;0=逻辑扇区号 
       mov bx,0  ;es:bx 指向存取地址
       mov al,1 ;读写扇区数
       mov cl,0   ;0=disk a
       int 7ch
;把es:bx数据 写入 diska的0~2779扇区   
       pop cx 
       inc si   
       loop tests

       mov ax,4c00h
       int 21h

int7ch:push ax
       push dx
       push cx

       push bx       
       add ah,2
read:  mov bh,ah     ;功能号
       mov bl,al     ;读写扇区数
       push bx       ;pbx0= 功能号,读写扇区数(ax)

       mov bl,cl     ;软驱号
       mov cx,1440
       call divs
       mov bh,al     ;面号
       push bx       ;pbx1=软驱号,面号(dx)

       mov cx,18
       call divs
       mov bh,al     ;磁道号
       inc dl
       mov bl,dl     ;扇区号
       push bx       ;pbx2=磁道号,扇区号(cx)

       pop cx
       pop dx
       pop ax
       pop bx
       int 13h
;输入参数调用 int 13h
       
       pop cx
       pop dx
       pop ax
       iret

  divs:mov ax,dx
       mov dx,0
       div cx
       ret
       
int7chend:nop

code ends
end start
wsrf
[第1楼]   [ 回复时间:2009-07-02 14:10 ]   [引用]   [回复]   [ top ] 
荣誉值:33
信誉值:0
注册日期:2008-10-16 10:01
楼主好热心呀,支持一下。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved