erasetes.asm
来自「DOS下基于28f512的小型文件系统 format.asm/list.asm」· 汇编 代码 · 共 76 行
ASM
76 行
port_a equ 0c800h
port_b equ 0c801h
port_d equ 0c803h
port_ce equ 0c810h
code segment
assume cs:code
start: mov dx,port_d
mov al,80h
out dx,al
call format
mov ah,4ch ;return dos
int 21h
format proc
xor di,di
xor bx,bx
mov cx,0ffffh
mov dx,port_b ;addressh
mov al,bh
out dx,al
mov dx,port_a ;addressl
mov al,bl
out dx,al
next_e1:mov dx,port_ce ;erase cmd1
mov al,20h
out dx,al
mov dx,port_ce ;erase cmd2
mov al,20h
out dx,al
call delay_e
next_e2:mov dx,port_b ;addressh
mov al,bh
out dx,al
mov dx,port_a ;addressl
mov al,bl
out dx,al
mov dx,port_ce ;erase check
mov al,0a0h
out dx,al
call delay
mov dx,port_ce ;read
in al,dx
cmp al,0ffh
jz next_e3
inc di
cmp di,1000
jnz next_e1
jmp exit_e
next_e3:inc bx
loop next_e2
exit_e: ret
format endp
delay_e proc
push cx
mov cx,100h
bb: mov di,8000h
aa: dec di
jnz aa
loop bb
pop cx
ret
delay_e endp
delay proc
push cx
mov cx,8000h
loop $
pop cx
ret
delay endp
code ends
end start
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?