ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
1037767 Топик полностью
Aleksey_75 (19.09.2020 00:20, просмотров: 322) ответил fk0 на ELF в конечном счёте состоит из секций, в которых лежат переменные-объекты или функции кода. И объектный файл тоже из таких секций. А дальше начинаются приключения. Объекты сложенные в секцию .data могут иметь условие выравнивания на какую-то границу. Сами секции тоже. Функции должны быть выравнены на границу из 16 байт (так может требовать ABI -- иначе что-нибудь поломается в коде, сам процессор-то исполнять конечно не перестанет). И пока оно всё внутри объектных файлов --
выравниванием занимается линкер о чем прямо говорит ! один ни тоже код с разными адресами (естественно кратными 4) никуда сьехать физически не может! 
Section header tables
=====================

Nr             Name                Type           Address             Offset              Size                Link           Info           AddrAlign           EntSize             Flags          
0                                  SHT_NULL       0x00000000          0x00000000          0x00000000          0x00000000     0x00000000     0x00000000          0x00000000                         
1              ER_RO               SHT_PROGBITS   0x08000100          0x00000034          0x000000A4          0x00000000     0x00000000     0x00000004          0x00000000          Alloc|Exec     
2              ER_RW               SHT_PROGBITS   0x20000100          0x000000D8          0x0000001C          0x00000000     0x00000000     0x00000004          0x00000000          Write|Alloc    
3              ER_ZI               SHT_NOBITS     0x20001100          0x000000F4          0x00000010          0x00000000     0x00000000     0x00000004          0x00000000          Write|Alloc    
4              .note               SHT_NOTE       0x00000000          0x000000F4          0x0000001C          0x00000000     0x00000000     0x00000004          0x00000000                         
5              .comment            SHT_PROGBITS   0x00000000          0x00000110          0x0000022C          0x00000000     0x00000000     0x00000001          0x00000000                         
6              .shstrtab           SHT_STRTAB     0x00000000          0x0000033C          0x00000034          0x00000000     0x00000000     0x00000001          0x00000000