Skip to content

Commit

Permalink
Refine example doc
Browse files Browse the repository at this point in the history
  • Loading branch information
jondy committed Jan 29, 2022
1 parent 0db2b4f commit a7ff8f2
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions docs/foreground.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ Python 相关源代码直接转换
和 GDB 进行通信(可能需要使用 Python 写一个 GDB 的扩展模块),获得内存,数据类型
等相关信息。

3. 汇编指令的学习
3. 汇编(AARCH64)指令和Armv8内部工作原理的学习

例如 aach64 的指令 BFC 有着复杂奇怪的操作,看文档 《Arm Architecture Reference
例如 aarch64 的指令 BFC 有着复杂奇怪的操作,看文档 《Arm Architecture Reference
Manual Armv8, for Armv8-A architecture profile》里面的指令解释也很不容易搞明白,
如果自己写一段汇编指令,然后编译运行的话,需要写主程序,写打印指令,然后不停的修
改和尝试各种参数,是个很麻烦的过程。
Expand All @@ -90,6 +90,12 @@ Manual Armv8, for Armv8-A architecture profile》里面的指令解释也很不
能的方式是还可以询问代码帮,如何把最高位清0,代码帮可以给出指令或者回答无法实现
等,这就是代码帮的优势所在。

同时代码帮可以显示各个指令的具体工作原理,例如 dc, ic, tlbi, dsb,isb 等究竟是怎
么工作,错误的使用导致什么结果。这些都可以通过 aarch64 架构的各种组成部分 PE,
Cache,TLB,内存,寄存器等的变化过程,使用动画形式直观的看到。也还可以询问代码帮
在不同情况下应该使用什么指令,例如切换 HCR.VM 从 0 到 1,应该使用那些缓存/TLB的
管理指令等,这就是人工智能部分。

4. 重定位的工作原理学习

装载动态库需要进行重定位,不同的架构有着不同的重定位类型和方式,如何了解这些重定
Expand Down

0 comments on commit a7ff8f2

Please sign in to comment.