汇编四、51单片机汇编指令2

1、机器码

(1)MOV A,#0x60对应机器码为7460

(2)7460对应二进制 0111 0100 0110 0000

0x74对应指令,0x60对应立即数。

(3)immediate data翻译为立即数。

(4)可人为查表把汇编转为机器码,也可通过编译器把汇编转为机器码。

2、汇编常见缩写

(1)Rn: n可取0~7,表示R0~R7其中的一个。

(2)Ri: i可取0或1,表示R0或R1。(间接寻址只能用Ri)

(3)Direct: 8位RAM的直接地址。 

(4)#data: 8位立即数 

(5)#data16: 16位立即数

(6)Rel: 偏移地址  

(7)Bit: 位地址  

(8)C: 进位标志位  

(9)@: 间接寻址

3、汇编指令功能分类

按功能分类,指令系统可分为:

(1)数据传送类指令;

(2)算数操作类指令;

(3)逻辑操作类指令;

(4)控制转移类指令;

(5)布尔变量操作类指令。

3.1、数据传送类指令

(1)51中没有此指令MOV Rn,Rn。(ARM中可以这样)

(2)MOV direct1,direcct2    ;两个直接地址可以进行数据的传递.

(3))MOVX 访问外部RAM, MOVC访问ROM。

(4)指令SWP A  ;A中的高低四位相互交换。

(5)出栈和入栈

  • PUSH direct    直接地址单元中的数据压入堆栈
  • POP direct     栈顶数据出栈送到直接地址单元
  • PUSH 和 POP 后面不能直接跟寄存器
  • 入栈顺序:栈顶指针SP加1,direct中数据压入栈顶指针所指的空间
  • 出栈顺序:栈顶指针所指数据放回direct地址中,SP减1
  • ACC表示寄存器A的地址,ACC等价于0xE0
  • A表示寄存器A

举例:

3.2、算数操作类指令

包含常见的加减乘除指令。

(1)ADD A, Rn    ;寄存器Rn中的值寄存器A中的值放到寄存器A中

(2)SUBB A, Rn    ;累加器带借位减寄存器内容。

(3)MUL  AB    ;A乘以B。低字节存放A,高字节存放在B

(4)DIV  AB    ;A除以B。商存放在A,余数放入B

(5)INC  direct    ;直接地址单元加1,不会影响进位标志位

(6)DEC  driect    ;直接地址单元减1,不会影响进位标志位

(7)DA  A    ;累加器十进制调整,使用16进制表示10进制

把寄存器A的值按照BCD码重新计算,高四位表示十进制的,低四位表示个位。

例如:0x3B = 3* 10 + 11 = 41

3.3、逻辑操作类指令

(1)ANL  A,  Rn    ;累加器与寄存器相“与”

(2)ORL  A, Rn    ;累加器与寄存器相"或"

(3)XRL  A, Rn    ;累加器与寄存器相"异或"

(4)CLR  A    ;累加器清“0”

(5)CPL  A    ;累加器求反

3.4、控制转移类指令

(1)计算机语言通常包含三种结构:顺序结构;选择结构;循环结构。

(2)ACALL  addr11    ;绝对(短调用子程序)

(3)LCALL  addr16    ;长调用子程序

(4)AJMP  addr11    ;绝对短转移

(5)LJMP  addr16    ;长转移

(6)LCALL用于调用子程序,LJMP用于绝对跳转。

(7)LJMP是绝对跳转;SJMP是相对跳转。

(8)JZ  rel    ;累加器为零转移

(9)JNZ  rel    ;累加器非零转移 

(10)以下两条常用于选择循环语句

        CJNE  A, direct, rel    ;累加器与直接地址单元比较,不相等则转移

        DJNZ  direct, rel    ;直接地址单元减1,非零转移

(11)NOP    ;空操作

3.5、布尔变量操作类指令

(1)根据51单片机内部结构:

        位寻址区为0x20~0x2F。每一个地址对应一个字节,一个字节对应8位,每一位都是可以位寻址的。

        举例:

        20.0:表示0x20地址的bit0,对应地址0x00

        20.1:表示0x20地址的bit1,对应地址0x01

        20.2:表示0x20地址的bit2,对应地址0x02......

(2)bit位地址0x00-0x7F用于位寻址区。

(3)位寻址地址与通常地址采用不同指令进行区分。

(4)MOV  C, bit    ;直接地址位送入进位位

(5)MOV  bit, C    ;进位位送入直接地址位

(6)特殊功能寄存器中,也有一部分是可位寻址的,一部分是不可位寻址的。

(7)bit位地址0x80-0xFF用于可以位寻址的特殊功能寄存器的位访问。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

朱嘉鼎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值