Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
238 views
in Technique[技术] by (71.8m points)

segmentation fault - ret is causing a segfault in assembly

I have the following Assembly code:

.text
.global main
main:
    push %r13
    push %r14
    push %r15
    jmp rest
x:    
    .data
    y0:    .quad   0
    .text
    mov %r14, y0
    mov $format,%rdi
    push y0
    popq %rsi
    movq %rsi, %r15
    call printf
    mov $format,%rdi
    mov $10,%rsi
    call printf
    ret
rest:    
    movq $5, %r9
    pushq %r9
    popq %rsi
    movq %rsi, %r14
    jmp x
    mov $0,%rax
    pop %r15
    pop %r14
    pop %r13
    ret
.data
format:
.byte 37
.byte 108
.byte 117
.byte 0

I was hoping that the ret would make the program jump back to where it was: however, I get a segmentation fault. Why is this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...