アセンブラを勉強しよう
■ このスレッドは過去ログ倉庫に格納されています
0128125
2007/09/30(日) 15:48:56x86です。nasmとBCCでやろうとしています。
Cのソースで
char data[512];
func(data);
という形でnasmで作ったfuncをコールしようとしています。
funcでは
mov eax,[ESP+4]
でdataへのアドレスは取得できます。
このデータをINT 13hを使って、ディスクに書き込みたいのですが、
ES:BXにバッファのアドレスを指定する方法がわかりません。
mov eax,[ESP+4]
mov [addr],eax
mov es,[addr+2] ;ここでエラー
mov bx,[addr]
addr: db 0x00,0x00,0x00,0x00
とすると、デバッガで
mov es,[addr+2]
でセグメントを更新している!というメッセージが出ていて、ここで停止してしまいます。
■ このスレッドは過去ログ倉庫に格納されています