You are on page 1of 1

Bài tập gọi hàm 1

main: function:
pushl %ebp pushl %ebp
movl %esp, %ebp movl %esp, %ebp
subl $16, %esp subl $16, %esp
movl $1, -4(%ebp) movl $10, -4(%ebp) # a
movl $2, -8(%ebp) movl -4(%ebp), %edx
movl $0, -12(%ebp) movl 8(%ebp), %eax # x
pushl -4(%ebp) addl %eax, %edx
pushl -8(%ebp) movl 12(%ebp), %eax
call function imull %edx, %eax
addl $8, %esp movl %eax, -8(%ebp)
movl %eax, -12(%ebp) movl -8(%ebp), %eax
movl $0, %eax leave
leave ret
ret
3. Hàm function nhận bao nhiêu tham số?
1. Hàm nào là caller/callee? 2 tham số ở %ebp + 8 và %ebp + 12
main là caller (hàm mẹ), function là callee 4. Hàm main đã truyền tham số như thế nào cho
(hàm con) function?
2. Mỗi hàm có bao nhiêu biến cục bộ? Giá Tham số thứ nhất là 2, tham số thứ 2 là 1
trị như thế nào? 5. Hàm function làm gì và trả về giá trị bao nhiêu
- main có 3 biến cục bộ có giá trị là 1, 2, 0. cho main?
- function có 2 biến cục bộ có giá trị là 10 Giả sử function(x,y): Tính (x + 10)*y
và 1 biến được gán kết quả tính toán. Trả về giá trị 12
55

You might also like