CA65段存储器映射问题

时间:2015-12-18 16:28:11

标签: assembly 8-bit 6502 ca65

我正在CA65工作6502项目,我无法理解一些指令。

我想要做的是将一个段定义为在内存的另一部分中定义,以便该代码的所有寻址就好像它在编译期间已经存在于该段内存中一样,但它将是加载主程序,需要在加载后移动到位...这是这些旧机器的一个非常基本的模型,但我在段命令中使DEFINE指令无法正常工作。

所以我在cfg文件中创建了一个名为MYMEM的MEMORY定义,作为程序实际加载位置之外的位置,如下所示:

MEMORY{
.
.
MYMEM start = $1000, size =$0200
.
}

然后在我创建一个名为MYMEMSEG

的片段
SEGMENTS{
.
.
MYMEMSEG: load=MYMEM, type =rw, define=yes;
.
.
}

然后我尝试访问它声称它创建的_ _MYMEMSEG_LOAD__或_ _MYMEMSEG_RUN__或_ _MYMEMSEG_SIZE__值,但它们都是未定义的...生成的MAP文件中不包含MYMEM或MYMEMSEG的任何内容...所以我在这里不明白的是什么?

1 个答案:

答案 0 :(得分:3)

我认为链接器会导出它们,但您的代码必须导入它们:

- com.sidimi.mucahit.gaugeview.GaugeView (Fix Build Path, Edit XML, Create Class)