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 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…