вот ;;;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 }