在逆向的过程中,大家应该经常听到寄存器、内存这两个概念,所以就简单的归纳了一下。对于逆向过程中,以下的知识差不多够我们使用了。如果想要了解的更深一点,各位只能查阅相关书籍了。
概念
寄存器
是CPU上的一部分,有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址
内存
是挂在CPU外面的数据总线上的,访问内存时要在CPU的寄存器填上地址,再执行相应的汇编指令,这时CPU会在数据总线上生成读取或写入内存数据的时钟信号,最终内存的内容会被CPU寄存器的内容更新(写入)或被读入CPU的寄存器(读取)
区别
读取速度寄存器(register)最快,内存其次,最慢的是硬盘。
- 原因一:距离不同
距离不是主要因素,尤其针对手机。内存离CPU比较远,所以要耗费更长的时间读取。
- 原因二:工作方式不同
寄存器的工作方式很简单:
(1)找到相关的位
(2)读取这些位
内存的工作方式就要复杂得多:
(1)找到数据的指针。(指针可能存放在寄存器内,所以这一步就已经包括寄存器的全部工作了)
(2)将指针送往内存管理单元(MMU),由MMU将虚拟的内存地址翻译成实际的物理地址。
(3)将物理地址送往内存控制器(memory controller),由内存控制器找出该地址在哪一根内存插槽(bank)上。
(4)确定数据在哪一个内存块(chunk)上,从该块读取数据。
(5)数据先送回内存控制器,再送回CPU,然后开始使用。