0x9*_*x90 0 assembly gcc arm inline-assembly
装配臂中的这条线有什么作用?
mrc p15, 0, %0, c9, c13, 0" : : "r" (counter)
Run Code Online (Sandbox Code Playgroud)
谁p15不是它应该是r15什么?
what is ::who arec9, c1每个论点的作用是什么?
虽然MRC是通用协处理器互操作指令, cp15但控制处理器是所有现代 ARM CPU 所拥有的,ARM 已使用它是一种扩展片上单元(如缓存、MMU、性能监控等等。
一次接受你的指示:
mrc p15, 0, %0, c9, c13, 0" : : "r" (counter)
根据ARM Cortex A7 MPCore 参考,指令格式为:
MRC{cond} P15, <Opcode_1>, <Rd>, <CRn>, <CRm>, <Opcode_2>
在第 4-11 页,这被描述为将 CPU 寄存器传输到性能监视器计数寄存器(我猜count=0这是性能计数器的重置)。
至于内联汇编器的语法。请参阅此以获取 x86 概述 - 这可能类似于 ARM。
这: : "r" (counter) 意味着该指令具有:
counter,并且它所在的寄存器应该用作%0.