【MCS-51单片机汇编语言】期末复习总结①——常见指令汇总(题型一)

本文详细介绍了微处理器中的七大寻址方式,包括立即、寄存器、直接等,并列举了重要的指令如转移、堆栈操作、加减乘除、位操作和跳转。同时,还涉及了条件转移和子程序调用的相关指令,这些都是理解微处理器工作原理的关键知识点。
摘要由CSDN通过智能技术生成

在这里插入图片描述

七大寻址方式

  • 立即寻址:通过一个立即数来指定存储单元的地址,例如#41H;
  • 寄存器寻址:Rn(n=0~7),A,B,DPTR,C;
  • 直接寻址:通过存储单元的地址本身来访问数据,例如地址3AH;
  • 寄存器间接寻址:通过一个指针变量来访问存储单元的数据,例如@Ri (i=0或1) 、 @DPTR;
  • 变址寻址:@A+PC、@A+DPTR;
  • 相对寻址:rel(相对偏移量);
  • 位寻址:00H-25H.5(.5表示第五位)、TCON.3(TCON的第三位)、CY(进位标志位);

重要指令

转移

  • MOV (片内RAM)
    • MOV A, Rn;(Rn) -> (A)
  • MOVX(片外RAM)
    • MOVX A, @DPTR; ((DPTR)) -> (A)
  • MOVC(ROM)
    • MOVC A, @A+DPTR;((A)+(DPTR)) -> (A)

堆栈

  • PUSH direct;(sp)+1 - > (sp), (direct) -> ((sp))
  • POP direct;((sp)) -> (direct), (sp)-1 -> (sp)
    在这里插入图片描述

sp为栈顶指针,指向栈顶元素)

  • ADD(直接加)
    • ADD A, Rn; (A) + (Rn) -> (A)
  • ADDC(考虑进位标志位)
    • ADDC A, Rn; (A) + (Rn) + (CY) -> (A)
  • INC(自加1)
    • INC A; (A) + 1 -> (A)

  • SUBB(默认考虑进位标志位)
    • SUBB A, Rn; (A) - (CY) - (Rn) -> (A)
  • DEC(自减一)
    • DEC A; (A) -1 -> (A)

  • MUL AB; (A)*(B) -> A存结果的低 8 位,B存高 8 位;

  • DIV AB; (A) / (B) -> A存商,B存余数;

位操作

  • ANL(按位与)(都是1,才为1)

    • ANL A, Rn;结果给A
      在这里插入图片描述
  • ORL(按位或)(只要有1,就为1)

    • ORL A,Rn;结果给A
      在这里插入图片描述
  • XRL(按位异或)(相同为0,相异为1)

    • XRL A, Rn;结果给A

在这里插入图片描述

  • SETB(置1)
    • SET C;1 -> ( C )
  • CLR(清零)
    • CLR A;0 -> (A)
  • CPL(取反)
    • CPL A

在这里插入图片描述

  • RL(循环左移)

在这里插入图片描述

  • RR(循环右移)

跳转

  • LJMP(跳转到某个地址开始执行)
    • LJMP addr16;addr16 -> (PC)
  • SJMP(与上相同)
  • AJMP(与上相同)

(三者任选其一即可)

条件转移

  • JZ rel;(A)全0,跳转,否则顺序执行
  • CJNE A, #data, rel;(A) != data 就跳转
  • DJNZ Rn, rel;(Rn) - 1 -> (Rn),若(Rn) != 0就跳转

子程序

  • ACALL(子程序调用)
    • ACALL addr11
  • RET(子程序返回)
    • RET; ((sp)) -> (PCH) (sp) -1 -> (sp);((sp)) -> (PCL) (sp) -1 -> (sp)

常考题型

给出一个程序,求程序结束后,一些寄存器的值。例如:

  • 下面程序执行后(SP)、(A)、(B)各位多少?

      		ORG	2000H
      		MOV	SP,	#40H
      		MOV	A,	#30H
      		LCALL		2500H
      		ADD	A,		#10H
      		MOV	B,		A
      HERE:	SJMP HERE
      		ORG	2500H
      		MOV	DPTR,		#2008H
      		PUSH	DPL
      		PUSH	DPH
      		RET
    

在这里插入图片描述

评论 75
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

花想云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值