单片机小程序分析

MOV 30H,#12

MOV 31H,#23

PUSH 30H

PUSH 31H

POP 30H

POP 31H

结果是30H中的值变为23,而31H中的值则变为12。也就两者进行了数据交换,请问如何分析这个程序。要详细的

下图中只是注明单元内容的值,不是指椎栈的地址,椎栈地址可以设置。对于51来说默认在数据空间的08H开始存放。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-08
很简单,你要理解一下血堆栈先进后出的原理,刚开始我们先把30H地址的值入栈,再把31H地址的值入栈,而出栈的时候我们出栈保存的值在30H,这样原来31H里面的值就进入了30H了,再POP 31H 那30H里面的值23H就进入了31H了!
第2个回答  2011-01-08
此程序是执行堆栈操作,堆栈原理是先进后出原理,也就是说先入栈的30H数值为12,后入栈的数值为23;先出栈的数值为23,执行pop 30h,既是将23赋值于30H本回答被提问者和网友采纳
第3个回答  2011-01-08
够TM啰嗦
XCH A,30H
XCH A,31H
XCH A,30H
不就完了,节省资源速度还快

单片机原理…程序段分析…求助?
第三行:SP=51H,A=0FH,这一句是出栈到ACC中,也就是把刚才(52H)的内容出栈到ACC;第四行:SP=50H,B=F0H,这一句是出栈到B中,也就是把刚才(51H)的内容出栈到B。这个小程序段就是练习如何利用栈来高效率地交换数据或者重排数据。

单片机小程序,为什么把P1屏蔽掉程序就不行了呢?一定要把temp的值赋给...
P1是输出IO口,temp的二进制值对应着输出口的值,屏蔽了就是相当于没有输出了,或是输出是默认的状态,肯定不行啊

51 单片机,写的一个与电脑通讯的小程序,用 ISP 烧录入 STC12C5608AD...
因为你下载程序时选择单片机使用的是内部时钟 内部时钟是不稳定的,会影响到你的波特率,波特率不对,当然不能通讯了

单片机延时小程序中$的作用
开始的时候,R7=248,执行一遍后,R7=247,非0,就再执行这条指令,反复执行这条指令248遍,才执行下一条 DJNZ R6,D2。

单片机编程之前要不要画流程图
其实,画流程图一点用都没有,只能是浪费时间。如果是一个大的项目,画个程序结构图倒是有必要,有利于团队分工和程序的结构化更合理。而对于一个单片机一般的小程序,不必画。画流程图是毕业设计中为了占篇幅凑内容,或者一些教材为了凑内容而画的。

求助各位前辈,小弟在自学51单片机,想请大侠们赐一个小程序给我学习,万...
你这第一下就想玩这难度要大点,因这有个控制亮度的麻烦点,你最好先玩玩流水灯啊,数码管自动加数啊,(本以后你这中也要用的)完成后再来玩你这才会达到事半功倍的效果,这类程序 网上多的是,你可根据你想玩C语言还是玩汇编去找相应的下载....

关于51单片机的一个小程序,为什么我的数码管不能显示 0 1 2 3...
temp = temp&0xf0;这一句过后temp的低四位必定为0,swtch后面的语句都进不了。

一般单片机的小程序如何收费
如果关系好,就收几百就可以了 关系一般的就上千吧 尽管对坐技术的人来说,这个项目不难 但想想卖一个热风枪的利润就有好几百,卖几个就可以支付软件开发了 所以你要按市场来定价,不要按技术的难易程度来定

c语言能写出什么样的小程序?
C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位...

求助——单片机小程序:用定时器以间隔500MS在6位数码管上依次显示0,1...
sbit dula=P2^6;sbit wela=P2^7;uchar num=0;uchar tt=0;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main(){TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;TH1=(65536-5000)\/256;TL1=(...

相似回答