OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...

看了百度的详细解答,可是还是不懂(汇编语言的)

查看数: 6731 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-5-4 15:18

正文摘要:

如果(DPTR)=5678H,(SP)=42H,(3FH)=12H , (40H)=34H, (41H)=50H,(42H)=80H, 则执行以下指令后: [/mw_shl_code] POP DPH [/mw_shl_code] POP DPL [/mw_shl_code] RET[/mw_shl_code] ...

回复

秋枫暮霞惋红曲 发表于 2015-5-15 21:41:48
回复【9楼】ofourme:
---------------------------------
迷茫,毕业了,没工作,不学了
ofourme 发表于 2015-5-13 11:23:44
好像是51的汇编,我已经忘光了。学一门汇编语言还是需要的,可以让你更好的理解编程。
xuande 发表于 2015-5-4 23:50:47
回复【6楼】秋枫暮霞惋红曲:
---------------------------------

学生。。。。那我真的说错了,不该说“没用”。我以为你工作了。
秋枫暮霞惋红曲 发表于 2015-5-4 22:05:43
回复【5楼】xuande:
---------------------------------
回复【5楼】xuande:
---------------------------------
我还想问:我该在哪些方面下功夫?老师再给我解疑一下
秋枫暮霞惋红曲 发表于 2015-5-4 21:52:59
回复【5楼】xuande:
---------------------------------
中国教育制度的落后,我也不想研究这些没用的东西,可是考试还要考啊。   自己又没方向感,只好跟着教育走了
xuande 发表于 2015-5-4 21:35:59
这是一种保护“现场”的机制,
“现场”包括一些数据,更重要是包括 program Counter, 即 C ,
否则,调用子程序之后,就找不到回家的路了。

这只是保护现场的方法之一,是 INTEL 公司在 51 系列采用的方法;
现在 CPU 那么多,具体方法已经不重要了,C语言、开发平台、编译器已经帮你做了;
这些已经是很陈旧的知识,我虽然做过也都忘记了,因为现在根本不需要。

我其实想说,LZ 不要在这些东西上下功夫了。
745021926 发表于 2015-5-4 18:15:44
POP是出栈吧,得看堆栈里压了什么数据
xuande 发表于 2015-5-4 15:18:57

你给出答案,我就知道怎么算了,嘿嘿,时隔太久了。。。

堆栈就像手枪的弹仓,后弹压前弹,这叫“向上增长”。
SP 就是指针,初值是零位,压一弹加一,现在加到 42H 了;相对应,射一弹就减一。
POP DPH,就是把当前 SP 标注的那颗弹,射到 DPH 里,所以 DPH = ( 42H )= 80H;
随后 SP 自动减一为 41H,再往外射到 DPL 里,SP 变为 40H 。
RET,就是把以前保存的 C 数值送回到 C 寄存器,以便返回调用子程序之前的程序位置。。。




关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-10-5 01:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表