程序中建的表格在ROM范围之内,并且程序语句占用空间也在ROM范围内,但编译时却报错:Program code is too large!原因可能出现在哪?
作者: admin 时间: 2008-6-3 14:42
请注意“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范围内能很容易发现。