马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
(9)EXTERN EXTERN伪操作告诉编译器当前的符号不是在本源文件中顶一顶,而是在其他源文件中顶一顶,在本源文件中可能引用该符号。这与IMPORT伪操作的作用下相同,不同之处在于,如果本源文件没有实际引用该符号,该符号都将不会被加入大本源文件的符号表中。 语法格式 EXTERN symbol {[WEAK]} 其中:symbol为声明的符号的定义,它是区分大小写的。[WEAK]指定该选项后,如果symbol在所有源文件中都没有被定义,编译器也不会产生任何错误信息,同时编译器将会报告错误。如果链接器在链接处理时不能解析该符号,而EXTERN伪操作中指定了[WEAK]选项,则链接器将不会报告错误,而是进行下面的操作: 如果该符号被B或者BL指令引用,则该符号被设置为下一条指令的地址,该B或者BL指令相当于一条NOP指令。 其他情况下该符号被设置为0. (10)GET及INCLUDE GET伪操作将一个源文件包含到当前源文件中,并将被包含的文件在其当前位置进行汇编处理。INCLUDE是GET的同义词。 语法格式 GET filename INCLUDE filename 其中:filename为被包含的源文件的名称。这里可使用路径信息。注意路径信息中可包含空格。 使用说明 通常可在一个源文件中定义宏,用WQU定义常量的符号名称,用MAP和FIELD定义结构化的数据类型,这样的源文件类似于c语言中的.h文件。然后用GET伪操作将这个源文件包含到它们的源文件中,类似于在C源程序的“include *.h”。 编译器通常在当前目录中查找被包含的源文件。可使用编译选项-Ⅰ添加其他查找目录。同时,被包含的源文件中也可使用GET伪操作,即GET伪操作可嵌套使用。如在源文件A中包含了源文件B,而在源文件B中包含了源文件C,编译器在查找C源文件时,将把源文件B所在的目录作为当前目录。 GET伪操作不能用来包含目标文件。包含目标文件需要使用INCBIN伪操作。 示例41 GET伪操作举例 AREA Example,CODE,READONLY GET file ;包含源文件file.s GET c:\project\file2.s ;包含源文件file2.s,可包含路径信息 GET c:\windowsproject\file3.s ;包含源文件file3.s,路径信息中可包含空格 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |