|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Grishka Chervonets 2:5020/400 29 Aug 2006 14:36:36 To : Dmitry E Oboukhov Subject : Re: получить чистый бинарник -------------------------------------------------------------------------------- Dmitry E. Oboukhov <Dmitry.E.Oboukhov@p151.f75.n5004.z2.fidonet.org> wrote: DEO> $cat main.c DEO> DEO> int i=5; DEO> DEO> int main(void) DEO> { DEO> while(1) i++; DEO> } DEO> DEO> если теперь objdump'ом дезасемблять то кода, инициализирующего DEO> переменную a мы не увидим: кода быть и не должно, статические данные инициализируются при загрузке. DEO> DEO> $arm-linux-objdump -d obj/test.elf DEO> DEO> obj/test.elf: формат файла elf32-littlearm DEO> DEO> Диассемблирование раздела .text: DEO> DEO> 00000000 <main>: DEO> 0: e59f200c ldr r2, [pc, #12] ; 14 <.text+0x14> DEO> 4: e5923000 ldr r3, [r2] DEO> 8: e2833001 add r3, r3, #1 ; 0x1 DEO> c: e5823000 str r3, [r2] DEO> 10: eafffffb b 4 <main+0x4> DEO> 14: 00008018 andeq r8, r0, r8, lsl r0 ^^ ^^^^ если я правильно понял эту китайскую грамоту, адрес переменной i хранится в ячейке со смещением 0x14, т.е. i расположена в озу по адресу 0x8018 и нужна явная инициализация DEO> DEO> ну а в листинге, созданном при компиляции main.c в main.o есть секция: DEO> DEO> 9 .Ltext0: DEO> 10 .global i DEO> 11 .data DEO> 12 .align 2 DEO> 13 .type i, %object DEO> 14 .size i, 4 DEO> 15 i: DEO> 16 0000 05000000 .word 5 DEO> 17 .text DEO> 18 .align 2 DEO> 19 .global main DEO> 20 .type main, %function DEO> DEO> то есть надо как-то заставить сборщик по данному блоку включить код DEO> инициализации? или написать код инициализации самому, как? наверно, вот так: int i; /* .data -> .bss */ int main(void) { i=5; ... PS а не является ли программирование пиков на сях своего рода извратом ;) -- http://chg.fatal.ru Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: CHG (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/117155106fbd7.html, оценка из 5, голосов 10
|