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

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

http://www.niftyadmin.cn/n/3658069.html

相关文章

微软宣布将发布.NET Framework Library源代码

(翻译整理自Scott Guthrie的Blog:http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx)在早些时候,也就是10月3号,微软宣布将随.NET Framework 3.5和…

ZZ:使用.NET语言开发Silverlight应用程序入门(一):了解项目结构

(本文转载自Silverlight上海开发团队Blog,是“使用.NET语言开发Silverlight应用程序入门”系列之第一篇。转自http://blog.csdn.net/SilverlightShanghai/archive/2007/09/23/1796794.aspx如果有对于Silverlight技术本身的疑问,看法,意见&…

嵌入式系统学习笔记(7)——码制

- ORL是用或实现低四位BCD码和30H的相加,30H就是48,只要事先吧高四位清零,就可以把BCD码变成8位的ASCII码

ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型

(本文转载自Silverlight上海开发团队Blog,是“使用.NET语言开发Silverlight应用程序入门”系列之第二篇。转自http://blog.csdn.net/SilverlightShanghai/archive/2007/09/28/1805279.aspx. 如果有对于Silverlight技术本身的疑问,看法,意见&a…

NLP学习笔记(1)

实现word2vec 的方法 direct prediction的两个方法: skip gram模型 这是skip gram模型,中间dx1的向量就是单词的representation vcv_cvc​,Vx1的向量是对所有单词出现在某个单词的语境中的可能性,其中的第o行是uoTvcu_o^Tv_cuoT​vc​&#x…

.NET SDK中CorFlags.Exe的用法

CorFlags是.NET Framework中一个用于查看.NET 可执行文件(PE)的运行参数的非常有用的工具,但是这个工具输出的结果不是特别直观,文档中并没有做出解释,本文将用实际例子解释CORFLAGS的用法。首先我们来看一个一般的情况,随便写一个…

pytong之语音环境:edge-tts and edge-playback

系统平台:windows10 一、安装python3.x 二、安装edge-tts(文本转换为声音文件) 启动windows命令行(cmd),执行如下命令: pip install edge-tts 可能会因为网络的问题出现错误。用ping测试pypi.org是否通畅:ping pyp…

嵌入式系统学习笔记(8)——定时器计数器

定时器计数器的操作是通过对SFR的赋值实现的,定时器计数器的结果是通过对SFR的读取得到的。注意T0和T1并不是16位寄存器而是4个8位寄存器,单片机内部只有一个真正意义上的16位寄存器:DPTR。实际上定时器就是计数器,定时是通过对固…