添加DWORD数组的元素

时间:2014-12-04 07:27:17

标签: assembly masm irvine32

我正在进行一项赋值,即添加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

1 个答案:

答案 0 :(得分:2)

查看数据量的大小DWORD以及增加索引寄存器的数量。

  

添加esi,4

在这种情况下,使用sizeof会有所帮助。