为什么我不能在NASM程序集中打印用户输入数据?

时间:2014-04-26 00:43:49

标签: linux assembly x86 nasm

我正在尝试验证此示例(NASM)中用户输入的长度:

section .bss
    user_input resb 10

section .text
    push ebp
    mov ebp, esp

    mov eax, 3 ;sys_read
    mov ebx, 0 ;stdin
    mov ecx, user_input
    mov edx, 10
    int 80h

    cmp eax, 10
    jg overflow
    jmp done 
overflow:
    .
    .
    .
done:
    mov eax, 1
    int 80h

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

由于您的缓冲区是10个字节,并且您将长度放入edx,因此返回值绝不会大于10并且您跳转到标签done:并退出。

你所展示的代码中没有任何内容可以打印任何内容。