все подобные ассемблерные холивары и убедиться, что разводят их исключительно люди, не писавшие на Си для МК довольно спорное утверждение. это мог сказать человек не умеющий писать на асме либо что я делаю не так предупреждаю , это моё хобби. делаю поделки для своих нужд , а их у меня....вагон
для примера - три константы double k1, k2, k3. нужно k1 разделить на k2 и результат сравнить с k3. проц - авр
тупо на асме:
.equ k1 = 0xAAAAAAAA
.equ k2 = 0xBBBBBBBB
.equ k3 = 0xCCCCCCCC
ldi r23,byte4 (k1)
ldi r22,byte3 (k1)
ldi r21,byte2 (k1)
ldi r20,low (k1)
ldi r19,byte4 (k2)
ldi r18,byte3 (k2)
ldi r17,byte2 (k2)
ldi r16,low (k2)
call div32 // r20...r23 = r20...r23 / r16...r19
cpi r20, low ,(k3)
cpc r21, byte2,(k3)
cpc r22, byte3,(k3)
cpc r23, byte4 (k3)
а если подумать то запись станет намного проще: вместо 13-ти строк кода всего четыре:
//************* double dE *****************
.def de_0 = r16 // word E0
.def de_1 = r17
..........................
.def de_2 = r18 // word E1
.def de_3 = r19
//************* double dF *****************
.def df_0 = r20 // word F0
.def df_1 = r21
..........................
.def df_2 = r22 // word F1
.def df_3 = r23
//******************************************
.equ k1 = 0xAAAAAAAA
.equ k2 = 0xBBBBBBBB
.equ k3 = 0xCCCCCCCC
// + макросы
ldi_d dF, k1
ldi_d dE, k2
div_d // dF = dF / dE
cpi dF, k3
il-2 и насколько эта запись длиннее-нечитабельней сишной?
причём серия макросов оформлена инклудом для 16-ти , 32-х и 48-ми битной signed и unsigned ариметики + пересылки, логические операции и тд. для всех видов разрядности.