读取软盘时候
如果逻辑扇区为19的话
那么是不是在盘的0磁头1磁道(一个磁道18个扇区)2扇区
所以用int 13h的参数是
ah=02读
al=01读一个扇区
ch=01磁道号
cl=02扇区号
dh=00磁头号
dl=00驱动器
但是这样读取不了逻辑扇区19扇区是为何什么?
逻辑扇区编号是 00 开始的,int13h 里的物理扇区是 01 开始的。这个差异引起的?不过不应该是 19 对 15 这样大的差错。
软盘驱动读写还没写好么?可以DOS调试的啊,调试是最好的排错方式,但若果你不会,可以试着下载一个能正确运行的读软盘的程序段,然后把里面的入口参数改成和你的一样,如果成功了,那么再改出口参数,如果再可以了,再改程序主体,再将它从一行一行的改成和你的程序一模一样,哪一行错误了,就排错,这个虽然是笨方法,但是要是你不会调试,这个是个捷径。
1 说绝对扇区号的时候是从0开始的,也就是说你这里说的19扇区实际上是第20个扇区
2 CHS格式中的扇区号是从1开始的
3 如果把CHS看做一个数字的话,那么C是最高位,S是最低位。所以应该是0-0-1, 0-0-2 ... 0-0-18, 0-1-1 ...
也就是说,你算错了……
扇区19应该是0柱面,1磁头,2扇区,也就是0-1-2