ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
329830 Топик полностью
fk0, легенда (21.05.2012 22:52 - 23:02, просмотров: 149) ответил MegaJohn на Лень профессиональный асм изучать. Вот такой пропусти-ка. И сообщи результат в циклах. Для AVR+IAR-speed optimize у меня получилось. v1 = 285200 циклов ! v2 = 2813, v3 = 1403
Если ты не знаком с асмом x86 и не умеешь написать hello world в debug.exe то о чём вообще говорить? А проблема как всегда в ассемблерах. Микрочиповский компилятор (ещё то говно) тоже выкидывает strlen нафиг. Я не поленился и AVR-GCC проверил. Выкидывает! Более того, у него strlen вовсе инлайнится. КАКИМ ГОВНОМ ТЫ КОМПИЛИРУЕШЬ, А? f: /* prologue: function */ /* frame size = 0 */ mov r22,r24 mov r23,r25 mov r26,r24 mov r27,r23 mov r30,r26 mov r31,r27 ld __tmp_reg__,Z+ tst __tmp_reg__ brne .-6 sbiw r30,1 mov r24,r30 mov r25,r31 sub r24,r26 sbc r25,r27 mov r26,r24 mov r27,r25 ldi r18,lo8(0) ldi r19,hi8(0) ldi r20,lo8(0) ldi r21,hi8(0) rjmp .L2 .L4: mov r30,r22 mov r31,r23 add r30,r18 adc r31,r19 ld r24,Z sbrs r24,0 rjmp .L3 subi r20,lo8(-(1)) sbci r21,hi8(-(1)) .L3: subi r18,lo8(-(1)) sbci r19,hi8(-(1)) .L2: cp r18,r26 cpc r19,r27 brlo .L4 mov r24,r20 mov r25,r21 /* epilogue start */ ret
[ZX]