linux - Cannot access memory at address 0x ffffdfc4 -


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