单片机程序控制指令解析

控制/MCU

1799人已加入

描述

表程序控制指令

操作码

操作数

条 件

转 移 地 址

说明

AJMP

addr11

无条件

(PC)←(PC)+2

(PC)0-10←addr11

短转移,只改变PC的低11位,转移范围2K。

LJMP

addr16

无条件

(PC)←addr16

长转移,转移范围全64K空间

SJMP

rel

无条件

(PC)←(PC)+2+rel

相对转移 ,范围-126~+129。

JMP

@A+DPTR

无条件

(PC)←(A)+(DPTR)

散转指令,根据A值变址转移

ACALL

addr11

无条件

(PC)←(PC)+ 2

(PC)L、(PC)H压栈

(PC)0-10←addr11

短调用,只改变PC的低11位,转移范围2K。

LCALL

addr16

无条件

(PC)←(PC)+ 3

(PC)L、(PC)H压栈

(PC)←addr16

长调用,调用范围全64K空间

RET

隐含

((SP))

无条件

(PC)H←((SP))

(PC)L←((SP)-1))

子程序返回。

RETI

中断返回。

JZ

rel

(A)= 0

(PC)←(PC)+2+rel

根据A的值条件转移。

JNZ

(A)≠0

JC

rel

(C)= 0

(PC)←(PC)+2+rel

根据C的值条件转移。

JNC

(C)= 1

JNB

bit, rel

(bit)=0

(PC)←(PC)+3+rel

位值判别转移。(负逻辑)

JB

(bit)=1

位值判别转移。(正逻辑)

JBC

(bit)=1

同JB,加(bit)清零功能。

DJNZ

Rn, rel

(Rn)-1≠0

(PC)←(PC)+2+rel

循环指令。循环计数器自动

减1,归0则退出循环。

dir, rel

(dir)-1≠0

(PC)←(PC)+3+rel

操作码

操作数

条件

转 移 地 址

说明

CJNE

A,dir,rel

A,#data,rel Rn,#data,rel

@Ri,#data,rel

(A)≠(direct)

(A)≠#data

(Rn)≠#data

((Ri))≠#data

(PC)←(PC)+3+rel

按无符号数比较,两数不等则转移。若前一数小,C置1;若前一数不小于后一数,C清零。

NOP

(PC)←(PC)+1

空操作,顺序执行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分