Linux彙編教程12:函數範例

上一講,我們介紹了函數和棧,這一講我們就來寫一個程序來鞏固前面的內容。我們要寫一個計算乘方的函數power,這個函數接受兩個函數。

我們先完成程序的整體框架,之後再來寫power函數,或者這兩個部分相互完成。

.section .data

.section .text

.globl _start
_start:
pushl $2
pushl $10
call power

.type power, @function
power:
pushl %ebp
movl %esp, %ebp
subl $4, %esp

movl 8(%ebp), %ebx
movl 12(%ebp), %ecx

movl %ebx, -4(%ebp)

power_loop_start:
cmpl $1, %ecx
je end_power
movl -4(%ebx), %eax
imull %ebx, %eax
movl %eax, -4(%ebp)

decl %ecx
jmp power_loop_start

end_power:
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret

這個程序十分簡單,是對函數和棧的簡單運用

版權聲明

Moriarty_221爲本文的CSDN博客

如未註明,均爲原創,轉載請註明出處

轉載請註明:coskimo » Linux彙編教程12:函數範例

版權所有 © 科斯基摩 | 本網站採用cc by-nc-sa 3.0協議進行授權

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章