Консультация № 193111
18.04.2018, 15:55
0.00 руб.
0 5 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Уважаемые эксперты, объясните пожалуйста, необходима ли точка перед директивами?
В Интернете, довольно часто попадается утверждение, что перед директивой должна стоять точка.
http://www.opennet.ru/docs/RUS/gas/gas-7.html
Все ассемблерные директивы имеют имена, начинающиеся с точки (`.'). Остальная часть имени пишется буквами, обычно строчными.
https://studopedia.ru/14_111842_direktivi-assemblera.html
Синтаксис всех директив следующий:
.[директива]
То есть перед директивой должна стоять точка. Иначе ассемблер воспринимает это как метку.
М.з. а у Калашникова нет точек, перед директивой "org", перед директивой "include" да и перед другими директивми!
Так нужна ли точка перед директивами?
Есть ли какое-то правило, говорящее, где ставить точку перед директивой, а где не ставить?

Обсуждение

давно
Посетитель
7438
7205
18.04.2018, 17:32
общий
18.04.2018, 17:33
Адресаты:
Иначе ассемблер воспринимает это как метку
Спорное утверждение. Для метки обязательно наличие двоеточия.
Кроме того, зарезервированные слова нельзя использовать в качестве меток.

Ставить или не ставить точку, во многом зависит от компилятора. Причем, мне кажется, нередко можно писать и так, и так.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Старший Модератор
31795
6196
18.04.2018, 18:16
общий
Адресаты:
Вам уже сказали:
Цитата: Лысков Игорь Витальевич
Ставить или не ставить точку, во многом зависит от компилятора.

Компиляторы:
- Gas - точка нужна;
- Fasm | Nasm - все директивы без точек;
- Masm | Tasm - и да и нет(см. ниже).
С точками:
- упрощенные директивы определения сегментов: .MODEL .CODE, ,DATA, STACK, .BSS, . . .;
- директивы определения максимального набора команд CPU: .186, .286, . . .;
- директивы прекращения компилирования, при возникновении определенной ситуации: ERR: .ERR1, ERR2, .ERRE, . . .;
- особый список директив, связанный с формированием листинга: .XLIST, .LIST, .SALL, .SFCOND, .LFCOND, .TFCOND, .CREF, .XCREF

Вроде все.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
18.04.2018, 18:21
общий
Адресаты:
Забылдобавить, https://studopedia.ru/14_111842_direktivi-assemblera.html сайт посвященный микроконтроллерам, там каждый производитель, чуть ли не под каждый микроконтроллер пишет свой ассемблер.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401455
7
18.04.2018, 21:39
общий
Большое спасибо за ваши ответы!
Вопрос разрешен, сомнения - рассеяны.
Мой вопрос можно закрывать.
---------
KerenskyAF.
давно
Старший Модератор
31795
6196
19.04.2018, 12:02
общий
это ответ
Здравствуйте, kerenskyaf!

Компиляторы:
- Gas(GNU ассемблер) - точка нужна;
- Fasm | Nasm - все директивы без точек;
- Masm | Tasm - и да и нет.
С точками:
- директивы упрощенного определения сегментов(полная и сокращенная форма - без точек): .MODEL .CODE, .DATA, .STACK, .BSS, . . .;
- директивы определения максимального набора команд CPU: .186, .286, . . .;
- директивы аварийного прекращения компилирования: .ERR: .ERR1, .ERR2, .ERRE, . . .;
- директивы формирования листинга: .XLIST, .LIST, .SALL, .SFCOND, .LFCOND, .TFCOND, .CREF, .XCREF.

Если взять вторую предложенную Вами ссылку на Директивы ассемблера, то этот сайт описывает ассемблер микроконтроллеров. В мире микроконтроллеров - новый чип - новый компилятор, новый ассемблер, новые правила, новый синтаксис.

Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа