我在win2000下把一个字符串用int 13 中断写如软盘,可是出错不只为什么
程序如下:
function WriteInFloppyDisk(sourstr:string):boolean;
begin
//写A盘引导区
asm
mov ax,0301//03是指写操作01是指写入扇区数
mov bx,WORD PTR[sourstr]//此处是数据缓冲区的首址
mov ch,70
mov cl,03h
// mov cx,0000//起始扇区数为0扇区
mov dx,0 //盘号A-0
int 13//////////出错处
end;
//DISPOSE(TEMPSTR);
end;
function ReadOutFloppyDisk():string;
var tempstr:string;
begin
tempstr:='00';
asm
//读A盘引导区
mov ax,0201h //02是指读操作 01是指读出扇区数
mov bx,word ptr[tempstr] //此处是数据缓冲区的首址
mov cx,0102h //起始扇区数
mov dx,0 //盘号A-0
int 13//////////出错处
end;
result:=tempstr;
end;
procedure TForm1.Button1Click(Sender: TObject);
var tt:string;
begin
tt:='aa';
//WriteInFloppyDisk(tt);
aa:=ReadOutFloppyDisk();
edit1.Text:=aa;
end;
出错信息是:Project Project2.exe raised exception class EAccessViolation with message'Access violation
at address 00401907 in module'Project2.exe',Read of address ffffffff'.Process stopped.Use Step
or Run to continue.
我是在WIN2000,D5的环境下
你能帮我看一下吗?
最好能举个列程,不胜感激