我可以在屏幕上看到 nums 递减,为什么它不会打破循环?使用 nasm 的 x86 程序集

I can see nums decrementing on the screen display, why won't it break the loop? x86 assembly using nasm

    ;store number of accounts to add
    mov eax, SYS_READ
    mov ebx, STDIN
    mov ecx, nums
    mov edx, 2
    int 0x80
        _storeLoop:
        dec byte [nums]

        ;display nums
        mov eax, SYS_WRITE
        mov ebx, STDOUT
        mov ecx, nums
        mov edx, 1
        int 0x80

        mov eax, [nums]
        cmp eax, 1
        jnz _storeLoop

section.bss
nums resb 1

为什么我卡在这个循环里了。我可以看到 nums 最终等于零。我试过使用不同的比较,比如 jg.

正如上面的评论所说,mov eax, [nums] 将从包含 1 字节计数器的内存位置读取 4 字节。如果此循环开始时其他 3 个字节没有恰好全部归零,它将永远不会终止。