我有一个基于用户输入的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
答案 0 :(得分:3)
对于printf
,您需要传递值而不是变量的地址。而不是lea eax, sum; push eax
做push dword [sum]
。
要除以4,只需向右移2位。