INT 13h在磁盘信息上的汇编帮助

时间:2013-01-25 22:03:12

标签: assembly x86 bios

我正在使用DOSBox和nasm,尝试使用int 13来获取串行代码等硬盘信息。 Int 13需要:

    AH=25h
    DL=(80h,81h) and 
    ES:BX-> 512 byte buffer for reply packet.

我根本不了解最后一行的要求。任何帮助?

非常感谢一个例子。

2 个答案:

答案 0 :(得分:2)

寄存器esbx提供缓冲区的远地址以接收数据,缓冲区长512字节。

答案 1 :(得分:0)

如您所知esbx是16位寄存器。

es是细分,而bx是偏移量。

如果将它们连接起来[es:bx],则会获得到“缓冲区”的完整32位地址(AKA指针),数据将从磁盘设备复制到该地址。

以下是适用于您的代码段:

xor ax,ax
mov ah,25h
mov dl,80; 81h is for write probably
mov bx,0h
mov es,0800h
int 13