lba 解决的程序

0 views
Skip to first unread message

my12...@gmail.com

unread,
Nov 1, 2005, 11:25:11 PM11/1/05
to java home
# include<stdio.h>
# include<bios.h>
LBA=(C-Cs)*255*63+(H-Hs)*63+(S-Ss)
void one()
{unsigned int m[256];int i=0; unsigned int n ;unsigned char *s;
unsigned long lba=2056383;
unsigned char a1,a2,a3,a4;
a1=(unsigned char)((lba<<24)>>24);
a2=(unsigned char)((lba<<16)>>24);
a3=(unsigned char)((lba<<8)>>24);
a4=(unsigned char) (lba>>24);
for(i=0;i<256;i++)
{m[i]=0; }
asm mov dx,0x1f0
asm add dx,0x7
wfhil1:
asm in al,dx
asm test al,128
asm jnz wfhil1
asm cli
asm xor ax,ax
asm mov dx,0x1f0
asm inc dx
asm out dx,al
asm inc dx
asm mov al,1
asm out dx,al
asm inc dx
asm mov al,a1
asm out dx,al
asm inc dx
asm mov al,a2
asm out dx,al
asm inc dx
asm mov al,a3
asm out dx,al
asm inc dx
asm mov al,a4
asm and al,15
asm add al,0
asm add al,224
asm out dx,al
asm inc dx
asm mov al,0x20
asm out dx,al
asm sti
hdwait_read:
asm in al,dx
asm and al,128
asm jnz hdwait_read
asm cli


for(i=0;i<256;i++)
{
asm mov dx,0x1f0
asm in ax,dx
asm mov n,ax
m[i]=n;}
asm sti
s=m;
for(i=0;i<512;i++)
printf("%x",*(s+i));}
main()
{int i=0;unsigned char m[512];
one();
getchar();
printf("\n");

}

Reply all
Reply to author
Forward
0 new messages