li指令 汇编_51单片机(九)汇编指令

1 往期链接

2 STC89C52汇编指令

1.setb p1.0 ;p1.0=1

clr c ;c=0

cpl c ;c=~c 位反转

2.AJMP main ;直接跳转到main标号处

------控制转移指令----------

3.djnz 51h,$ ;将地址中的数据减去1,若结果不为0,则跳转

jz rel ;若a=0,则跳转

jnz rel ;若a!=0,则跳转

cjne a,direct,rel ;比较转移指令:若a!=direct,则跳转

djnz direct,rel ;direct-1:若结果不为0,则跳转

--------------下列三者的区别----------------

lcall loop1(长调用子程序)

--子程序调用,子程序执行完通过RET返回到lcall指令的下一条指令继续执行;

ljmp loop2(无条件长转移)

---程序地址范围超过2K时要用的长跳转指令;

ajmp loop3(无条件绝对转移)

------------下列转移的区别-------------------

JB bit,rel ;若直接寻址位为1,则转移

JNB bit,rel;若直接寻址位为0,则转移

JBC bit,rel ;若直接寻址位为1,则转移并且清除该位;

-----------------------------------------------

4.ret ;子程序返回指令

***ret返回调用该子程序的指令,并从其下一条指令开始执行

reti ;中断返回指令

5.51压栈和出栈 (操作数是8位长度)

push direct

pop direct

6.Inc a ;加1指令 a+1

dec a ;减1指令 a-1

7.mul A B ; B:A=A*B

DIV A B ; A=商, B=余数

8.$ 代表当前指令的地址

在字符串是结束标志

9.循环移位指令

RL A ;累加器A循环左移一位

RLC A ;累加器A带进位标志循环左移一位

RR A:累加器A循环右移一位

RRC A:累加器A带进位标志循环右移一位

10.逻辑操作指令

ANL A,Rn ;将A和Rn中内容相与,结果送A

ORl A,Rn ;将A和Rn中内容相或,结果送A

XRL A,Rn ;A和Rn中内容相异或,结果送A

CLR A ;A中内容清0

CPL A ;A中内容取反

----------------------------------------

CON EQU 0d8f0h;(65536-55536) ;定时0.01s

EQU 如果操作数是十进制,则转换出来的定时时间,可能很长;

因为单片机要将十进制转换成十六进制,会花费很长时间!

-----------keil查看内存-----------

d:0 直接寻址的内部RAM

i:o 间接寻址的片内RAM

x:0 扩展的外部RAM

c:0 扩展到内部ROM

----------寻址方式---------------

1.寄存器寻址

mov a,r0;将寄存器r0中的内容送a

2.立即寻址

mov a,#00h;将立即数00h送累加器A

3.直接寻址

mov 31h,30h;将30h单元中的内容送31h单元

4.寄存器间接寻址(只能是R0和R1作为地址指针来寻址内部RAM:00h-0ffh)

mov a,@R0 ;将R0指向的内部RAM单元的内容送累加器A

5.相对寻址

JC rel ;目的地址=源地址+rel+跳转指令字节长度(2/3)

6.变址寻址(基址寄存器+变址寄存器间接寻址)

注释:51中使用DPTR或者PC作为基址寄存器,累加器A作为变址寄存器;

movc a,@a+DPTR ; 将a和DPTR中的内容相加,作为地址单元,并将该地址单元中的数据送a

7.位寻址

CLR bit(位地址)

注释:51单片机中有两部分可以作为位寻址:20h-2fh,和字节地址能被8整除的特殊功能寄存器

----------51单片机内部寄存器和RAM结构----------------

1.单片机16bit寄存器:

PC程序计数器、DPTR数据指针(DPH、DPL)

2.普通寄存器

A累加器、B寄存器(常作为乘法:结果高字节和除法:余数的寄存器)

PSW:程序状态字:反应程序的状态信息

3.寄存器区选择控制位

X区=(RS1:RS2)

每个寄存器区分为8个字节单元,每个区的每个字节单元对应一个寄存器(R0-R7)

四个区一共32组寄存器单元,RAM内存地址为:00H--1FH

(其中R1和R0也可作为寄存器间接寻址的寄存器)

4.堆栈指针SP

是一个8bit专用寄存器,它指出栈顶内部在内部RAM中的位置;

系统初始化SP=07H

5.端口P0-P3

分别是I/O端口的P0-P3锁存器

6.串行数据缓冲器

SBUF:实际上有两个,分为数据接收缓冲器和数据发送缓冲器

——2020.08.06——

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值