Чт окт 24, 2019 18:04:38
unsigned int x;
x=0;
Buffer[x++]=GPIOB->IDR ;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;//10
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;//20
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
Buffer[x++]=GPIOB->IDR;
......
Чт окт 24, 2019 19:19:16
Чт окт 24, 2019 19:32:37
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
Чт окт 24, 2019 19:35:25
Чт окт 24, 2019 20:57:45
uint16_t arr[300];
const uint32_t idr = (uint32_t)&GPIOB->IDR;
asm("PUSH {R0, R1, R2}");
asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizacii-v-staticheskih-i-dinamicheskih-kompilyatorah-i-ih-primenenie-na-primere-gcc-llvm-javascriptdvizhkov.html
asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
asm("MOVT R1, %0" : : "n" (idr >> 16));
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
......
asm("POP {R0, R1, R2}");
Чт окт 24, 2019 21:00:46
Чт окт 24, 2019 21:32:16
Чт окт 24, 2019 22:08:08
Пт окт 25, 2019 08:24:13
Это зачем? В чём смысл? Читайте раздел про Calling conventions для своего компилятора.asm("PUSH {R0, R1, R2}");
Разве arr у вас внутри функции - в регистре?asm("MOV R2, %0" : : "r" (arr));
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizaci ... zhkov.html
asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
asm("LDRH R0, [R1]");
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.asm("STRH R0, [R2], #1");
Пт окт 25, 2019 12:19:10
asm("MOV R2, %0" : : "r" (arr));
Разве arr у вас внутри функции - в регистре?
ldr r3, [pc, #764]
mov r2, r3
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?
Сам синтаксис asm-оператора сделан так, чтобы в него включить весь код, на входе - загрузив все нужные регистры из переменных, на выходе - выгрузив в переменные. А между двумя соседними асм-операторами сохранность регистров не гарантируется.
И вообще - зачем использовать явно-указанные регистры R0,R1,R2? Синтаксис asm-оператора позволяет этого не делать избегая таким образом конфликтов с окружающим си-кодом.
И что такое "(idr & 0xFFFF)"? Зачем?
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.
И почему нет указания компилятору что данные асм-операторы обращаются к памяти? Читайте описание синтаксиса оператора asm!
STRH R0, [R2], #2
asm(
"PUSH {R0, R1, R2}\n"
"MOV R2, %0\n"
"MOVW R1, %1\n"
"MOVT R1, %2\n"
"LDRH R0, [R1]\n"
"STRH R0, [R2], #2\n"
.....
"POP {R0, R1, R2}"
: : "r" (arr), "g" (idr & 0xFFFF), "g" (idr >> 16)
);
Пт окт 25, 2019 15:26:20
inline u32 AtomicAnd(u32 volatile *ptr, u32 arg)
{
u32 r, i;
asm(
"p01: LDREX %0, [%2] \n"
" ANDS %1, %0, %3 \n"
" STREX %1, %1, [%2]\n"
" CMP %1, #0 \n"
" BNE p01 "
: "=&r"(r), "=&r"(i)
: "r"(ptr), "r"(arg)
: "cc", "memory");
i = i;
return r;
}
Пт окт 25, 2019 15:54:01
volatile uint16_t buf[1024];
template<unsigned N>
void inline Foo(volatile uint16_t *p) __attribute__((always_inline))
{
if constexpr (N)
{
*p++=*(volatile uint16_t *)&GPIOB->IDR;
Foo<N-1>(p);
}
}
int main()
{
Foo<50>(buf);
Foo<100>(buf+50);
Foo<100>(buf+150);
}
// 23 Foo<50>(buf);
LDR.W R2,??DataTable1 ;; 0x48000410
LDR.W R1,??DataTable1_1
LDRH R0,[R2, #+0]
STRH R0,[R1, #+0]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+2]
LDRH R4,[R2, #+0]
STRH R4,[R1, #+4]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+6]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+8]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+10]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+12]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+14]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+16]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+18]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+20]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+22]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+24]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+26]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+28]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+30]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+32]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+34]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+36]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+38]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+40]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+42]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+44]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+46]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+48]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+50]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+52]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+54]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+56]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+58]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+60]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+62]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+64]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+66]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+68]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+70]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+72]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+74]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+76]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+78]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+80]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+82]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+84]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+86]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+88]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+90]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+92]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+94]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+96]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+98]
// 24 Foo<100>(buf+50);
LDRH R3,[R2, #+0]
STRH R3,[R1, #+100]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+102]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+104]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+106]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+108]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+110]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+112]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+114]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+116]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+118]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+120]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+122]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+124]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+126]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+128]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+130]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+132]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+134]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+136]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+138]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+140]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+142]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+144]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+146]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+148]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+150]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+152]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+154]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+156]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+158]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+160]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+162]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+164]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+166]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+168]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+170]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+172]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+174]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+176]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+178]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+180]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+182]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+184]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+186]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+188]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+190]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+192]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+194]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+196]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+198]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+200]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+202]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+204]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+206]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+208]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+210]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+212]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+214]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+216]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+218]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+220]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+222]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+224]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+226]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+228]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+230]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+232]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+234]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+236]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+238]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+240]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+242]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+244]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+246]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+248]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+250]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+252]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+254]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+256]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+258]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+260]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+262]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+264]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+266]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+268]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+270]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+272]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+274]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+276]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+278]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+280]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+282]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+284]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+286]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+288]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+290]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+292]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+294]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+296]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+298]
// 25 Foo<100>(buf+150);
LDRH R3,[R2, #+0]
STRH R3,[R1, #+300]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+302]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+304]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+306]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+308]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+310]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+312]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+314]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+316]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+318]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+320]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+322]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+324]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+326]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+328]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+330]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+332]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+334]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+336]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+338]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+340]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+342]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+344]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+346]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+348]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+350]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+352]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+354]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+356]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+358]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+360]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+362]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+364]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+366]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+368]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+370]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+372]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+374]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+376]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+378]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+380]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+382]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+384]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+386]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+388]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+390]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+392]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+394]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+396]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+398]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+400]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+402]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+404]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+406]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+408]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+410]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+412]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+414]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+416]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+418]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+420]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+422]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+424]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+426]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+428]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+430]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+432]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+434]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+436]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+438]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+440]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+442]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+444]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+446]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+448]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+450]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+452]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+454]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+456]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+458]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+460]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+462]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+464]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+466]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+468]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+470]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+472]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+474]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+476]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+478]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+480]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+482]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+484]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+486]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+488]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+490]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+492]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+494]
LDRH R3,[R2, #+0]
STRH R3,[R1, #+496]
LDRH R0,[R2, #+0]
STRH R0,[R1, #+498]
Пт окт 25, 2019 17:02:20
Пт окт 25, 2019 17:08:31
Пт окт 25, 2019 17:14:56
Пт окт 25, 2019 17:18:32
Пт окт 25, 2019 17:21:07
Пт окт 25, 2019 17:23:53
Пт окт 25, 2019 17:25:04