如何在 68hc11 的程序集中创建一个数组?

How to create an array in assembly for 68hc11?

我需要编写一个从 100 美元开始执行的程序,以 800 美元分配一个 200 字节的数组,并用值 200、199、... 1 初始化该数组。

我需要知道如何创建一个循环来递减数组,同时递减要存储在数组中的值。

有什么想法或建议吗?我找不到该处理器的大量示例代码。

ORG  0

      LDAA #200
      STAA #0
      DECA
      BNE  

如果您在地址 $800 处有内存,只需使用 68HC11 的指令在此处写入和读取数据。您不需要以某种特殊方式声明数组。

只有一个例外 - 如果您的 CPU 运行某个操作系统,它会自行管理 RAM 内存。然后你需要调用一些 OS 函数来分配所需的内存。但是这个过程与汇编编程无关。只需阅读 OS(如果有)的文档。

Vreset              equ       $FFFE
RAM                 equ       0
ROM                 equ       0

ARRAY_SIZE          equ       200

                    org       RAM

array               rmb       ARRAY_SIZE

                    org       ROM

Start               ldx       #array
                    ldaa      #ARRAY_SIZE
Loop                staa      ,x
                    inx
                    deca
                    bne       Loop

                    bra       *

                    org       Vreset
                    dw        Start