Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1109443
  • 博文数量: 284
  • 博客积分: 8223
  • 博客等级: 中将
  • 技术积分: 3188
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 13:26
文章分类

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类: LINUX

2009-08-31 17:39:36

sem.s(函数调用计算2^3+5^2)

.section .data

.section .text
.globl _start
_start:
 pushl $3
 pushl $2
 call power
 addl $8, %esp
 pushl %eax
 pushl $2
 pushl $5
 call power
 addl $8, %esp
 popl %ebx
 addl %eax, %ebx
 
 movl $1, %eax
 int $0x80

.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(%ebp), %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

 

编译:

as sem.s -o sem.o

ld sem.o -o sem

阅读(983) | 评论(0) | 转发(0) |
0

上一篇:循环比较

下一篇:转载--tzset()与localtime()

给主人留下些什么吧!~~