堆栈指针在运行时更改

时间:2017-07-11 19:17:45

标签: assembly arduino avr

我有一个关于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 ...)?我发现,在重置时我可以初始化它们,但仅此而已......

0 个答案:

没有答案