printf.c:没有这样的文件或目录

时间:2016-10-29 15:11:25

标签: linux assembly x86-64 gas

我尝试制作一些简单的汇编代码,用汇编打印出一个数字。我尝试使用printf函数调用它。然后我运行代码我没有输出,当我用gdb调试它时,我得到一条消息说:

__printf (format=0x601040 "Result: %d") at printf.c:28
28  printf.c: No such file or directory.

我用以下代码编译它:

gcc -g -c print.s -o file.o

然后将其与:

联系起来
gcc file.o -o file

当我搜索这个问题时,我发现我应该用

进行测试
gcc file.o -o file -lc /lib64/ld-linux-x86-64.so.2

但结果是一样的。

我的代码

.data
    OUT:    .asciz  "Result: %d"  #The output string

.text
.global main

main:
    jmp     print

print:
    mov     $OUT,   %rdi    # Our preperation string
    mov     $5,     %rsi    # Value to be printed
    xor     %rax,   %rax    # zero out
    call    printf          # call the function
    #TODO: Jump back

exit:
    mov     $60,    %rax    # Call the exit syscall
    mov     $0,     %rdi    # error code 0
    syscall                 # Interupt kernel and make the syscall

0 个答案:

没有答案