简单的“ Hello,World”程序无法在Linux程序集中运行

时间:2020-05-06 06:42:53

标签: assembly att

我只是一个菜鸟,试图用32位Linux程序集(AT&T语法)编写一个简单的“ Hello World”程序。这是我的代码:

.section .data
msg:
        .ascii "Text\n"
msgLen:
        .long 5

.section .text
.globl _start
_start:
        movl $4, %eax
        movl $1, %ebx
        movl msg, %ecx
        movl msgLen, %edx
        int  $0x80

        movl $1, %eax
        movl $0, %ebx
        int  $0x80

我汇编程序,链接它,运行它,……什么都没有。我没有任何错误。它只是行不通,我没有任何输出。我尝试更改msgLen的值,但我似乎无济于事。在这一点上,我很生气。任何帮助将不胜感激!

更新:因此,在查看了Peter Cordes的评论后,我在$msg之前加上了msgLen,并且我的程序成功打印了“文本”和换行符,但也出现了其他乱码。这是我得到的输出:

Text
�`�@�` �`'�`print.omsgmsgLen__bss_start_edata_end.symtab.strtab.shstrtab.text.data@�"!�`�       ��      �,�'$

0 个答案:

没有答案