我有两个简单但可能棘手的问题。假设我有汇编指令:MOV EAX,[ebx + 6 * 7] - 我好奇的是,这个指令是否真正地被转换为操作码,因此括号中的代码计算被编码为操作码,还是这只是编译器的伪指令,而不是CPU,因此编译器在使用add mul等计算出括号中的值后,将结果存储在某个寄存器中,然后使用MOV EAX,reg来使用计算出的值?只是为了明确,我知道输出将是相同的。我对执行感兴趣。
第二个问题是关于LEA指令的。我知道它的作用,但我更想知道它是否是真正的指令,所以编译器不会进一步更改它,只是按照原样将其转换为操作码,还是编译器只是将其视为伪代码,并首先计算地址,然后将其存储。
第二个问题是关于LEA指令的。我知道它的作用,但我更想知道它是否是真正的指令,所以编译器不会进一步更改它,只是按照原样将其转换为操作码,还是编译器只是将其视为伪代码,并首先计算地址,然后将其存储。