+ -
当前位置:首页 → 问答吧 → linux汇编中调用printf的问题

linux汇编中调用printf的问题

时间:2011-05-14

来源:互联网

小弟最近在学linux下汇编语言,可是在汇编中调用C库函数确出现了问题。gdb调试后,发现是在进入第10行的jmp done语句中的printf时,输出是死循环,不断的输出数字。小弟百思不得其解,望大虾能不吝赐教,万分感激。
  1 .section .data
  2 output:
  3 .asciz "%d "
  4 .section .text
  5 .globl main
  6 main:
  7 nop
  8 movl $28 , %ecx
  9 movl $1 , %ebx
 10 jmp done
 11 movl $1 , %eax
 12 jmp done
 13 done:
 14 pushl %ebx
 15 pushl $output
 16 call printf
 17 loop1:
 18 movl %ebx , %edx
 19 addl %eax , %ebx
 20 movl %edx , %eax
 21 jmp done
 22 loop loop1
 23 movl $1 , %eax
 24 movl $2 , %ebx
 25 int $0x80

作者: ren_jerk   发布时间: 2011-05-14

看一下%ecx中的值有没有被覆写

作者: mydo   发布时间: 2011-05-14