Board logo

标题: 程序中建的表格在ROM范围之内 [打印本页]

作者: zhaopengyou    时间: 2009-6-25 10:57     标题: 程序中建的表格在ROM范围之内



程序中建的表格在ROM范围之内,并且程序语句占用空间也在ROM范围内,但编译时却报错:Program code is too large!原因可能出现在哪?
作者: zhaopengyou    时间: 2009-6-25 10:57


请注意“MOV A, OFFSET TAB_Address+Num”语句的使用。譬如TAB_Address是程序中所建立的表格的首地址,如果该表整体都在ROM范围内,而当TAB_Address+Num(Num是程序员自己定的一个地址偏移量)指向的地址却超出了ROM空间时,就会出现题目中所说的报错。
这一点很容易被忽略,所以要慎用“MOV A, OFFSET TAB_Address+Num”语句。建议用下面两语句来代用:
作者: zhaopengyou    时间: 2009-6-25 10:58


请注意“MOV A, OFFSET TAB_Address+Num”语句的使用。譬如TAB_Address是程序中所建立的表格的首地址,如果该表整体都在ROM范围内,而当TAB_Address+Num(Num是程序员自己定的一个地址偏移量)指向的地址却超出了ROM空间时,就会出现题目中所说的报错。
这一点很容易被忽略,所以要慎用“MOV A, OFFSET TAB_Address+Num”语句。建议用下面两语句来代用:

MOV A, OFFSET TAB_Address
ADD A, Num
。。。(后面再视情况而定做ADD算法是否溢出的判断,作相应处理)
则不会出现这种错误,因为表地址TAB_Address是否在ROM范围内能很容易发现






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0