0
給定一個數字,這個程序計算階乘,但它沒有長比9問題彙編代碼,計算階乘
.section .data
.section .text
.globl _start
_start:
pushl $10
movl %eax, %ebx
call func
addl $4, %esp
movl %eax, %ebx
movl $1, %eax
int $0x80
.type func,@function
func:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
cmpl $1, %eax
je fim_loop
decl %eax
pushl %eax
call func
movl 8(%ebp), %ebx
imull %ebx, %eax
fim_loop:
movl %ebp, %esp
popl %ebp
ret
更大的作品數量編譯後運行程序,回聲$?應該返回結果,但這是返回0而不是正確的結果,有人知道這個代碼有什麼問題嗎?
你介意張貼最終的代碼,我應該使用SYS_WRITE什麼的? – jyz 2010-10-17 21:06:45