DOSBox と nasm を使用しており、シリアル コードなどのハードディスク情報を取得するために int 13 を使用しようとしています。Int 13 には以下が必要です。
AH=25h
DL=(80h,81h) and
ES:BX-> 512 byte buffer for reply packet.
最終行の要件がまったくわかりません。助けはありますか?
例をいただければ幸いです。
レジスタは、データを受信するバッファのファー アドレスを提供します。バッファの長さは 512 バイトですes
。bx
ご存じ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