Как правильно управлять стеком при использовании PEA?

Последние пару недель я медленно изучал 65816, и, полагаю, меня ждут несколько бомб замедленного действия, если я сейчас не устраню это в зародыше.

Пример макроса: (я знаю, что это сбивает регистры вызывающего абонента, и это нормально)

      .macro WriteText text, vram_dest, font_tile_id
    rep #$30 ; A/X/Y 16-bit

    lda #font_tile_id
    pha

    pea text

    lda vram_dest
    pha

    jsr WriteText_SR

    rep #$30

    ;?? Implement proper pulls to restore stack
    

.endmacro

Я знаю когда я pha, Мне нужно использовать тот же режим 8/16 бит, который я использовал, но я не уверен, что я должен делать, когда дело доходит до pea. Поскольку это «эффективный адрес push» и не связан с регистром, как мне восстанавливать стек? В настоящее время мой стек постепенно увеличивается, и я ожидаю, что он со временем разнесет все больше коллов, которые я делаю.

Я не видел 16-битного кода операции извлечения, который не касается регистров, я должен просто использовать pla, plx, ply и пусть это установит реестр?

0 ответов

Другие вопросы по тегам