gpt4 book ai didi

linux - 无法访问地址 0x ffffdfc4 处的内存

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:13 24 4
gpt4 key购买 nike

我有汇编语言程序,但显示错误

“Program received signal SIGSEGV,Segentation fault”

为什么?程序如下:

.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

编译运行程序后,它显示段错误(核心转储)并且 gdb 说:

Program received signal SIGSEGV,Segregation fault.

为什么以及如何修复它?

最佳答案

我的问题是我使用64位来编译32位程序。并且我添加了一些编译器

解决这个问题的选项。如下所示:

as -32 power.s -o power.o

ld -m elf_i386 power.o -o 电源

./电源

关于linux - 无法访问地址 0x ffffdfc4 处的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31453497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com