>>218
なお、逆アセンブルでコードバイトを表示させて確かめることは出来る。
正しいコードは出ている。(ただし不安定)
inline void fpu_getcw(unsigned short* cw) {
00DA1540 55 push ebp
00DA1541 8B EC mov ebp,esp
__asm{
fnstcw [cw];
00DA1543 D9 7D 08 fnstcw word ptr [cw]
}
}
00DA1546 5D pop ebp
00DA1547 C3 ret
fnstcwは D9 /7 で 7D なら [EBP+disp8] となり、 7D 08 は [EBP+08] となる。
つまりスタックポインタ+8の領域に書き戻せ、となる。
[ebp+0]は元のebpが入っているから、(pushしているので)
[ebp+4]にcallの戻り値アドレス
[ebp+8]にcw(第一引数)が入っていることになる。
これは正しいコードだ。
しかし再度試したが、確かに不安定だ。何故かは分からん。
inline取ってみても不安定のまま。
> そんなオペランドが使えるアセンブリ命令はx86/x64
> では存在しないので。
正直、/7の意味が分からないのだが、説明は
> /digit − 0 から7 までの数字で、命令のModR/M バイトがr/m(レジスタまたはメモリ)オペランドだけを使用することを示す。
> reg フィールドには、命令のオペコードを拡張する数字が入っている。(Intelのマニュアルより)
となっているのだが、これはどういう意味だ?
ModR/Mバイトが全部使えるとすると [ebp+disp8]出来ることになる。そしてそのコードは出ている。
ただし、動作は怪しいのも事実。
ModR/Mの一部しか使えない、ということか?
探検
Visual Studio 2008 Part 22
■ このスレッドは過去ログ倉庫に格納されています
225デフォルトの名無しさん
2018/09/16(日) 15:51:01.50ID:zL1WUjLu■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★2 [蚤の市★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 [煮卵★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【結婚の壁】結婚どころか今まで恋愛経験は一切ない人も…「年収500万の壁」を突破できない中間層の苦しい現実 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 俺「それが史実だというソースは?」 ネトウヨ「書いてないということがソース」 [314039747]
- 【悲報】世界「トランプよりヤバいリーダーがいた!」トランプ「俺よりやべえ奴がいる!」高市早苗「??何で皆アタシを避けるの?」 [517791167]
- 本当の問題は高市がバカなことじゃなくて高市みたいなバカを支持するバカが大量にいることだよな [314039747]
- 【高市悲報】レーダー照射で日本が喧嘩売ってる中、アメリカ軍「我々はパールハーバーを忘れない」と日本に向けてポストへ [709039863]
- 高市首相「自らの命は自らが守るという原則で、行動とっていただきたい」 [256556981]
- 今時手編みのマフラーとセーターと帽子と手袋のプレゼントってwww
