- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试为 ARM cortex A9 实现一个反汇编程序,它实现了 ARMv7 指令集。
为此,我正在使用可以在此处下载的手册“DDI0406C_b_arm_architecture_reference_manual.pdf”(在 arm 网站上注册后):
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html
在本手册中,在 A8.8 部分的指令详细信息中,我不明白为什么一条指令有多种编码(如 A1、A2、...),似乎都是用 ARMv7 实现的。
此外,由于 ARM cortex A9 使用了 thumb-2,它是否也实现了 A1/A2/... 编码,还是仅实现了 T1/T2... ?
我真的阅读了本手册的所有部分都与编码相关,但我仍然不明白我们如何知道程序使用了哪种编码。
最佳答案
指令的不同编码在功能上做不同的事情。
使用不同编码的一个例子是 A8.9.12 ADR
This instruction adds an immediate value to the PC value to form a PC-relative address, and writes the result to the destination register.
如果指令编码为A1
如果被编码为A2
,则偏移量必须被解释为零或正数。那么偏移量是负的。
另一个例子是A8.8.132 POP
If the list contains more than one register, the instruction is assembled to encoding A1. If the list contains exactly one register, the instruction is assembled to encoding A2.
我可以想象不同的POP
出于性能原因,可能会创建编码以创建不同的微代码。
对于您问题的第二部分,Cortex-A9 是 ARMv7-A 架构 CPU,它支持您所指的手册中指定的所有指令。也许你还应该阅读 Cortex™-A9 Technical Reference Manual .
关于encoding - 为什么 ARMv7 中的一条指令有多种编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107929/
我的应用程序有问题。我收到 7 个 Apple Mach-O 链接器错误。以下是错误: Undefined symbols for architecture armv7: "_OBJC_IVAR_
我是一名优秀的程序员,十分优秀!