сборка руки: риск "#define" - PullRequest
       30

сборка руки: риск "#define"

2 голосов
/ 08 ноября 2010

В ARM сборке

bic r0, r0, #0x1f

работает нормально.Теперь я хочу #define MODE 0x1f и изменить код выше на bic r0,r0, #MODE.

Здесь есть риск.Если вы забыли включить заголовочный файл, где определено #define MODE 0x1f, gcc собирается без жалоб, но результат неверный, оказывается, компилятор переводит #MODE в 0.

Я доказал, что проблема вызвана"#".как я мог сказать препроцессору не обрабатывать "#", поскольку этот # используется сборкой?

Спасибо

1 Ответ

3 голосов
/ 15 февраля 2011
  1. I думаю, в самых последних документах ARM в качестве опций указывается # in, так что вы можете попробовать использовать bic r0, MODE.
  2. Вы можете использовать сборку-Уровень определяет:

    .equ MODE, 0x1F

    bic r0, r0, # MODE

...