📄 erasetes.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -