Assembly 计算偶数

Assembly 计算偶数,assembly,x86,nasm,Assembly,X86,Nasm,所以我输入7,我应该只得到0246,我想通过cmp[num],num,但这不起作用。我曾想过使用mov-bl[num]cmp-al,bl,但这也不起作用 section .data section .bss num resb 1 display resb 2 section .text global _start _start: mov eax, 3 mov ebx, 0 mov ecx, num mov e

所以我输入7,我应该只得到0246,我想通过cmp[num],num,但这不起作用。我曾想过使用mov-bl[num]cmp-al,bl,但这也不起作用

section .data

    
section .bss
    num resb 1
    display resb 2

section .text
    global _start

_start:
    
    mov eax, 3 
    mov ebx, 0  
    mov ecx, num
    mov edx, 1

   
print:    
   
   
    mov al, [num]
    add al, '0'
    mov [display], al
    mov eax,4            
    mov ebx,1           
    mov ecx,display      
    mov edx,2 
    int 80h             
    
 
    inc byte [num]
    inc byte [num]
    cmp [num], byte 9
    jng print
       
end:
    mov eax,1           
    mov ebx,0            
    int 80h;

您在
print
之前缺少
int80h
。您没有阅读任何内容。代码似乎还包含其他问题。例如,假设
[num]
将<9,而实际上它可能在
'0'..'9'
范围内(取决于您输入的内容)。并且只打印数字>=num,这与您的描述不同,您的描述中说要打印所有偶数<(或