我在一个有几个字节空闲 RAM 的专有序列器上工作;数百个字节静态分配;8个寄存器,包括PC;没有间接性(在 C 中,一个“指针”);没有堆栈。
没有MOV
说明:要M
进入K
,您必须编写CLX A; ORX M; STX K
使依赖关系解析或至少优化变得非常复杂的内容。K
许多操作只对特定的寄存器起作用:例如,在高位字和M
低位字中使用 32 位右移。
所以对我来说,嵌入式应用程序明显选择 C 是因为没有指针或函数调用是可能的。大多数高级编程语言都有算术表达式,因此这无助于缩小我们的选择范围。
最重要的是绝对最小代码大小,因此优化是关键。
我倾向于将 Lisp 表达式编译为宏汇编程序的一种形式,因为程序员可以优化自己的高级操作,例如编写XOR
指令。
我敢肯定这不是第一个有这些限制的项目。过去是如何解决的?