我不知道这是否是一个愚蠢的问题,但我找不到任何答案。
随着 CPU 架构的演进,寄存器的大小从 8 位扩展到 16 位、32 位,最后是 64 位。我想知道是否有任何方法可以访问寄存器的较高部分。
下面是一个关于rax64 位寄存器及其后续划分的示例:
6                              3               1 
4                              2               6       8       1
+------------------------------+---------------+-------+-------+
|                             rax                              |
+------------------------------+---------------+-------+-------+
            (???)              |              eax              |
                               +---------------+-------+-------+
                                     (???)     |       ax      |
                                               +-------+-------+
                                               |  ah   |   al  |
                                               +-------+-------+
ax通过分别引用ah和 ,可以轻松访问 的较高部分和较低部分al。但是我找不到任何关于更高部分rax和eax更高部分的参考。(用 表示(???))
- 是否可以访问 32 位和 64 位寄存器的较高部分?如果有,是哪些?
 - 假设不可能,这背后的原因是什么?
 
注意:我说的是直接访问这些字节,我不是要求可以检索它们的指令序列。