水之境界 发表于 2012-7-21 09:43:42

汇编实验十七(编译通过没有测试)

本帖最后由 水之境界 于 2012-7-21 09:48 编辑

没有安装部分拿出来和大家分享一下,不足的地方大家探讨一下。

assume cs:code

code segment
start:      mov ax, 0b800h
                mov es, ax
                mov bx, 160*6+2*20      ;内存地址
                mov dx, 1800      ;逻辑扇区号
                mov ah, 0      ;功能号
                call rw_soft
               
                mov ax, 4c00h
                int 21h

rw_soft:      jmp short operate
                        table dw r_soft, w_soft
                        
      operate:push ax
                        push cx
                        push dx
                        push si
                        
                        cmp ah, 1
                        ja rets
                        mov dh, 0
                        mov dl, ah
                        add dx, dx      
                        mov si, dx                        ;功能号
                        
                        mov ax, dx
                        mov dh, 18      ;对18取余
                        div dh                ;对18取余
                        inc ah
                        mov cl, ah      ;取得扇区号
                        
                        mov ah, 0
                        mov dh, 80      ;对80取余
                        div dh                ;对80取余
                        mov ch, ah      ;取得磁道号
                        mov dh, al      ;取得磁头号
                        mov dl, 0      ;设置驱动器号为软驱
                        
                        mov al, 1
                        jmp word ptr table
                        
      r_soft:      mov ah, 2
                        int 13h
                        jmp short rets
                        
      w_soft:      mov ah, 3
                        int 13h
                        jmp short rets
                        
      rets:      pop si
                        pop dx
                        pop cx
                        pop ax
                        ret
      
code ends

end start

页: [1]
查看完整版本: 汇编实验十七(编译通过没有测试)