ассемблер это элементарная программа типа
switch(NextString)
{case "anl R16,R17": Opcode=010111011001;break;
case "anl R16,R18": Opcode=010111111001;break;
}
которая заменяет тобой написаные в редакторе строки NextString на число Opcode которое програматор непосредственно пишет в ПЗУ процессора.Никаких оптимизаций ассемблерный компилятор не делает, он просто заменяет слово на слово. Нет смысла производителю 150 мегабайтного продукта IAR AVR использовать вышеприведенный кусок элементарной программы написаный кемто другим. Соответствие кодов командам описано в документе который свободно распространяется и назвается AVR instruction set и любой пионер за несколько часов напишет свой ассемблер, как и свой дизасемблер.