步骤 (2) 中若利用“mov 0x2,a",或“add 0x2,a" 等等指令来改变PC,则因为此等指令会將 PC (R2) 的位 8、9 清除 (在 EM78056 只清除位 8),所以查表的内容只能放在程序每个 PAGE 的較低的 256 个位址。步骤 (2) 中若利用“tbl" 指令来改变PC,则因为此指令不会將PC (R2) 的位 8、9 清除,而保留“tbl" 所在位址的位 8、9,所以查表的内容可以放在程序每个 PAGE 中的任何位址。
例:查表<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Table:
add 0x02,a ;將相对位置加入 PC 而改变了PC
retl @0x19 ;传回常数内容 19h 至 "A"
retl @0x74 ;传回常数内容 74h 至 "A"
retl @0x2e ;传回常数内容 2eh 至 "A"
retl @0x54 ;传回常数内容 54h 至 "A"
retl @0x4b ;传回常数内容 4bh 至 "A"
inc 0x18
mov a,0x18 ;欲查的内容的相对位置放在"A"
call table ;查表
mov 0x10,a ;查表得到的内容移至 R10 中
文章评论(0条评论)
登录后参与讨论