通常使用什么指令实现散转程序结构

通常使用什么指令实现散转程序结构,第1张

通常用RET指令实现散转程序。

1、在查找到转移地址后,不是将其装入DPTR中,而是将它压入堆栈中(先低位字节,后高位字节,即模仿调用指令)。

2、然后通过执行RET指令,将堆栈中的地址d回到PC中实现程序的转移。

KEYA BIT P1.0

KEYB BIT P1.1

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

JB KEYA,MAIN1

LCALL DEALA

SJMP MAIN

MAIN1:

JB KEYB,MAIN

LCALL DEALB

SJMP MAIN

DEALA:

..........

RET

DEALB:

............

RET

END

SUBB A, #04H 如果结果Cy=1说明键值小于04H,是合理的,否则键值大于04H就出错。

RL A 起键值×2的作用,因为散转表中的每条指令JMP @A+DPTR的代码都是双字节的,所以散转偏移量应该是键值的两倍。如果每组代码是N字节,这里就要×N。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11563861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存