Решил проверить коректность работы компилятора, создал такую последователность команд:
.EQU A=4100
.EQU B=1000000
.EQU C=20000000
.EQU D=1024
LDI R18,low($100-(A/B*C/D));
LDI R19,high($100-(A/B*C/D))
;в результате R18=0x00 R19=0x01
LDI R18,low($100-(C/D*A/B));
LDI R19,high($100-(C/D*A/B))
;в результате R18=0xB0 R19=0x00 этот результат соответствует вычислению "в столбик" и можно заменить на строку
LDI R18,$100-(C/D*A/B);
без вылета в ERROR
LDI R18,low($100-((A/B)*(C/D)));
LDI R19,high($100-((A/B)*(C/D)))
;в результате R18=0x00 R19=0x01
LDI R18,low($100-((C/D)*(A/B)));
LDI R19,high($100-((C/D)*(A/B)))
;в результате R18=0x00 R19=0x01
Почему 2*3=6,а 3*2=5

?????????????????
Механизм получения правильного результата мне пока не ясен, может кто объяснит юзьверю

?