汇编语言——单片机基础

以老师上课讲的例题为例,进行程序分析。


#前两步为跳过中断区,一般程序都直接加上
ORG 0000H     
  LJMP MAIN
  ORG 1000H     #定义源地址为1000H
  MAIN:  MOV A,#30H    #将 立即数30H 赋给  累加器A
  MOVC A,@A+PC    #将(累加器A  + 下一条命令后程序计数器的值)对应地址的内容赋给A,
                  #即A =(源地址1000H  +  30H  +  (MOV所占字节1 + MOVC所占字节2)= 1033H
  ORG 1030H    #定义源地址为1030H
  DB  01H,02H,03H,04H    #分别将以下4个字节数放在源地址中,即分别对应1030H, 1031H,1032H,1033H
  END

TEST.asm

#前两步为从单片机的源地址0000H开始,跳过中断区,为程序必有的部分
    ORG 0000H
	AJMP MAIN
#定义main的起始地址为0100H
    ORG 0100H
MAIN: MOV A,#01H   #将 立即数01H  赋给  累加器A 
      MOV 20H, #02H  #将  立即数02H  赋给 20H地址的内容
	  MOV A, 20H   #将20H对应地址里的内容  赋给  累加器A
      END

MOVX.asm

#前两步为从单片机的源地址0000H开始,跳过中断区,为程序必有的部分
    ORG 0000H
    LJMP MAIN
#定义main的起始地址为1000H
    ORG 1000H
MAIN:  MOV   A,#30H   #将 立即数30H  赋给  累加器A 
       MOV   R0,#40H  #将 立即数40H  赋给  R0
	   MOV   @R0,A   #(在片内RAM中)将  累加器A的值  赋给  R0中的地址对应的数
	   #(在未定义的片外RAM中:地址为FF00H)
	   MOVX  @R0,A   #将  累加器A的值  赋给  R0中的地址对应的数
	   MOV   P2,#11H   #定义片外寄存器的地址为11H
	   #(在定义后的片外RAM中:地址为1100H)
	   MOVX  @R0,A   #将  累加器A的值  赋给  R0中的地址对应的数
	   #下两步为选择DPTR并赋值
	   MOV   0A2H, #01H    #选择DPTR1
	   MOV   DPTR, #1818H   #给  DPTR1 赋值 1818H
	   MOVX  @DPTR, A   #将   累加器A的值(30H) 赋给  DPTR对应的地址的内容 
	   END
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值