#99 Article 810 Posted at 1993/12/14 22:45:48 by 夢中ゆわ (MAP2717) [ASM]

Subject: Re:*12 メモリのいつでもあいてる場所。 /809 ..... /798 /797

>       mov eax,8000h+8000h   ;ここからグリーン。*これがさっきのブルーの所に
>       mov edi,eax           ;上書きされてるような気がするんです。

ううむ(^^;) 確かに、ediレジスタには10000hが入っているのですが、

>       stosd

こいつが、ediの下位16bit分しか見ていなかったとしたら……(^^;)
そうですね。見事に、青の所(di=0000h)から塗り潰しますね(^^;)

stosdのアドレスサイズは、デフォルトのアドレスサイズ属性に依ります。
(もしくは一時的な変更=オーバーライドプレフィックス)

デフォルトのアドレスサイズは、保護モード(^^;)かつセグメントディスクリプタ(^^;)
のDビットを"1"にすればよいのですが、言ってる自分でもよくわかりません(^^;)

では、プレフィックスですが、恐らくアセンブルリストを見ると

=  66 AB                   STOSD

になってるかと思います。この部分を

=  67 66 AB xx xx          STOSD

にするような、ソースを記述すればいいわけです(^^;)(なんて邪道な)
TASMのマニュアルを会社に置きっぱなしにしているので、どういうふうに記述すれば
いいのかわかりません。すいません/^^      xx xxは、ModR/M や SIB らしいのですが
これまた言ってる自分もよくわかりませんので…(^^;)
(ひょっとしたら要らないのかもしれない)

と、このようにややこしいので、おとなしくセグメントの方を変更しましょう(^^;)
デバグも楽ですし(^^;)

オフセットで10000Hはセグメントで1000Hだから、esに加算して下さい。

#MAP2717 夢中ゆわ

PS
おぉ、(^^;)マークの大安売り