Hello binutil's staff,
I was writing a simple code and compiling it with gas. The code is what follows:
.globl _start.globl setuid
.section .text
_start:
    call write    call setuid
    jmp exit
write:
    movq $4, %rax    movq $1, %rbx    push $0x4142430a    mov %rsp, %rcx    // 
here seems to be the error    movq $4, %rdx    int $0x80
    retq
setuid:
    movq $23, %rax    xor %rbx, %rbx    int $0x80
    retq
exit:
    movq $1, %rax    movq $0, %rbx    int $0x80
.section .rodata
text:
    .ascii "writed.\n";
text_l = . - text
--
When assembled and linked with gas and ld I obtain a binary. So everything goes 
fine.
When I execute that binary I obtain a segvfault.
I have the occurence of use gdb for viewing the code (which is okay) but when 
runned it (the binary) I obtained the next segvfault:Program received signal 
SIGSEGV, Segmentation fault.0x000000004142430a in ?? ()
It seems to be moving the content of %rsp to %rcx instead of the address 
contained by %rsp. Like doing: mov (%rsp), %rcx. But disassembling its okay... 
and it diferenciates between one form and the another form.
Abel.
Regards.
                                          
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to