嵌入式系统学习笔记(6)——MCS51汇编语言程序设计

  • 有汇编程序和反汇编程序,可以由机器语言得到汇编语言 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 不是所有都会默认从0000H开始,保险起见,还是要在开头用ORG 0000H,然后加一条跳转指令到程序存放起始地址 在这里插入图片描述在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 交叉汇编,在一台电脑上汇编,在另一台电脑上运行 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 注意,除了51单片机之外,其它单片机上电后PC值并不一定是0000H,所以需要根据实际情况放第一条指令的位置。此外,0003H到0023H是中断入口,所以第一条指令只能是0000H到0002H一共三个字节,LJMP指令恰好就是3个字节。跳转后的两个NOP是为了等外接芯片复位,因为外接芯片可能复位比51的CPU慢,这段时间不应该对外接芯片发命令,所以要等两个机器周期。接下来必须重新设置SP指针。最后一共SJMP A2是为了避免程序运行到没有写入有效代码的区域。程序是不会自己停下来的,PC会一直取指,一直运行。所以为了让它不再前进,就要在最后加这么一个循环使得程序“停”在A2这里。以下代码有个缺点,表格的位置是固定的,这也就意味着有效程序段太长的话可能会超过2000H,导致重叠。所以可以改进为浮动的,如下下图所示 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 在这里插入图片描述在这里插入图片描述
  • 一个好的程序应该按以下顺序组成:主程序-子程序-表格-end
  • 冒泡排序,R0放首地址,R2为字节数,对这批数据进行升序排序 在这里插入图片描述在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值