寄存器是算术计算操作数的唯一来源吗?

问题描述

(1) 我想知道寄存器是不是唯一可以进行算术计算的地方? 看起来像: add BYTE PTR [var],10 — add 10 to the single byte stored at memory address var 语法也正确,有隐式寄存器吗?

(2) CMP 指令怎么样, register 是唯一可以发生这条指令的地方吗?

(3) POP 指令怎么样,栈值是否也弹出到一个隐式的非易失性寄存器中?

(4) 非易失性寄存器的值必须与函数一起保存,这样理解正确吗?在函数内部,它使用 RSI 寄存器从堆栈中获取值。是否需要保留该值?也就是说,RSI寄存器只能被这个函数使用一次?

(5) 如果函数改变了非易失性寄存器的值,它是否可以在堆栈或另一个寄存器中保留先前的值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)