
本期内容是 Intel x86 架构中的寄存器
x86 对于 Intel 处理器来说是一个人们习惯的口头称谓,原因是第一个芯片被称为 8086 ,之后推出的芯片有 8186 ,8286 , 8386 等等。他们的共同点是都叫 XX86 , 所以人们称它为 x86 。x86 的特性不断发展,进化,不同的特性相互叠加,于是 x86 有时候被称为 CISC (Complex instrucation set computer) 。在 80 年代被称为 RISC (Reduced instrucation set computer)和 CISC 大战的年代, RISC 是一个相对较为新颖的想法。在这之前没有人给他们命名,但是 RISC 的开发人员将之前的处理器称作为 CISC ,具有明显的贬义含义。Intel 使用的是经典的 CISC 架构,这意味着它有很多复杂的特性。它的开发手册大约有两大本书,如果感兴趣的话可以去阅读 64-ia-32-architectures-software-developer-vol-1-manual 这个手册,没记错的话这个手册应该是有三卷的。大约有几千多条指令。(我光是想想就觉得头皮发麻了:< )
这里总共有 16 个寄存器,可以用来保存整数或者是指针。其中有一些是字母名称,有一些是数字名称。如果你使用它的 %r 开头的名称,你会得到 64-bit , 如果你使用 %e 开头的名称你会得到 32-bit 。但是这并不代变他们是两个不同的寄存器 ,%e 版本只是较大的 %r 实体的低32-bit 。实际使用的时候你还可以只用 16-bit 或者 8-bit 。关于这些寄存器的名称是历史遗留问题,因为当初他们被赋予了特殊的目的,通过这个名称表现。现如今这些名称已经无意义了,与他们的目的没有关系了。
本文分享自微信公众号 - 黑帽子技术(SNJYYNJY2020)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。