Я начинающий для однокристалок, но "испорчен" CISC-архитектурой и программированием на ассемблерах(masm32,tasm,fasm,nasm) под windows для 0x86.
Я думаю понятно, что microsoft не ахти как поощеряет это дело,
не было ни инклюдников с константами, ни прототипов api-функций,
и все было против ассемблерщиков под windows, еще лет 5 назад, сказав,
что ты программируешь на асемблере под windows тебя обозвали бы гадким астматиком, и атавизмом программирования. Но сейчас ситуация изменилась -
есть все, что надо - и инклюдники и IDE( их примерно десяток, самое яркое это конечно RADASM (http://radasm.visualassembler.com/) - сишные программисты синеют от злости:)) , и примеров море и написана куча макросов, посмотрите как цветут и пахнут
http://www.wasm.ru/
http://www.masm32.com/
http://www.movsd.com/
http://www.masmforum.com/
http://board.win32asmcommunity.net/
и другие.
Но все-таки ассемблер это удел, не многих - вирусы - антивирусы,
криптозащиты-реверсинг, и многое другое. Быстро сляпать и сдать заказчику это конечно HLL(Языки Высокого Уровня, к примеру c#)
Для каждой задачи свой подход.
Но вопрос не в том, что лучше или хуже для однокристалок,
Вопрос в том, можно ли успешно обходиться ассемблером для средних и крупных проектов ?
Глядя на 0x86-архитектуру и макроассембле masm, где к примеру
можно сделать макрос return и в зависимости от операндов
(
определить с помощью директив и макросов, таких как
$IsImm MACRO Operand:REQ
IF (OPATTR (Operand)) AND 00000100y
;; Is an immediate value
EXITM <-1>
ELSE
EXITM <0>
ENDIF
ENDM
)
строить оптимизированый код (если вы знаете как для данного мп),
не хуже опримизатора для c#.
Но в стандартном компиляторе от avr - нет даже директив
типа db, $, нет директив определения процедур.
Может это от отличия каждого нового девайса от другого?
Напрашивается вывод, что для крупных и средних проектов использовать сишные компиляторы, а для мелких можно и асм?
А где же вечные ценности - размер кода, оптимизация по скорости и другое?
Расскажите о существующих компиляторах c# и асм, о их достоинствах и недостатках.
Посоветуйте опытные ветераны-однокристальщики, схемотехники.
:a14: