注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

III = Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C51生成汇编代码剖析(1)  

2017-10-28 10:54:57|  分类: C51(C&ASM) |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
研究C51编译生成的汇编代码,有助于学习汇编语言,以及C和汇编的混合编程。
1.最简单的程序
C51中最简单的程序肯定是这个:
C51生成汇编代码剖析(1) - Lemniscate - 信息 灵感 创新
看右边反汇编的结果,可以发现,在进入main函数之前,程序会做一些准备工作,例如
C:0x0003    787F     MOV      R0,#0x7F
C:0x0005    E4       CLR      A
C:0x0006    F6       MOV      @R0,A
这三行,相当于是将00写入存储器0x7F中。
C:0x0007    D8FD     DJNZ     R0,C:0006
这一句相当于是将存储器0x00-0x7F中的数据全部清零,即将存储器低128位全部清零,可以查看存储器:
C51生成汇编代码剖析(1) - Lemniscate - 信息 灵感 创新
 C:0x0009    758107   MOV      SP(0x81),#0x07
则是设置堆栈。
这些工作做完之后,则是一个长跳转到了main函数的入口点0x000F,当然这里什么都没有,只有一个RET。
  评论这张
 
阅读(20)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017