【发布时间】:2018-04-03 04:51:44
【问题描述】:
嗨。
我正在研究使用stm32f103vb板和keil uVision4的微处理器。
该代码只是练习,但我不知道红色框中的 {pc}+2 是什么意思。
ADR 指令加载地址 0x08000338,因此它不等于 [pc, #2]。
大括号是什么意思???请帮帮我~
【问题讨论】:
标签: disassembly keil
嗨。
我正在研究使用stm32f103vb板和keil uVision4的微处理器。
该代码只是练习,但我不知道红色框中的 {pc}+2 是什么意思。
ADR 指令加载地址 0x08000338,因此它不等于 [pc, #2]。
大括号是什么意思???请帮帮我~
【问题讨论】:
标签: disassembly keil
一般来说,[pc+offset]表示指令指针,或PC(程序计数器)相对寻址。
它用于在普遍支持 PIC 的操作系统中的位置无关代码。例如,Linux 支持 PIC,但 Windows 上的规范是放弃 PIC 以支持 PDC。
在您的情况下,看起来 r2 正在接收比当前指令 (ADR) 提前 2 个单位的地址。
【讨论】: