. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->使用BIOS进行键盘输入和磁盘读写
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验17完成  [待解决] 回复[ 0次 ]   点击[ 502次 ]  
liuquanhao7232
[帖 主]   [ 发表时间:2010-08-22 14:17 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47
assume cs:code,ds:data,ss:stack
data segment
    db 512 dup (6)                 ;往软盘里写如512个6
data ends
stack segment
    dw 32 dup (0)
stack ends
code segment
start:          mov ax,stack
                mov ds,ax
                mov sp,64
                mov ax,cs
                mov ds,ax
                mov si,offset int13lg
                mov ax,0
                mov es,ax
                mov di,204h
                mov cx,offset int13lgend-offset int13lg
                cld
                rep movsb
                mov ax,0
                mov es,ax
                cli
                mov ax,es:[7ch*4]
                mov es:[200h],ax
                mov ax, es:[7ch*4+2]
                mov es:[202h],ax
                mov word ptr es:[7ch*4],204h
                mov word ptr es:[7ch*4+2],0
                sti
                
                mov dx,0
                mov ax,data
                mov es,ax
                mov bx,0
                mov ah,3
                int 7ch           ;调用7ch中断例程


                mov ax,0
                mov es,ax
                mov ax,es:[200h]
                mov es:[7ch*4],ax
                mov ax,es:[202h]
                mov es:[7ch*4+2],ax          ;还原7CH中断例程的起始地址
           over:mov ax,4c00h
                int 21h
                
      int13lg:  push si
                push di
                push cx
                push bx
                push es
                mov al,ah
                sub ah,ah
                mov di,ax
                mov ax,dx
                mov si,1440
                div si
                mov bx,ax
                mov si,18
                mov ax,ax
                div si
                mov cx,ax
                mov ch,cl
                inc dx
                mov cl,dl
                mov dh,bl
                mov dl,1
                mov ax,di
                mov ah,al
                pop es
                pop bx
                int 13h
                pop cx
                pop di
                pop si
                iret
     int13lgend:nop
code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved