中断 №13 (ah=48) - 不工作
我想获取我的硬盘的参数。使用此处描述的技术。
这是显示软盘正常参数的代码:
<前><代码>mov dl,00h 移动啊,08h 13小时内这是显示无效硬盘参数的代码(可能是,我的硬盘空间很大(LBA)):
<前><代码>mov dl,80h 移动啊,08h 13小时内我写了这段代码:
<前><代码>mov dl,80h 移动啊,48小时 13小时内
该代码给出 cf = 1(错误)。我该如何修复它?
I want fetch the parameters of my hard disk. Using the technique described here.
This is code showing normal parameters of floppy disk:
mov dl,00h mov ah,08h int 13h
This is code, showing not valid parameters of hard disk (may be, my hard disk space is big (LBA)):
mov dl,80h mov ah,08h int 13h
And I've written this code:
mov dl,80h mov ah,48h int 13h
The code is giving cf = 1(error). How do I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
出现错误时,
AH
应包含错误代码。那是什么?Ralf Brown 的(优秀)中断列表详细介绍了它们:
您也不知道指定您的
DS:SI
设置为接收信息。是否已正确设置?从你的评论来看:
检查 INT13 扩展是否适用于您的 BIOS。 AH = 41h,DL = 80h(第一个驱动器),BX = 55AAh,INT13,如果存在扩展,则返回时进位将被清除。
On error,
AH
should contain the error code. What was it?Ralf Brown's (excellent) interrupt list details them:
You also don't specify what your
DS:SI
is set to to recive the information. Has that been set correctly?From your comment:
Check to see if the INT13 extensions are available for your BIOS. AH = 41h, DL = 80h (first drive), BX = 55AAh, INT13, carry will be clear on return if extensions are there.
有些计算机无法正确保存 ds 和 es 寄存器,因此应在从 int-13 function-48 返回时恢复这些寄存器,并根据版本检查缓冲区大小为 1A 1E 或 42。
Some computers do not save your ds and es registers properly so these should be restored upon returning from int-13 function-48 also check the buffer size as 1A 1E or 42 depending on version.