单片机汇编语言怎么知道main长度

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:01:15
ORG的地址怎么确定的,ORG后可以随便写个地址吗?

MAIN的长度 可以算出来的 你编译到最后一条指令看它的pc值就知道了
ORG之后的地址要避免不要和前面重叠 具体是什么地址得看你要做什么啊 ,一般ORG之后都是接一个跳转指令,可以避免与一些固定地址重叠 比如一些中断入口地址等,例如:
ORG 0000H
AJMP MAIN ;一开始就跳到主函数
ORG 0003H ;外部中断0入口地址
AJMP INT_0 ;跳到中断服务程序 因为直接写可能写不下 只有8字节空间
ORG 0030H ;主函数从这里开始
MAIN:.....;主函数

对于51,程序都是从0000H开始执行的,如遇到中断则从对应中断入口执行
0003H INT0 来自P3.2脚
000Bh T/C0 定时器0
0013H INT1 P3.1
001BH T/C1 定时器1
...

/*********程序主要结构**************/

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP TIMER0
...//51各种中断入口

//程序实现部分一般定在30H以后
ORG 0030H
MAIN:...

TIMER0:...

org后的地址是为16位的,org是一条伪指令,比如“ORG 002BH”它的作用是控制编译软件从002BH的地址开始往后烧写程序,这个地址可以随便写只要不超出程序存储器的范围,51是4K,52是8K,如果不用org指令,程序将从0000H开始烧写程序。

我也是菜鸟一只,很想学习,刚刚起步,