i have assembly language progamme,but show error
“program received signal sigsegv,segentation fault”
why?the program below:
.code32 .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 power_loop_end movl -4(%ebp), %eax imull %ebx, %eax movl %eax, -4(%ebp) decl %ecx jmp power_loop_start power_loop_end: movl -4(%ebp), %eax movl %ebp, %esp popl %ebp ret after compilation run program,it show segmentation fault (core dump) , gdb says:
program received signal sigsegv,segregation fault. why , how fix it?
my problem use 64 compile 32 bit program.and add compiler
options solve it.such bellow:
as -32 power.s -o power.o
ld -m elf_i386 power.o -o power
./power
Comments
Post a Comment