作业帮 > 数学 > 作业

lea eax [esi+esi*2] 的意思

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/08/18 02:10:34
lea eax [esi+esi*2] 的意思
2.INTEL指令集中不存在很多RISC机器所具有的三操作数算术运算指令,比如像ARM的"add r0,r1,r2",而LEA指令恰好提供了同样的功能,以模拟“三元算术逻辑指令”.
举个例子,要计算两个寄存器的和,但又不想破坏原来的值,那么可以执行lea ebx ,[eax+edx],这条指令,执行的就是 ebx = eax + edx 这条加法运算.如果用add指令,则不可能一条指令内完成.
3.在汇编语言程序设计中,在需要取得一个变量地址时,使用LEA是很方便的.而MOV指令则常常出错,因为在微软MASM汇编语法中,label和variable是不同的.
请问怎么样区分 是逻辑3元运算 还是取地址呢
lea eax [esi+esi*2] 的意思
这条指令就是计算地址,基地址时esi,偏移是esi*2,所以结果是esi+2*esi,也就是3*esi,该指令也可以认为是实现了 eax = 3 * esi 的运算.
再问: 请问要怎么样区分是 三元运算 还是 取地址呢 谢谢
再答: 这个就看编程者的具体意图了,如果是别人写的程序,那就需要读程序的人来揣摩他的意图了。如果从上面这条指令看,我觉得为了实现乘3的运算。