【发布时间】:2014-04-30 17:00:18
【问题描述】:
这里是新手。我在 Linux 中使用 GNU Assembler (GAS)。我只是想在终端上打印除“Hello world”之外的其他内容。但是,如果我打印一个数字,则不会打印任何内容。这是代码。
.section .data
msg: .ascii "Hello world"
msglen = . - msg
numericData: .long 1
numericDataLen = . - numericData
.section .text
.globl _start
_start:
movl $4, %eax
movl $1, %ebx
movl $numericData, %ecx
movl $numericDataLen, %edx
int $0x80
movl $1, %eax
int $0x80
.section .bss
您可以想象,当我用 numericData 加载 ECX 时,我希望它在控制台中打印出“1”。相反,我什么也得不到。为什么,以及如何打印出来?
使用 NASM,我们在打印整数方面没有问题,如下所示:http://www.tutorialspoint.com/assembly_programming/assembly_numbers.htm
附:不,我不想在 C 中使用 printf。我想坚持使用原始的、纯粹的汇编代码。 :-)
【问题讨论】: