[免费]Armv8-A网上研讨会资料

微信公众号: mindshare思享


几年前我为公司做了一个Armv8-A网上研讨会,现和大家分享相关资料。

https://community.arm.com/cn/f/discussions/6103/armv8-mp4 

Slides



QA


  1. 关于ARMv8概述最好的的文档是哪个?

ARM的官方网站ARMv8-A架构的页面上有一些介绍性的讲义和白皮书,你可以免费下载:http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php?tab=ARMv8+Resources


 2.为ARMv7-A编译的程序是否能运行在ARMv8-A处理器上?

当ARMv8-A处理器运行在AArch32执行状态时,它向后兼容ARMv7-A,所以软件可以直接运行而不需要修改。系统软件可能需要做些许修改来适应系统的配置管理方法。


  3. 如果w0和x0是零寄存器,就有w0到w30寄存器,那么好像只有30个通用寄存器(例如 w1到w30), w31和x31存在吗?

W0和X0不是零寄存器,这是比较容易混淆的。他们只是一般的通用寄存器。寄存器31在指令编码里可以用来编码零寄存器和堆栈指针,到底用作哪一个取决于具体指令。所以有31个通用寄存器, X0-X30(或W0-W30),寄存器31的编码是预留的。

X0/w0是一般通用寄存器(虽然你可能会混淆),零寄存器引用为xzr或wzr。

所以有一共有31个通用寄存器(x0-x30/w0-w30)和零寄存器(xzr/wzr)。


4.有什么办法我们写64位的代码但编译器可以理解并直接转换成32位代码?

你可能知道,用高级语言写的软件可以编译成32位或64位执行代码,没有一个自动转换工具可以转换32位和64位的汇编代码。


5.请你重复一下为什么EL2在Secure状态下没有?

EL2通常是用来支持虚拟化,我们认为在现实中虚拟化和安全状态需要保持软件简单的要求是不符的.


猜你喜欢

转载自blog.csdn.net/weixin_39366778/article/details/80494999