单片机
返回首页

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

2021-12-03 来源:eefocus

有汇编程序和反汇编程序,可以由机器语言得到汇编语言 

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

不是所有都会默认从0000H开始,保险起见,还是要在开头用ORG 0000H,然后加一条跳转指令到程序存放起始地址 

  • 在这里插入图片描述在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

交叉汇编,在一台电脑上汇编,在另一台电脑上运行 

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

注意,除了51单片机之外,其它单片机上电后PC值并不一定是0000H,所以需要根据实际情况放第一条指令的位置。此外,0003H到0023H是中断入口,所以第一条指令只能是0000H到0002H一共三个字节,LJMP指令恰好就是3个字节。跳转后的两个NOP是为了等外接芯片复位,因为外接芯片可能复位比51的CPU慢,这段时间不应该对外接芯片发命令,所以要等两个机器周期。接下来必须重新设置SP指针。最后一共SJMP A2是为了避免程序运行到没有写入有效代码的区域。程序是不会自己停下来的,PC会一直取指,一直运行。所以为了让它不再前进,就要在最后加这么一个循环使得程序“停”在A2这里。以下代码有个缺点,表格的位置是固定的,这也就意味着有效程序段太长的话可能会超过2000H,导致重叠。所以可以改进为浮动的,如下下图所示 

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 在这里插入图片描述在这里插入图片描述

一个好的程序应该按以下顺序组成:主程序-子程序-表格-end

冒泡排序,R0放首地址,R2为字节数,对这批数据进行升序排序 

  • 在这里插入图片描述在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章