吧里没人了,贴个PASCAL调用汇编的代码。
pascal吧
全部回复
仅看楼主
level 7
yynet123456 楼主
var
buff: array [1..512] of byte;
procedure readdisk(drv,cy,head,sec:word;VAR result:boolean);
begin
reg.DX:=head*256+drv; { DX赋值 }
reg.CX:=((cy div 256)*64+sec)+(cy mod 256)*256; { CX赋值 }
reg.BX:=ofs(buff[1]); { BX赋值为buff的偏移地址 }
reg.AX:=$0201; { AX赋值 }
reg.es:=seg(buff[1]); { ES赋值为buff的段地址 }
intr($13,reg); { 调用DOS中断13H }
if reg.ah=0 {根本返回值判断AH}
then result:=true else result:=false;
end;
有人能看懂吗?
2023年11月25日 02点11分 1
level 12
其实过程名已经不言自明了,drv、cy、sec分别是drive、cylinder、sector的缩写,关键代码等价于
mov ah,$2
int $13
2023年11月25日 23点11分 2
[哈哈]一般学PASCAL的,不会写这个
2023年11月27日 09点11分
@yynet123456 即使不从效率的角度考虑,了解底层操作还是很有必要的,况且现在的API层层封装,想搞清楚具体实现并不容易
2023年11月29日 07点11分
level 1
这其实是调用DOS中断 现在已经没啥用李
2024年05月06日 16点05分 3
能不能先发个入门视频教程,和爱黑马一样的详细那种,很适合小白的教程啊
2024年06月10日 09点06分
1