gpt4 book ai didi

linux - 为什么我在 `ret' 时会出现段错误? (FASM)

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

<分区>

通过一些操作,我将其缩小为 ret 操作的问题。我知道 call 将返回地址压入堆栈;弹出并推回是否违法?

format ELF64 executable 3

entry start

segment readable executable

start:
pop rcx ; argc
mov [argc],cl ; int -> ASCII
add [argc],'0'
push 1 argc 1
call sys_write

mov rdi,0
mov rax,60
syscall

sys_write: ; (fd,*buf,count)
pop r11
pop rdx rsi rdi
mov rax,1
syscall
push r11
ret

segment readable writable

argc rb 1

输出是:

$ ./prog
1Segmentation fault
$ _

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