"Project.exe (процесс 15848) завершен с кодом 0" на языке ассемблера? - PullRequest
1 голос
/ 28 октября 2019

Я пытаюсь запустить процедуру, которая отображает N членов последовательности Фибоначчи в шестнадцатеричном (с N = 30), и когда я запускаю свой код, я не получаю отображение шестнадцатеричных чисел, но я получаю сообщение «Проект.exe (процесс 15848) завершен с кодом 0 ". Может кто-нибудь помочь мне и объяснить, почему я получаю это сообщение вместо 30 шестнадцатеричных чисел? Спасибо! Я использую Visual Studio 2019 в Windows 10.

Вот мой код:

; Create a procedure that produces N terms of a Fibonacci sequence in hexadecimal

INCLUDE Irvine32.inc
.data
fibArray DWORD 0h, 01h ; F0 = 0 and F1 = 1

.code
main proc
    mov ecx, 30 ; Number of values wanted

    mov edx, 0h 
    mov ebx, 1h 

    mov esi, 8; fibarray[0] = 0, fibarray[4] = 1, so fibarray[8] = fibarray[0]+fibarray[1]
    sub ecx, 1; Because indexing starts at 0 and ecx is that amount of values we want
    call Fibonacci 

    ;DumpMem register parameters fulfilled
    mov esi, OFFSET fibArray
    mov ecx, LENGTHOF fibArray
    mov ebx, TYPE fibArray
    call DumpMem



exit
main endp
; Fibonacci procedure
Fibonacci proc
    L1:
        mov eax, edx
        add eax, ebx
        mov fibArray[esi], eax
        mov edx, ebx
        mov ebx, eax
        add esi, 4
        loop L1
    ret
    Fibonacci endp

end main

1 Ответ

2 голосов
/ 28 октября 2019

Я исправил проблему, вызвав «fibArray DWORD dup 30 (?)», Чтобы получить в массиве 30 неинициализированных пятен. Спасибо @Jester!

...