磁盘信息上 INT 13h 的程序集帮助



我正在使用DOSBox和nasm,试图使用int 13来获取硬盘信息,如序列号等。Int 13 需要:

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

我完全不明白最后一行的要求。 有什么帮助吗?

举个例子将不胜感激。

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

您所知,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

最新更新