.data
x: .long 2
r: .long 27
.text
.globl _start
_start:
pushl x
movl $0,%eax
call func
addl $4,%esp
movl %eax,r
movl r,%ebx
movl $1,%eax
int $0x80
.type func, @function
func:
pushl %ebp
movl %esp,%ebp
movl 8(%ebp),%eax
cmpl $0,%eax
jle if
jmp else
if: movl %ebx,%eax
jmp endif
else: addl %eax,%ebx
subl $1,%eax
pushl %eax
call func
addl $4,%esp
endif: movl %ebp,%esp
popl %ebp
ret
上面你看到我试图运行的程序。我把它归结为最后一个错误,我似乎无法找到答案。 错误消息如下:
test.s:19:1: error: unknown directive
.type func, @function
^
我使用gcc -m32 test.s
和ggc -c test.s
在Macintosh 10.9.1上编译了它。
我浏览谷歌寻找答案,但我似乎找不到任何答案。它是AT& T语法。