嵌入式系统学习笔记(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为字节数,对这批数据进行升序排序
相关文章