Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 получить чистый бинарник   Dmitry E. Oboukhov   17 Aug 2006 20:11:09 
 Re: получить чистый бинарник   Alex Korchmar   17 Aug 2006 22:19:38 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 10:37:25 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 12:31:26 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 13:28:30 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 14:52:16 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 15:54:04 
 получить чистый бинарник   Alexey Vissarionov   18 Aug 2006 16:15:36 
 получить чистый бинарник   Andrew Kant   18 Aug 2006 15:08:31 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 17:59:57 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 18:32:12 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 14:58:24 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 15:49:42 
 Re: получить чистый бинарник   Eugene Grosbein   18 Aug 2006 20:33:35 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 19:10:29 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 20:25:29 
 Re: получить чистый бинарник   Grishka Chervonets   19 Aug 2006 13:26:56 
 Re: получить чистый бинарник   Dmitry A. Nikitin   24 Aug 2006 03:03:42 
 Re: получить чистый бинарник   Grishka Chervonets   24 Aug 2006 14:08:44 
 Re: получить чистый бинарник   Dmitry A. Nikitin   26 Aug 2006 23:07:32 
 Re: получить чистый бинарник   Grishka Chervonets   27 Aug 2006 13:53:08 
 получить чистый бинарник   Dmitry E. Oboukhov   28 Aug 2006 11:16:39 
 Re: получить чистый бинарник   Grishka Chervonets   29 Aug 2006 14:36:36 
 получить чистый бинарник   Dmitry E. Oboukhov   29 Aug 2006 16:34:21 
 получить чистый бинарник   Sergey Khvatov   29 Aug 2006 17:21:09 
 получить чистый бинарник   Dmitry E. Oboukhov   29 Aug 2006 19:07:22 
 получить чистый бинарник   Sergey Khvatov   30 Aug 2006 11:02:22 
 получить чистый бинарник   Dmitry E. Oboukhov   30 Aug 2006 11:43:01 
 Re: получить чистый бинарник   Grishka Chervonets   30 Aug 2006 13:18:20 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 13:56:52 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 14:09:02 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 17:17:44 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 13:54:36 
Архивное /ru.linux/117155106fbd7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional