arm小知识
1、
LDR r, label 和 LDR r, =label的区别:
LDR r, =label 会把label标号的地址值加载到寄存器中,该值是绝对地址值,在编译时确定的;而LDR r, label会把label当做地址,把label指向的地址中的值加载到寄存器中。
ADR r, label 会把label标号的相对地址读入寄存器r,注意它是位置无关的,取的是相对的位置。
譬如 label的值是 0x8000, LDR r, =label会将 0x8000加载到寄存器中,而LDR r, label则会将内存0x8000处的值加载到寄存器中,ADR r, label会根据运行情况确定r的值
2、
.表示当前指令行(地址)
B .表示一直在当前指令处原地跳转,也就是死循环。