Нужно реализовать в модуле на asm-е замену нескольких строк другими, или в крайнем случае всего модуля на другой, в зависимости от #define в Си. Т.е. в Си пишем: #define test1 //или test2 А в модуле на asm-e получить: SCL EQU P2.1 ; если test1 или SCL EQU P2.7 ; если test2
Условная компиляция между Си и Asm
Jun 07, 2005
10 Replies
Tue Jun 07 2005 13:20, Vladislav wrote to All:
V> Hужно реализовать в модуле на asm-е замену нескольких строк другими, V> или в крайнем случае всего модуля на другой, в зависимости от #define в V> Си. V> Т.е. в Си пишем: V> #define test1 //или test2 V> А в модуле на asm-e получить: V> SCL EQU P2.1 ; если test1 V> или V> SCL EQU P2.7 ; если test2
Hужно 2 вещи: чтобы асм умел понимать директивы препроцессора в Си-стиле, и чтобы были какие-то предопределенные макроопределения в компиляторе Си и/или ассемблере (обычно они есть). Тогда делаешь, к примеру: #ifdef __IAR_C #define бла-бла-бла //для Си #else #define ля-ля-ля //для асм #endif
wbr, Andy
Привет Vladislav!
07 Jun 05 13:20, Vladislav писал All:V> Hужно реализовать в модуле на asm-е замену нескольких строк другими, V> или в крайнем случае всего модуля на другой, в зависимости от #define V> в Си. Т.е. в Си пишем: #define test1 //или test2 А в модуле на asm-e V> получить: SCL EQU P2.1 ; если test1 или SCL EQU P2.7 ; V> если test2
#ifdef test1 #define SCLPIN P2.1 #elif test2 #define SCLPIN P2.7 #else #error bla-bla-bla #endif
SCL EQU SCLPIN
Всего наилучшего, [Team PCAD 2000] Алексей М. ... Слепой Пью, Глухой Ем...
Привет Vladislav!
07 Jun 05 16:45, Alex Mogilnikov писал Vladislav:AM> #ifdef test1 AM> #define SCLPIN P2.1 AM> #elif test2
Тут я поторопился по невнимательности. Сделует читать
#elif defined test2
Далее по тексту.
Всего наилучшего, [Team PCAD 2000] Алексей М. ... В системе возможно бесконечное число процессов - до 256.
ôÏÌØËÏ ÄÌÑ ÐÏÄÄÅÒÖËÉ ËÏÒÒÅËÔÎÙÈ ÎÏÍÅÒÏ× ÓÔÒÏË × ÓÏÏÂÝÅÎÉÑÈ Ï ÏÛÉÂËÁÈ, ÌÉÓÔÉÎÇÁÈ É ÐÒÏÞÅÊ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ. åÓÌÉ ÜÔÏ ÎÁÄÏ.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required