а почему он там ДОЛЖЕН быть?
Переменные в разделе section .bss не содержат какихлибо значений, значения будут присваиваться им в дальнейшем во время выполнения программы. Блоки памяти для этих переменных резервируются не во время компиляции,а во время выполнения. В последующих примерах будет продемонстрировано практическое использование раздела section .bss. Когда программа начинает выполняться, она запрашивает у операционной системы необходимую память, выделяемую переменным из раздела section .bss и инициализируемую нулями. Если во время выполнения не существует доступной памяти, достаточной для размещения переменных .bss, то программа завершается аварийно.
Это не так работает... Секций может не быть вовсе. Может быть все данные в одной секции вместе с исполняемым кодом и импортом. Это ассемблер, тебе управлять. Ну а про загрузчик почитай отдельно
мне кажется это инструмент безопасной разработки
я не о секции спрашивал, а о переменной/метке. почему она должна быть именно в секции bss? я ведь спокойно же могу разместить эту переменную и в секции кода. и вообще название этой секции и ее предназначение корнями простилается из линуха и сишки. но мы то на асме пишем, к чему нам эти правила?
тогда пиши на rust
в книге по asm взял: Программирование на ассемблере x64 От начального уровня до профессионального использования AVX
ну там написаны скорей всего шаблоны программирования. что вот это здесь должно лежать, вот это вот тут. тоесть все так как это делают компиляторы ЯВУ. в яву то эти правила вроде никак не изменить
Обсуждают сегодня