各位先進好,
小弟最近剛使用Coretex-M0,有很多不懂的地方,剛剛試著對記憶體某個位置+0x4C的offset的做寫入的動作.
觀察他編譯後的結果,我發現很奇怪的地方.編譯後結果如下.
MOVS r0,#1
LDR r1,|L1.28|
ADDS r1,r1,#0x40
STR r0,[r1,#0xc]
另小弟不解的是,為什麼編譯還需要多一行 ADDS r1,r1,#0x40的動作,而不直接STR r0,[r1,#0x4c]呢?
好像offset超過0x42後,都會多這麼一行的指令.
是否有人能幫忙小弟解惑??
非常感謝大家了~~~ |