0
我必須創建一個隨機範圍爲100的計數從27到58的數字,然後將總數中100個位置的所有數字相加。但是,當我這樣做時,我得到一個隨機數字和九十九個32的結果。我到處搜索並嘗試了可能的解決方案,但是我要麼得到相同的結果,要麼隨機垃圾。有人可以提供一些幫助嗎?我在添加數組中的數字時遇到問題 - x86 MASM程序集
INCLUDE irvine32.inc
.data
a DWORD 27
b DWORD 58
delta DWORD ?
source DWORD 100 DUP(?)
prompt BYTE "The sum of the 100 counts in array is ",0
.code
main PROC
Call Randomize
mov edi, 0
mov edi, OFFSET delta
mov esi, OFFSET source
mov eax, b
sub eax, a
inc eax
mov delta, eax
mov ecx, LENGTHOF source
mov eax, 0
L1:
mov eax, delta
call randomrange
add eax, a
mov source, eax
call writedec
mov al, " "
call writechar
loop L1
call crlf
call crlf
mov ecx, SIZEOF source
mov edx, OFFSET prompt
call writestring
l2:
add eax,[esi]
add esi, TYPE delta
call writedec
mov al, " "
call writechar
loop l2
exit
main ENDP
END main
對於L2,我打印出一串32。當我改變代碼時,它仍然是相同的結果。我不知何故只是打印出註冊的大小?因爲我想要數組的總增加結果,而不是32。 – shemeria 2012-04-16 20:24:55