Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 汇编代码故障_Ubuntu_Assembly - Fatal编程技术网

Ubuntu 汇编代码故障

Ubuntu 汇编代码故障,ubuntu,assembly,Ubuntu,Assembly,我正在学习如何组装,我遇到了一个奇怪的问题。我收到一条消息说 collect2:错误:ld返回了1个退出状态 在我收到这条信息之前,虽然我收到了一系列这样的错误 \u start': Name.asm:(.text+0x0):启动的多个定义 /usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位0具有无效的符号索引11 /usr/bin/ld:/usr/lib/debug/usr/lib/x86_6

我正在学习如何组装,我遇到了一个奇怪的问题。我收到一条消息说

collect2:错误:ld返回了1个退出状态

在我收到这条信息之前,虽然我收到了一系列这样的错误

\u start':
Name.asm:(.text+0x0):启动的多个定义
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位0具有无效的符号索引11

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位1具有无效的符号索引12

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位2具有无效的符号索引2

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位3具有无效的符号索引2

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位4具有无效的符号索引11

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位5具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位6具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位7具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位8具有无效的符号索引12

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位9具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位10具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位11具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位12具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位13具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位14具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位15具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位16具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位17具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位18具有无效的符号索引13

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位19具有无效的符号索引21

/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_行):重新定位0具有无效的符号索引2

/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/crt1.o:/build/buildd/eglibc-2.19/csu/。/sysdeps/x86_64/start.S:118:首先在这里定义 /输入文件
Name.o'的usr/bin/ld:i386体系结构与i386:x86-64输出不兼容
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/crt1.o:在函数中
\u start': (.text+0x20):对“main”的未定义引用 collect2:错误:ld返回了1个退出状态

“u start”的多个定义

我完全不知所措。我将在下面发布我的代码,我希望这只是一个小错误

section .data                           ;Data segment
    userMsg db 'Please enter your name : ' ;Ask the user to enter a number
    lenUserMsg equ $-userMsg             ;The length of the message
    dispMsg db 'Hi my name is'
    lenDispMsg equ $-dispMsg            

 section .bss           ;Uninitialized data
    num resb 5

section .text          ;Code Segment
global _start

_start:                ;User prompt
    mov eax, 4
    mov ebx, 1
    mov ecx, userMsg
    mov edx, lenUserMsg
    int 80h


    ;Output the message 'Your name is '
    mov eax, 4
    mov ebx, 1
    mov ecx, dispMsg
    mov edx, lenDispMsg
    int 80h  

    ;Output the name entered
    mov eax, 4
    mov ebx, 1
    mov ecx, num
    mov edx, 5
    int 80h  

    ; Exit code
    mov eax, 1
    mov ebx, 0
    int 80h

我目前不在linux上,但可以汇编文件,使用nasm没有问题

nasm-felf32 hello.asm-ohello.obj


试试:gcc-m32 hello.obj

我目前不在linux上,但可以汇编文件,使用nasm没有问题

nasm-felf32 hello.asm-ohello.obj


试试:gcc-m32 hello.obj

您知道除了x86之外还有其他体系结构,对吗?此外,Ubuntu与此无关。请相应地标记您的问题。您忘记显示如何组装和链接。无论如何,问题是您链接到libc,并尝试从32位对象创建一个64位程序。使用
ld-melf_i386
gcc-m32-nostdlib
。您知道除了x86之外还有其他体系结构,对吗?此外,Ubuntu与此无关。请相应地标记您的问题。您忘记显示如何组装和链接。无论如何,问题是您链接到libc,并尝试从32位对象创建一个64位程序。使用
ld-melf_i386
gcc-m32-nostdlib
。我现在设法让它工作了,结果我把数字4搞错了,而不是3。然而,我似乎遇到了一个新问题。由于一条奇怪的消息,我无法让代码正常工作。我正在使用代码gcc-g-Wall-fno stack protector-z execstack Shellcode.c Shellcode,然后我收到一条消息,说明它无法执行i_386代码,以及关于出口1的一些信息。现在有人告诉我,这是因为我需要更空间化,但我不知道如何更空间化。我现在设法让它工作了,结果我错了4而不是3。然而,我似乎遇到了一个新问题。由于一条奇怪的消息,我无法让代码正常工作。我正在使用代码gcc-g-Wall-fno stack protector-z execstack Shellcode.c Shellcode,然后我收到一条消息,说明它无法执行i_386代码,以及关于出口1的一些信息。现在有人告诉我,这是因为我需要更具空间感,但我不知道如何更具空间感。