作成しようとしているプログラムについてサポートが必要です。プログラムは、標準入力から2つの数値を読み取り、それを保存し、それを使用して基本的な数学演算を実行してから返すことになっています。
ほとんどすべてが機能していると思います。ただし、結果は正しく印刷されません。たくさんのランダムな文字を印刷します。問題は、コード内で発生するASCIIからintまたはintからasciiへの変換に関係していると思いますが、確信が持てません。
入力から読み取るコードの部分は次のとおりです。
mov byte [firstNum], 30
mov byte [firstNum + 1], 0
mov ah, 0Ah
mov edx, firstNum
int 021H
movzx esi, byte [firstNum+1]
mov edx, firstNum+2
add esi, edx
mov byte [esi], "$"
mov byte [secondNum], 30
mov byte [secondNum + 1], 0
mov ah, 0Ah
mov edx, secondNum
int 021H
movzx esi, byte [secondNum+1]
mov edx, secondNum+2
add esi, edx
mov byte [esi], "$"
どこ:
firstNum resb 32 ; first number
secondNum resb 32 ; second number
result resb 32 ; result
次に、文字列入力を整数に変換し、2つの値を加算し、整数から文字列に変換して結果を出力する部分を示します。
push dword secondNum+2
call _atoi
add esp, 4
mov ebx, eax
push dword firstNum+2
call _atoi
add esp, 4
add eax, ebx
push dword 10 ; base of 10, decimal
push dword result
push dword eax
call _itoa
add esp, 12
printOut result
誰かが私のコードの何が問題なのか教えてくれたら本当にありがたいです。ありがとう!