0233デフォルトの名無しさん
2018/09/16(日) 16:35:08.59ID:LrdaMWHl>俺がやるべきだったのは fnstcw [[cw]] なのだと思うが、これはSyntaxErrorだ。
ちょっと違う。あなたはやるべきことをちゃんと正しく、
fnstcw [cw]
と書いた。しかし、cw=[ebp+8]なので、これは、
fnstcw [[ebp+8]]
という「意味」になる。でも、x86/x64のマシン語にはこんな[ ]を二重にした
オペランドは存在しないので、VCが無断で勝手に[ ]を一重にして、
fnstcw [ebp+8]
に改変してしまった。
**(ebp+8) = control_word;
としなくてはならないのに、VCが勝手に、
*(ebp+8) = control_word;
としたということ。