正确附加和读取数组x86 MASM

时间:2018-10-01 23:21:43

标签: assembly x86 masm

我正在尝试从数组中的所有计算中获取结果,然后一次读取整个数组。我已经准备好了计算部分:

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

0 个答案:

没有答案