Пример 5.1. Типичный пролог функции, предназначенной для использования в разделяемом объекте |
.text .align 2,0x90 .globl _strerror _strerror: pushl %ebp ; Стандартный пролог функции movl %esp,%ebp pushl %ebx call L4 L4: popl %ebx ; Загрузка текущего адреса в регистр ЕВХ addl $_GLOBAL_OFFSET_TABLE_+[.-L4],%ebx |
Пример 5.2. Структура PLT для процессора SPARC (цитируется по [docs.sun.com 816-0559-10]) |
Первые две (специальные) записи PLT до загрузки программы: .PLT0: unimp unimp unimp .PLT1: unimp unimp unimp ... Обычные записи PLT до загрузки программы: .PLT101: sethi (.-.PLTO),%g1 ba,a .PLT0 noр .PLT102: sethi (.-.PLT0), %g1 ba,a .PLT0 nор Специальные записи PLT после загрузки программы: .PLT0: save %sp,-64,%sp call runtime-linker nор .PLT1: .word identification unimp unimp ... Обычные записи PLT после настройки: .PLT101: sethi (.-.PLT0),%g1 sethi %hi(name1),%g1 jmpl %g1+%lo(name1),%g0 .PLT102: sethi (.-.PLT0),%g1 sethi %hi(name2),%g1 jmpl %g1+%lo(name2),%g0 |
Тип памяти | Время доступа | Цена 1 Мбайта (цены 1995г.) | Способ использования |
Статическая память | 15 нс | $200 | Регистры, кэш-память |
Динамическая память | 70 нс | $30 (4Мбайт SIMM) | основная память |
Жесткие магнитные диски | 1-10 мс | $3 (1.2Gb EIDE) | Файловые системы, устройства своппинга |
Магнитные ленты | Секунды | $0.025 (8мм Exabyte) | Устройства резервного копирования |