运行出现段错误提示

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
不知道哪出问题了。
...全文
231 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过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 ? 是不是这个中断涉及了系统的东西呢? 在虚拟机中调试吗?
  • 打赏
  • 举报
回复
发帖
汇编语言

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
帖子事件
创建了帖子
2012-12-19 04:42
社区公告
暂无公告