如何使汇编程序在 5 个斐波那契输出后调用新行

How to make assembly program call new line after 5 outputs of fibonacci

所以我的任务是让用户输入一些要打印的斐波那契项,然后程序会按顺序打印出来。但是,它还要求在打印五个术语后换行。另一个要求是必须在计算斐波那契数的循环中使用 masm "loop" 指令。如果没有无限循环,我将如何实现它?这就是我现在拥有的。它可以很好地计算斐波那契,但当我尝试添加新行时却不行:

.data
fib_count    DWORD    ?
num1         DWORD    0
num2         DWORD    1
sum          DWORD    0
counter      DWORD    0
spaces       BYTE     "     ",0
.code

main PROC

;Display fibonacci
mov     ecx, fib_count ;fib_count is the number of terms the user entered
;printing first 1
mov     eax, 1
call    WriteDec
mov     edx, OFFSET spaces
call    WriteString
dec     ecx

print_loop:
mov     eax, num1
add     eax, num2
mov     sum, eax
mov     eax, num2
mov     num1,eax
mov     eax, sum
mov     num2,eax
mov     eax, sum
call    WriteDec
inc     counter
mov     eax, counter
cmp     eax, 5
je      new_line
mov     edx, OFFSET spaces
call    WriteString
loop    print_loop

new_line:
call    crlf
loop    print_loop

您需要在 new_line 之前使用跳转指令来绕过 new_line 代码:

;       ...
        call    WriteString
        loop    print_loop
        jmp     short done

new_line:
        call    crlf
        loop    print_loop
done:
;       ...