这个问题要从汇编语言和机器语言的层面去解释。
处理器的PC指针从程序存储空间中取出指令,逐条翻译,用逻辑电路逐条运算指令。
汇编指令由操作码和操作数组成,PC指针除了读取操作码,由操作码决定功能之外,还可以需要从数据存储空间中读取操作数进行运算。
以寻址指令为例,分为直接寻址,间接寻址以及立即数寻址。
直接寻址是操作数就是数值所在的存储空间的地址,PC指针读取操作数之后,从该操作数所指定的数据存储空间读取数值,间接寻址是指操作数所在存储空间的数据仍然是一个地址,从该地址读取数值。
立即数寻址是指操作就是数要进行运算的数值。
我想程序中的常量应该是通过汇编语言中的立即数寻址获取的数值。
所以常量的操作涉及到两个地址,
另一个是特殊功能寄存器的地址。
变量是存储在数据存储空间,或者是占用一部分的程序存储空间进行存储(const变量) 。
对变量的取址获取的是数据存储空间或者程序存储空间的地址。
取变量的地址之后,可以通过地址采用间接寻址等指令进行查表等操作。
可以大大提高程序效率,是非常有意义的。