运行出现段错误提示

pengzhixi 2012-12-19 04:42:21
.section: .data
values:
.int 105,235,61,315,134,221,53,145,117,5
output:
.asciz "%d,"
.section .text
.globl _start
_start:
movl $values,%esi
movl $9,%ecx
movl $9,%ebx
loop:
movl (%esi),%eax
cmp %eax,4(%esi)
jge skip
xchg %eax,4(%esi)
movl %eax,(%esi)
skip:
addl $4,%esi
dec %ebx
jnz loop
dec %ecx
jz end
movl $values,%esi
movl %ecx,%ebx
jmp loop
end:
movl $0,%edi
movl $10,%ecx
print:
movl values(,%edi,4),%ebx
pushl %ebx
pushl $output
call printf
addl $8,%esp
inc %edi
dec %ecx
jnz print
movl $1,%eax
movl $0,%ebx
int $0x80
不知道哪出问题了。
...全文
287 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
纯中文 2012-12-19
  • 打赏
  • 举报
回复
end: movl $0,%edi movl $10,%ecx print: movl values(,%edi,4),%ebx   大概是最后一个取值越界了,请试试把 movl $0,%edi 改为 -4。
pengzhixi 2012-12-19
  • 打赏
  • 举报
回复
引用 1 楼 WJN92 的回复:
int $0x80 ? 是不是这个中断涉及了系统的东西呢? 在虚拟机中调试吗?
最后面3句代码只是调用系统的exit函数。
WJN92 2012-12-19
  • 打赏
  • 举报
回复
int $0x80 ? 是不是这个中断涉及了系统的东西呢? 在虚拟机中调试吗?

21,449

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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