基于STC15系列单片机课程中讲到的汇编指令(二)

交换指令

1、字节交换指令

XCH  A,Rn ;A的值给Rn,Rn的值给A,具体数学符号不好敲出来,就是交换的意思,有别于赋值

XCH A,@Ri;A的内容和Ri的内容所表示的地址的内容进行交换,和(一)中寄存器间接寻址内容相似

XCH A,direct;参考前两个,这个就不必过多赘述了,direct表示地址单元

2、半字节交换指令

XCHD  A,@Ri  ;两者第四位发生交换

SWAP  A ; 其高四位与第四位发生交换

堆栈操作指令

堆栈操作指令有俩指令助记符,一个用于进栈,一个用于出栈。

PUSH  direct  ;SP指针加一,SP指针始终指向堆栈的栈顶,将我们需要的数据一条一条地压进我们定义的栈里去,是为进栈。

POP direct ;出栈,SP指针减一

值得注意的是,在堆栈操作指令中,累加器A得用ACC表示。

算术运算类指令

不带进位位加法:ADD 就将两值进行二进制相加就行

带进位位加法:ADDC  将需要相加的内容及PSW程序状态控制位的CY进位标志位的状态也一并送至累加器。

减法:SUBB   与ADDC大差不差,将内容与CY值送给累加器A

乘法:MUL  AB;两数相乘,积的高8位存B,低八位存A

除法:DIV  AB;两数相除,商存A,余数存B

十进制调整  DA   A;对A的内容进行进制调整,数制对不上+6,对应的8421BCD码

加1操作: INC

减1操作:DEC

逻辑运算类与循环移位类指令

逻辑与  ANL

逻辑或  ORL

逻辑异或  XRL

清零  CLR

取反  CPL

循环左移    RL循环左移一位,RLC,内容与CY循环左移一位

循环右移    RR循环右移一位,RRC,内容与CY循环右移一位

控制转移类指令

无条件转移类指令

短转移: AJMP addr11  目标地址为下一指令首址的高5位与addr11合并,字节数2

长转移:LJMP  addr16 目标地址为addr16,字节数3

相对转移:SJMP rel 目标地址为下一指令首址与rel相加,rel为有符号数,字节数2

散转移:JMP @A+DPTR 目标地址为A内容与DPTR内容相加,字节数1

空操作:NOP  目标地址为下一指令地址,字节数1

条件转移指令

判零转移指令:JZ,为0转移,2个字节;JNZ,非0转移,两个字节。

比较不等转移指令:GJNE 3个字节

减1非零转移指令:DJNZ;Rn的内容减一不为0,2个字节,direct(地址)单元减一不为0转移,3个字节。

子程序调用及返回指令

子程序调用:LCALL addr16 调用addr16地址处理程序,字节数3;ACALL addr11,调用下一指令首地址的高五位与addr11合并所指的子程序,字节数2

子程序返回:RET,返回到子程序调用下一指令处,1字节

中断返回:RETI  ,返回到中断断点处,字节数1

位操作指令

传送:MOV  C,bit;将bit的值送给CY

位清零:CLR  C     .CLR  bit

位置1: SETB C .SETB  bit

位逻辑与:ANL   位逻辑或:ORL  位取反:CPL

判断CY转移:JC:CY为1转移。JNC:CY为0转移。

判断bit转移:JB  为1转移  JNB  为0转移   JBC为1转移,同时对bit位清0

伪指令

设置起始地址指令ORG,后面放上地址就行

结束指令END ,【标号:】 END  【起始地址】,标号和起始地址不是必须的

赋值伪指令EQU,先定义再使用,需要。字符名称  EQU  数值或汇编符号

数据地址赋值指令DATA,可以先试用后定义。 字符名称  DATA   表达式

定义字节伪指令DB  【标号】DB 字节常数表  功能:从指定地址单元开始,定义若干个8位内存单元内容。

定义字伪指令DW:【标号:】 DW  字常数表

定义存储区指令DS

位定义伪指令BIT

文件包含命令INCLUDE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈千曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值