ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
35333 Топик полностью
DASM (13.07.2005 08:42, просмотров: 1) ответил DASM на мдя :-( Multi для сдвига влево сдвинул младшую часть на 31 бит вправо и сделал OR потом. То есть внагляк как на С бы мы написали. А это раньше был лучший компилятор. IAR сделал тоже, но использовал блоковые пересылки и показал лучшую оптимизацию по размер
Ответ:я расстроен :-( <PRE> volatile long long l; for (;;) { l:= l shl 1; // нихера у генерала PRE не пашет } IAR LDR R0,??main_0 ;; l 55 { 56 for (;;) 57 { 58 l:= l shl 1; \ ??main_1: \ 0000000C 0C0090E8 LDMIA R0,{R2,R3} \ 00000010 8330A0E1 MOV R3,R3, LSL #+0x1 \ 00000014 A23F83E1 ORR R3,R3,R2, LSR 0x1F \ 00000018 8220A0E1 MOV R2,R2, LSL #+0x1 \ 0000001C 0C0080E8 STMIA R0,{R2,R3} \ 00000020 F9FFFFEA B ??main_1 Почему они сложениt не юзают ? Мой вариант test: ldr r0, llintaddr loop ldmia r0, {r2,r3} adds r2, r2, r2 adc r3, r3, r3 stmia r0, {r2,r3} b loop Может ошибка у меня ? </PRE>