Magiczny ciąg komend:
Po modyfikacji kodu assemblera, generujemy object-file, z którego ponownie skorzysta g++ (linijka 2).
g++ -S main.cpp as main.s -o main.o g++ main.o -o mainNasz kod, który chcemy zobaczyć w assemblerze:
#include <stdio.h> int main() { printf("Hello world\n"); return 0; }Nasza modyfikacja w kodzie assemblerze (main.s):
.file "main.cpp" .section .rodata .LC0: .string "Hello Kitty ;)" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 andl $-16, %esp subl $16, %esp movl $.LC0, (%esp) call puts movl $0, %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE0: .size main, .-main .ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3" .section .note.GNU-stack,"",@progbitsWynik:
Hello Kitty ;)
Brak komentarzy:
Prześlij komentarz