1

ユーザー入力に基づく4つの整数の配列があります。配列を4で割って平均を表示したい。

私は4つの整数を格納する部分を実行しましたが、合計に対して狂った答えが得られたので(除算を行う前に合計を取得しようとしました)、配列の除算にも触れませんでした。配列が正しいことはわかっていますが、除算ビットが間違っています。

配列を分割するために使用できるコードのテンプレートはありますか?

lea ebx,myarray // address of the array (its 0th element) is put in ebx
mov ecx,4 // size of the array is saved in the counter
mov eax,0 // eax will be used to hold the sum, initialise to 
push eax

lea eax, summsg
push eax
call printf
add esp,4


lea eax,sum // save location of var to read in the input
push eax
lea eax,formatstring // loads formatstring
push eax // push it onto the stack
call printf // call scanf and prints out the number which we entered
add esp,8
4

1 に答える 1

3

printf変数のアドレスではなく値を渡す必要があるためです。lea eax, sum; push eaxする代わりにpush dword [sum]

4 で割るには、右に 2 ビットシフトするだけです。

于 2012-11-28T14:44:48.277 に答える