51单片机中汇编CJNE A,#10,$+3后面$+3是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:47:36
书上没这个标号

CJNE A, #10,$+3 是比较指令,$+3是目的地。

$+3是指当前指令地址的下面第三字节。

因为指令:CJNE A,#10,$+3 只有3字节,所以$+3就是该指令的下一条指令。

本指令用A-10,不存结果,只是设置了标志位。

下一条指令应该根据标志位进行转移。
哪里看到的?
莫非是指当前行下面第三行?

CJNE A, #10,$+3 是比较指令,$+3是目的地。

$+3是指当前指令地址的下面第三字节。

因为指令:CJNE A,#10,$+3 只有3字节,所以$+3就是该指令的下一条指令。

本指令用A-10,不存结果,只是设置了标志位。

下一条指令应该根据标志位进行转移。

汇编中$表示当前指令的地址,$+3表示当前指令起始地址后的第三个地址,注意是地址单元,不是指当前指令后的第三条指令,因为51中很多指令是2字节或3字节指令,还有点要注意的是:CJNE是3字节指令,即这条指令要占用3个字节,即$/$+1/$+2这三个单元,$是指第一字节的这个地址,所以$+3进指cjne后下一条指令;

程序中最好用指令标号来:
cjne a,#10,DO_STH
...
DO_STH:
...
这样就不用理会指令占多少空间了。

比较不相等转移啊
$+3
就是转移到本行指令所处地址再加3的偏移地址

哪里看到的?
莫非是指当前行下面第三行?