![]() |
1
2
十六进制是人类可读的序列化形式(例如,用于打印到控制台)。 整数也是对位的一种解释,例如,无符号对有符号。
在内部,计算机将所有内容存储为二进制位字符串。所以,
解释并不是由寄存器本身决定,而是由使用它的程序在其机器代码的指令序列中编码。 在 Instruction Set Architecture ,所有可用的状态资源,如CPU寄存器,都必须从指令的角度来看待,因为它们本质上是访问(处理器和内存)状态的唯一方式。 因此,如果指令集允许取消对寄存器的引用,那么可以合理地使用它来保存地址或指针。如果指令集支持寄存器的乘法,它可能合理地保存一个索引、一个有符号整数或一个无符号整数。
如果指令集不支持某些操作(例如,x86不支持
所以,为了理解如何编码
|
![]() |
2
1
调用约定只为更广泛的类型引入“隐藏”引用(即使C语义是按值传递的,也要传递指针)。
这毫无意义,这些都不是替代品。十六进制是数字(尤其是二进制数字)的文本序列化格式。 十六进制是打印值或指向值的指针的有用方法。 寄存器中的数字从来都不是十六进制的,但是十六进制对于调试器这样的工具来说是一种有用的方法 打印 这样人类就可以看到它们了。 如果一个数字 存储在十六进制中,它将占用两倍的空间:字符串所表示的数字的每4位半字节一个ASCII十六进制数字。 |