单片机程序第一句ORG 0030H什么意思
ORG是伪指令,告诉
器,程序从ROM的0000开始存放程序,但是AJMP MAIN是一条无条件跳转指令,也就是说,单片机上电之后首先从0000处开始执行程序,但是,AJMP直接将程序跳转到MAIN标号指向的存储区域开始取指令,并执行,而一般MAIN标号是放在语句ORG 0030之后的,也即,主程序是从0030这个地址开始存放的;
这是因为,单片机内部有几个中断源,默认内部中断(包含几个定时器中断,还有外部中断)的入口是在0000-0030之间的,每个中断大概占用两个字节还是四个字节,记不清楚了。而这些内部中断一旦产生,指针必然立刻指向0004-0030之间,如果你的程序有语句放在这个地址内,程序必然跑飞!!!
因此,在8051这个MCU的设计中,已经将0004-0030分配给内部使用了,所以,你的程序只能从0030之后的任何存储区域开始存放,AJMP MAIN就是为了在MCU上电的时候知道从ROM中的那个地址开始取指令
而如果你使用到中断,也必然要在已经定义为中断入口的地址0004--0030写上AJMP,以便于跳转到你自己编写的相应的中断程序中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2016-04-27 c#通过app.manifest使程序以管理员身份运行
2016-04-27 C# App.Config详解
2016-04-27 C# 配置文件 Appconfig
2016-04-27 利用Microsoft.VisualBasic中TextFieldParser解析器把CSV格式倒入数据库
2016-04-27 C# Socket流数据大小端读写封装
2016-04-27 BinaryWriter和BinaryReader用法
2016-04-27 C#预处理器指令