LINUX.ORG.RU

В Ассеблере не шарю, но учусь


0

0

У меня вопрос по Асемблеру с синтакисом АТ&T. Как обявить глобальную переменую... Я пишисал: globl _start global _start .globl _start- правда притаком компилирует... но отказывается открывать фаил а.аут и все бестолку...

Ответ на: комментарий от Shoblin

$ cat << EOF > file.c
int my_global = 4;
EOF
$ gcc -Wall -O0 -c -S file.c
$ cat file.s
.file "file.c"
.globl my_global
.data
.align 4
.type my_global, @object
.size my_global, 4
my_global:
.long 4
---------------------------------------------------------------
Короче если в двух словах :-) то:
.global my_global /* объявление символа my_global линкуемым */
.data /* секция данных */
my_global: /* с этой позиции начинается my_global */
.long 4 /* собственно данные (вместо .long */
/* можно .word или .byte, смотря как */
/* тебе надо) */

anonymous
()
Ответ на: комментарий от anonymous

для точки входа:

.global _start
.text
_start:
/* here goes code */

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.