0

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

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

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

一个例子将不胜感激。

4

2 回答 2

2

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

于 2013-01-26T02:49:57.093 回答
0

如您所知es,并且bx是 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
于 2013-01-26T03:02:17.633 回答