我正在使用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