ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
1205857
IBAH (05.05.2022 14:58, просмотров: 1812) m16
Почему ИАР такой тупой? или я ? 

Вот такая конструкция, оптимизация максимум по скорости

*

static unsigned short TxHead,TxTail;//статик на уровне модуля, не волитейт


363              if(TxHead==TxTail) {return;}
   \   0000000A   0x....             LDR      R1,??DataTable12
   \   0000000C   0x884A             LDRH     R2,[R1, #+2]
   \   0000000E   0x888C             LDRH     R4,[R1, #+4]
   \   00000010   0x42A2             CMP      R2,R4
   \   00000012   0xD018             BEQ      ??DMA1_Channel4_5_6_7_IRQHandler_0
    364              
    365              
    366              if(TxHead>TxTail)
   \   00000014   0x....             LDR      R3,??DataTable12_1
   \   00000016   0x888C             LDRH     R4,[R1, #+4]
   \   00000018   0x191C             ADDS     R4,R3,R4
   \   0000001A   0x....             LDR      R3,??DataTable12_4  ;; 0x40020084
   \   0000001C   0x2500             MOVS     R5,#+0
   \   0000001E   0x888E             LDRH     R6,[R1, #+4]
   \   00000020   0x4296             CMP      R6,R2
   \   00000022   0xD205             BCS      ??DMA1_Channel4_5_6_7_IRQHandler_1
*


почему дважды делает проверку (CMP)?! зачем повторно загружает переменные