期待される出力が得られません。10 倍継続する必要があるループがあり、次に 10 倍継続する必要がある 2 番目のループがあります。ループは個別に印刷する必要があります
section .data
msg1: db "first",10,0
msg2: db "second",10,0
len1: equ $-msg1
len2: equ $-msg2
section .bss
num resb 1 ;reserve 1 byte
section .text
global main
main:
mov [num], BYTE 10d ;num = 10
loop:
mov edx, len1
mov ecx, msg1
mov ebx, 1
mov eax, 4
int 80h
dec BYTE [num] ; num--
cmp [num], BYTE 0
jnz loop ; jump if not equal to zero
mov [num], BYTE 20d ; num = 20
loop2:
mov edx, len2
mov ecx, msg2
mov ebx, 1
mov eax, 4
int 80h
sub [num], BYTE 2 ; num = num - 2
cmp [num], BYTE 0
ja loop2 ; jump if above 0
mov eax, 1
mov ebx, 0
int 80h
私は得ています
first
second
first
second
first
second
first
second
first
second
first
second
first
second
first
second
first
second
first
second
second
second
second
second
second
second
second
second
second
second
しかし、私は期待していますfirst first first first first first first first first first second second second second second second second second second second
アセンブリ (NASM) は初めてですが、何が間違っていますか?