ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
661949 Топик полностью
m16_home (21.03.2016 22:18, просмотров: 155) ответил il-2 на Дорогой imhoteb, можете поискать в интернете(и здесь на сахаре) все подобные ассемблерные холивары и убедиться, что разводят их исключительно люди, не писавшие на Си для МК. Или "попробовавшие"(т.е. которые не шмогли из-за своего личного
все подобные ассемблерные холивары и убедиться, что разводят их исключительно люди, не писавшие на Си для МК довольно спорное утверждение. это мог сказать человек не умеющий писать на асме либо что я делаю не так предупреждаю , это моё хобби. делаю поделки для своих нужд , а их у меня....вагон для примера - три константы 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 ариметики + пересылки, логические операции и тд. для всех видов разрядности.