0
num1
,num2
、および変数をDWORDと定義しました。私はnum1
とnum2
の2つの数字をユーザーから取得します。私はでnum1
を分けようとしています。私が使用している番号はNUM1 = 37と商、余りないで、これは7をプリントアウト何らかの理由についてNUM2 = 5DIVの残りがEDXにありません
sub edx,edx ; Zero edx
mov eax,num1
mov ebx,num2
div ebx
mov remainder,edx
mov edx, OFFSET remainder
call WriteInt
あります。私はここで間違って何をしていますか?
これがIrvine32の場合、 'WriteInt'は印刷したい値を_EAX_に入れる必要があります。あなたのDIV命令が実行されたとき、_EAX_は商に設定されました。 'mov remainx、edx'を削除します。 ' mov edx、OFFSET remainders'を実行し、 'mov eax、edx'命令に入れます。残りの部分は_EAX_に移動し、WriteIntはそれを出力します。 –
これは、デバッガを使用してレジスタ値を調べる理由です。あなたは 'edx'が正しかったことを知っていたでしょうし、それは問題を抱えていた印刷コードでした。 –