51单片机指令寄存器是八位宽度,为什么还有指令是3字节指令,不是说指令长度等于指令寄存器长度吗

如题所述

指令长度等于指令寄存器长度,这并不矛盾。对于51单片机,执行指令时,是先取第一个字节的指令码,也叫操作码,进行译码,然后执行。如果是单字节指令就执行操作了。如果是两个字节,或三个字节的指令,就会再取出第二字节,第三个字节,第二,第三字节通常是立即数,地址,偏移量等操作数,取出这些操作数后,就会进行计算,或按立即数,地址传送数据了,是偏移量就计算目标地址然后跳转了。
总结,51单片机是逐一字节取出指令码的,并不是一下子全部取出二个,三个字节的指令。而只有第一个字节才是操作码,其余是操作数。
温馨提示:答案为网友推荐,仅供参考
相似回答