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
你的堆棧不平衡。應該在第一次printf後添加esp,8。 – Gunner
@Gunner爲什麼?唯一的參數是'summsg'(eax)。 – qwertz
那麼推eax兩次肯定是錯誤的,但由於它的存在,堆棧是不平衡的。 – Gunner