#define START_GOT \
.section ".got2","aw";\
.LCTOC1 = .+32768
Является ли .LCTOC1 директивой? Почему перед +32768 стоит .?
#define START_GOT \
.section ".got2","aw";\
.LCTOC1 = .+32768
Является ли .LCTOC1 директивой? Почему перед +32768 стоит .?
.
(точка) — это специальный символ, обозначающий местоположение текущего линия собирается в.
Таким образом, выражение .+32768
означает «32 КБ отсюда», и этому значению дается символическое имя .LCTOC1
.
Обратите внимание, что директива .section
, которая также находится в определении макроса, может изменить значение .
, т. е. текущее местоположение, поскольку с него начинается новый раздел под названием .got2
. Аргумент "aw"
означает только "доступный для записи" (a
игнорируется).
.LCTOC1
на (текущий адрес) + 32768.
- person Jeremy Kerr; 07.04.2015