Мой вопрос возник в процессе решения следующего упражнения:
/* Write assembly code to declare variables equivalent to the following C code: */
/* these variables are declared outside of any function */
1) static int foo[3]; /* visible anywhere in the current file */
2) static char bar[4]; /* visible anywhere in the current file */
3) char barfoo; /* visible anywhere in the program */
4) int foobar; /* visible anywhere in the program */
Мои вопросы:
Как объявить переменную, видимую в любом месте программы? И чем оно отличается от объявления переменной, видимой в любом месте текущего файла?
То, чего я достиг на данный момент, таково:
1) foo: .word 0,0,0,0
2) bar: .char 0,0,0,0,0
3)
4)
Но как вы видите, у меня проблемы с номерами 3 и 4? Как это может быть достигнуто? Конечно, если я ошибаюсь с номерами 1 и 2, пожалуйста, поправьте меня, поскольку ясно, что я учусь: D.
Большое спасибо.
Для справки: мой вопрос непосредственно следовал упражнению, найденному в главе 2 Программирование на современном ассемблере с помощью процессора ARM Ларри Д. Пайеттом .
Я использую ассемблер - ГАЗ.