Keil 汇编asm/A51多个文件

最近在使用keil写51单片机(用汇编),代码比较多,想分成多个asm文件进行编译,这样能实现模块化。如果是c语言,就很简单,直接分成多个.c文件就行了。但是在纯汇编工程里面,还是有一些需要注意的地方。


首先,代码空间(CODE SPACE)中,代码可以分为很多代码节(CODE SEGMENT)。代码节与代码节之间不能重叠。使用CSEG伪指令可以指定代码节的位置。与ORG伪指令不同,CSEG是指定某个代码节的位置,而ORG是指定代码在某个代码节中的位置。CSEG的用法详见Keil的帮助文档CSEG Assembler Statement


而对于每个.asm(.A51)文件,代码节默认是从0000H开始的。因此如果有多个asm文件,即使第一个文件加了ORG 0000H,第二个文件加了ORG 1000H,链接的时候还是会报错:


WARNING L5: CODE SPACE MEMORY OVERLAP 
 

你可能感兴趣的:(Keil 汇编asm/A51多个文件)