printf("Addr %08x\n",*((unsigned int *)164));*((unsigned int *)164) = 12;asm volatile ("dmb");printf("Addr2 %08x\n",*((unsigned int *)164));printf("Addr3 %08x\n",*((unsigned int *)164));
Addr 0008080dAddr2 0000000cAddr3 0000000c
Addr 0008080dAddr2 0000000cAddr3 0008080d
Addr 0008080d Addr2 0008080d Addr3 0008080d
r0 = "Addr1.." r1 = [164] BL printf // r0 = "Addr1...", r1 = [164] r1 = 12; [164] = r1; dmb r0 = "Addr2..." BL printf // r0 = "Addr2...", r1 = 12 r0 = "Addr3..." r1 = [164] BL printf // r0 = "Addr3...", r1 = [164]