FPUを処理するためにこのコードを大量に持っていますが、うまく機能します
このコードでは、2 つの異なるテキスト ボックスから数値を取得し、それらを分割して、結果を別のテキスト ボックスに出力します。
これはローカルのデータです
LOCAL variable1 :QWORD
LOCAL variable2 :QWORD
LOCAL variable3 :QWORD
LOCAL string1[20]:BYTE
LOCAL string2[20]:BYTE
LOCAL string3[20]:BYTE
これがコードです
invoke GetDlgItemText,hWin,textbox1,addr string1,9
invoke StrToFloat,addr string1,addr variable1
invoke GetDlgItemText,hWin,textbox2,addr string2,9
invoke StrToFloat,addr string2,addr variable2
finit
fld variable1
fld variable2
fdiv
fstp variable3
invoke FloatToStr,variable3,addr string3
invoke SetDlgItemText,hWin,textbox3,addr string3
コードをfasmに変換しようとしています
これは私がこれまでに持っているものですが、機能していません textbox3 は単に 0 と言っています
これがデータです (fasm でその方法をまだ学んでいないため、これはローカル データではありません)
v1 dq ?
v2 dq ?
v3 dd ?
v4 rb 20
これがコードです
invoke GetDlgItemTextA,[hWin],textbox1,addr v1,100
invoke GetDlgItemTextA,[hWin],textbox2,addr v2,100
finit
fld qword [v1]
fld qword [v2]
fdivp
fstp qword [v3]
cinvoke wsprintfA,addr v4,"%u",[v3]
invoke SetDlgItemTextA,[hWin],textbox3,addr v4
最初にテキストをフロートに変換していないため、このコードが正しくないことはわかっていますが、方法がわかりません
よりシンプルなバージョンも試しましたが、どちらも機能しませんでした
mov [v1],5.3
mov [v2],7.1
finit
fld [v1]
fld [v2]
fdivp
fstp [v3]
cinvoke wsprintfA,addr v4,"%u",[v3]
invoke SetDlgItemTextA,[hWin],maximumoutputpowertext,addr v4
私の質問は、誰かが2つの異なるテキストボックスから数値を読み取り、それらを分割し、fasmコードを使用して別のテキストボックスに結果を返す方法を教えてください。
ありがとうございました