我有一个关于atmega328p中堆栈指针变化的问题。假设我正在写这样的程序:
example:
; save stack pointer to X register
in r26, SPL
in r27, SPH
push r16
push r17
push r18
…
out SPL, r26
out SPH, r27
ret
问题是,out指令不会改变SPL和SPH寄存器。我可以直接更改这些寄存器,还是只能通过其他指令更改(push,pop,call ...)?我发现,在重置时我可以初始化它们,但仅此而已......