ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1042431 Топик полностью
Aleksey_75 (06.10.2020 15:46, просмотров: 245) ответил Mahagam на не, меня интересует что в ассемблере будет
вот 
;;;102        #define BUF_SIZE    1024
;;;103        uint8_t buf[BUF_SIZE];
;;;104        uint32_t tmp = 0; 
000016  2400              MOVS     r4,#0
;;;105        
;;;106        static const info_t info[5] = 
;;;107        {
;;;108        {0x111111, 0x111112, 0x13, 0x14},
;;;109        {0x211111, 0x211112, 0x23, 0x24},
;;;110        {0x311111, 0x311112, 0x33, 0x24},
;;;111        {0x411111, 0x411112, 0x43, 0x34},
;;;112        {0x511111, 0x511112, 0x53, 0x44},
;;;113        };
;;;114        
;;;115        for (uint16_t i = 0; i < BUF_SIZE; i += sizeof(info_t))
000018  2000              MOVS     r0,#0
00001a  e015              B        |L1.72|
                  |L1.28|
;;;116        {
;;;117            tmp = ((info_t *)&buf[i])->adr; 
00001c  eb0d0100          ADD      r1,sp,r0
000020  6809              LDR      r1,[r1,#0]
000022  f021447f          BIC      r4,r1,#0xff000000
;;;118            tmp += ((info_t *)&buf[i])->id;
000026  eb0d0100          ADD      r1,sp,r0
00002a  7989              LDRB     r1,[r1,#6]
00002c  440c              ADD      r4,r4,r1
;;;119            tmp += ((info_t *)&buf[i])->size;
00002e  eb0d0100          ADD      r1,sp,r0
000032  f8d11002          LDR      r1,[r1,#2]
000036  eb042411          ADD      r4,r4,r1,LSR #8
;;;120            tmp += ((info_t *)&buf[i])->var;
00003a  eb0d0100          ADD      r1,sp,r0
00003e  79c9              LDRB     r1,[r1,#7]
000040  440c              ADD      r4,r4,r1
000042  f1000108          ADD      r1,r0,#8              ;115
000046  b288              UXTH     r0,r1                 ;115
                  |L1.72|
000048  f5b06f80          CMP      r0,#0x400             ;115
00004c  dbe6              BLT      |L1.28|
;;;121        }