我正在CA65中执行一个6502项目,我很难理解其中的一些指令。
我想要做的是定义一个段,就好像它在内存的另一部分中一样,这样代码的所有寻址就好像它在编译时已经在该内存段中一样,但是它将与主程序一起加载,并且需要在加载后移动到位置。对于这些旧机器来说,这是一个非常基本的模型,但我在获得段命令中的定义指令以正确工作时遇到了困难。
因此,我在cfg文件中创建了一个名为MYMEM的内存定义,作为程序实际加载的外部位置,可以这样说:
MEMORY{
.
.
MYMEM start = $1000, size =$0200
.
}然后我创建了一个名为MYMEMSEG的片段
SEGMENTS{
.
.
MYMEMSEG: load=MYMEM, type =rw, define=yes;
.
.
}然后我尝试访问它声称创建的_ _MYMEMSEG_LOAD__或_ _MYMEMSEG_RUN__或_ _MYMEMSEG_SIZE__值,但它们都是未定义的.生成的地图文件中没有包含MYMEM或MYMEMSEG的任何内容.我在这里有什么不懂的?
发布于 2015-12-19 11:53:03
我认为链接器会导出它们,但是您的代码必须导入它们:
.import __MYMEMSEG_LOAD__, __MYMEMSEG_SIZE__https://stackoverflow.com/questions/34359940
复制相似问题