我正在尝试从数组中的所有计算中获取结果,然后一次读取整个数组。我已经准备好了计算部分:
include Irvine32.inc
.data
oCount DWORD 1
iCount DWORD ?
lower DWORD 0
results DWORD 25 DUP(?)
.code
main PROC
mov ebx,1
mov ecx,25
L1:
mov oCount, ecx ;Store the Outer Count
mov ecx, ebx ;Put the inner count in the limit register
mov iCount, ebx ;Put the inner count in the iCount variable
mov ebx, 0 ;reset ebx register to 0
L2:
add ebx,iCount ;adds the current value(in iCount)to the total(ebx)
Loop L2
mov eax, ebx ;moves the upper to eax
sub eax, lower ;subtracts the lower from eax
mov ebx, iCount
所以在这里,我在每次迭代中都有正确的数字。我现在需要将eax的值添加到先前声明的结果数组中
mov results[ebx], eax
我在这里尝试使用的逻辑(不正确)是,我将使用ebx作为迭代器将eax添加到结果中。我也尝试过乘以ebx,这样我的迭代就等于DWORD的字节大小,无济于事。我的第一个问题就是我在这里想念的是什么。我很确定我知道我要做什么 ,但是我只是无法用MASM语法得到它
call WriteDec
call crlf
mov lower, eax
mov ebx, iCount ;Move iCount to ebx. This restores the innercount
inc ebx ;Increase the inner count by one
mov ecx, oCount ;Put the outer count back in the loop counter
Loop L1
mov eax, [results]
call WriteDec
在这一点上,我只是测试从数组中打印出一个值,但是看到我的数组实现肯定是错误的,它不会打印出我想要的内容。程序然后结束:
call WaitMsg
invoke ExitProcess,0
main ENDP
END main