А что вы имели ввиду говоря о примерах написания программ на Assembler2? Там добавили множество полезных фишек (и новых директив) по использованию препроцессора, который теперь "C-style preprocessor"(см. help), потому и сравнивать стали с С

. Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на Assembler не изменилось практически, он в С от этого не превратился, if-ы это для препроцессора, а не для ассемблера.
------------------------------------------------------------------------
В конце следующего отрывка , из AVR Assembler 2 - Known Issues ,отрывок программы с использованием .if .endif !!!
Или я чегото не понял, программа вроде для ассемблера ??????
И как старые библиотеки программ на ассемблере 1 стыковать с программами на ассемблере 2
,их можно использовать без изменений (ну кроме замены имён регистров для нового контроллера ,размера памяти ) ?
------------------------------------------------------------------------------
AVR Assembler 2 - Known Issues
See also: Common Assembler Project Issues.
The following AVRASM2 bugs/issues are known at the time of release. Please note that the AVRASM1 known issues do not apply to AVRASM2. and vice versa.
Missing newline at end of file
Comments in macro calls
Increment/decrement operators
Forward references in conditionals
Error messages
Preprocessor issues
Missing newline at end of file
AVRASM2 has some issues if the last line in a source file is missing a newline: Error messages may refer to wrong filename/line number if the error is in the last line of a included files, and in some cases syntax errors may result. Beware that the AVR Studio editor will not append a missing newline at the end of a source file automatically.
Increment/decrement operators
Increment/decrement operators (++/--) are recognized by the assembler and may cause surprises, e.g. symbol--1 will cause a syntax error, write symbol - -1 if that is what is intended. This behaviour is consistent with the C preprocessor. The ++/-- operators are not useful in the current assembler, but are reserved for future use.
Forward references in conditionals
Using a forward reference in an assembler conditional may cause surprises, and in some cases is not allowed. Example:
.org LARGEBOOTSTART
; the following sets up RAMPZ:Z to point to a FLASH data object, typically
; for use with ELPM.
ldi ZL, low (cmdtable * 2)
ldi ZH, high (cmdtable * 2)
.if ((cmdtable * 2) > 65535)
ldi r16, 1
sts RAMPZ, r16
.endif
; more code follows here
cmdtable: .db "foo", 0x0