2014-12-04 4 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 и сколько вы увеличиваете свой индексный регистр.

добавить еси, 4

Использование sizeof может помочь в таких случаях.

+0

Спасибо, что полностью забыл об этом. – Josamoda

Смежные вопросы