全站数据
8 4 2 0 5 8 1

为什么SJMP指令的rel=0FEH时将无限循环

金手指会计 | 简单学习,快乐成才!         
问题更新日期:2024-10-15 03:55:00

问题描述

为什么SJMP指令的rel=0FEH时将无限循环求高手给解答
精选答案
最佳答案

sjmp指令只有2个字节,功能是跳转到当前程序计数器地址+rel的地址处,而0feh十进制就是-2。你看,

1.本指令执行时,当然本指令已经读取了,所以程序计数器的值是sjmp指令的地址+sjmp指令的指令长度,也就是sjmp指令的地址+2;

2.sjmp指令的功能使程序计数器=程序计数器+rel,也就是程序计数器+(-2)=程序计数器-2,正好使程序计数器又回到sjmp指令的地址,也就是下一条指令读取的还是sjmp指令,如此循环没有出口,当然就是死循环。