我是Linux的新手,用于汇编程序设计(GAS)和英语。所以,如果我写错了,抱歉。我希望谷歌翻译能够帮到我,写得不错。当我编写系统调用时,Linux会做什么?
我想知道如何将一组数字(存储在.data
中)写入文本文件中,而无需调用任何库中的函数(如printf()
),并且只通过汇编程序进行操作。我不想要现成的解决方案。我想知道我的写入调用后Linux内核的功能。怎么运行的?它是如何设计的?
我试图将数字列表打印到STDOUT中,但我在终端中收到奇数号。我认为这是因为我不明白如何正确使用写入系统调用。
这是我得到了现在
.section .data
list: .long 12, 31, 42
.section .text
.globl _start
_start:
movl $4, %eax
movl $1, %ebx
movl $list, %ecx
movl $12, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80
此代码工作正常.ascii "Hello world\0"
,而不是号码列表。
这是一个令人难以置信的广泛的主题,需要相当多的背景知识来了解我怀疑你没有的东西。你可能想把它分解成一些大小的块,向我们展示你迄今为止付出的努力以及你被困在哪里。 – tangrs 2014-10-17 10:52:01
阅读http://www.tldp.org/HOWTO/Assembly-HOWTO/它是相关的 – 2014-10-20 13:19:15
我读了Jonathan Bartlett的“从头开始编程”。哪个更好? – user2422443 2014-10-20 13:31:51