我正在使用 DOSBox 和 nasm,尝试使用 int 13 来获取硬盘信息,例如序列号等。 Int 13 需要:
AH=25h
DL=(80h,81h) and
ES:BX-> 512 byte buffer for reply packet.
我根本不明白最后一行的要求。有什么帮助吗?
一个例子将不胜感激。
寄存器es
并bx
提供缓冲区的远地址来接收数据,缓冲区长512字节。
如您所知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