汇编调用函数在subl $4, %esp时报错

hzyd_ 2015-08-15 03:49:23
下面是代码,我用c写相同功能代码,再反汇编过去,发现它也有sub $4, %esp类似代码,我运行到这里就会报错,请大家教教我。

.section .text
.code32
.globl _start
_start:
pushl $3
pushl $2
call power
addl $8, %esp

movl $1, %eax // 退出
int $0x80

.type power, @function
power:
pushl %ebp
movl %esp, %ebp
subl $4, %esp // 这里报 Cannot access memory at address 0xffffe304
movl 4(%ebp), %ebx
movl 8(%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
...全文
316 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧