一点点,很多人都知道了。欢迎了解的人增加补充。
EMC软件编程的TBL指令一旦后面所跟的表格出界,会出现错误,但编译不会报错,而且有时错误不容易查出来。一般来说都是把表格之类的东西放在每个PAGE的最前面。但有时也会用到TBL作为程序分支的跳转,会出现在程序中间,可以加上些伪指令在头文件里,这样TBL就可以放在程序当中了,如果一旦过界,编译时会报错的。这个也是我从示例程序中看到的。
TableStart macro
_TabLoc var $/256
endm
TableEnd macro
_TabTmp var $/256
if _TabTmp != _TabLoc
message "Table out page"
_TabErrLocL var $%0x400
_TabErrLocH var $/0x400
endif
_TabLoc var 1000
endm
上面的放在头文件里。
应用,例如:
TBL
TABLESTART
JMP HOUR_DOWN
JMP MINUTE_DOWN
JMP MONTH_DOWN
JMP DATE_DOWN
JMP YEAR_DOWN
TABLEEND
这段程序如果TABLESTART和tableend之间越界,编译时会提示“Table out page”
文章评论(0条评论)
登录后参与讨论