肯定不是有多个寄存器的单片机,比如除了累加器外还有偏移寄存器,实现就非常简单。
LDX a
LDY b
TAX b
TAY a
只要四条汇编指令就可以实现,但这肯定不是我们所说的方法。
来看看真正的代码。
LDA x表示将变量x的内容装入累加器
XOR x表示累加器的内容与变量x的内容进行异或
STA x表示将累加器的内容存进变量x
具体代码,假定是交换a,b两变量,初始内容为a0,b0
累加器内容 a变量内容 b变量内容
LDA a ; a0 a0 b0
XOR b ; a0^b0 a0 b0
STA a ; a0^b0 a0^b0 b0
XOR b ; a0^b0^b0=a0 a0^b0 b0
STA b ; a0 a0^b0 a0
XOR a ; a0^a0^b0=b0 a0^b0 a0
STA a ; b0 b0 a0