2014-12-04 122 views
1

我正在处理添加DWORD数组的元素并将其打印在屏幕上的任务。出于某种原因,它输出了错误的号码。我错过了什么吗?添加DWORD数组的元素

TITLE Assignment 2 



INCLUDE Irvine32.inc 
.data 
array1 DWORD 10h,20h,30h,40h,11h,12h,16h,14h,18h,22h,96h,44h,89h,17h,94h,27h,16h,82h, 33h 
N = ($ - array1)/4 
.STACK 4096 
ExitProcess PROTO, dwExitCode:DWORD 
DumpRegs PROTO 
.code 
    main PROC 
    mov esi, OFFSET array1 
    mov ecx, N 
    mov eax, array1 
    loop_start: 
    add eax,[esi] 
    add esi,1 
    dec ecx 
    jnz loop_start 
    call DumpRegs 
    INVOKE ExitProcess, 0 

main ENDP 
END main 

回答

2

看看你有多大你的命令datasize是DWORD以及增加多少索引寄存器。

附加ESI,4

使用sizeof可以在这样的情况下帮助。

+0

非常感谢你我完全忘记了这一点。 – Josamoda 2014-12-04 07:36:39