Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

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

1 Answer

Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...