色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>單片機>深入詳解分析51單片機的堆棧資料免費下載

深入詳解分析51單片機的堆棧資料免費下載

2019-08-08 | pdf | 0.09 MB | 次下載 | 1積分

資料介紹

  用C語言進行MCS51系列單片機程序設計是單片機開發和應用的必然趨勢。Keil公司的C51編譯器支持經典8051和8051派生產品的版本,通稱為Cx51。應該說,Cx51是C語言在MCS51單片機上的擴展,既有C語言的共性,又有它自己的特點。本文介紹的是Cx51程序設計時堆棧的計算方法。

  1.堆棧的溢出問題

  MCS51系列單片機將堆棧設置在片內RAM中,由于片內RAM資源有限,堆棧區的范圍也是有限的。堆棧區留得太大,會減少其他數據的存放空間,留得太少則很容易溢出。所謂堆棧溢出,是指在堆棧區已經滿了的時候還要進行新的壓棧操作,這時只好將壓棧的內容存放到非堆棧區的特殊功能寄存器(SFR)中或者堆棧外的數據區中。特殊功能寄存器的內容影響系統的狀態,數據區的內容又很容易被程序修改,這樣一來,之后進行出棧操作(如子程序返回)時內容已變樣,程序也就亂套了。因此,堆棧區必須留夠,寧可大一些。要在Cx51程序設計中防止堆棧的溢出,要解決兩個問題:第一,精確計算系統分配給用戶的堆棧大小,假設是M;第二,精確計算用戶需要堆棧的大小,假設是N。要求M≥N,下面分別分析這兩個問題。

  2.計算系統分配給用戶的堆棧大小

  Cx51程序設計中,因為動態局部變量是長駐內存中的,實際上相當于局部靜態變量,即使在函數調用結束時也不釋放空間(這一點不同于標準C語言)。Cx51編譯器按照用戶的設置,將所有的變量存放在片內和片外的RAM中。片內變量分配好空間后,將剩下的空間全部作為堆棧空間,這個空間是最大可能的堆棧空間。當然,因為Cx51是一種可以訪問寄存器的C語言(特殊功能寄存器),因此可在程序中訪問SP,將堆棧空間設置得小一點。不過,一般沒有人這么做。

  本文只是討論放在片內RAM的變量。我們把變量分為兩種情況:

  ① 用作函數的參數和函數返回值的局部變量。這種變量盡量在寄存器組中存放。為了討論方便,假設統一用寄存器組0,具體的地址為0x00~0x07。最多可以傳遞3個參數,如果參數的個數比較多,就將多余的參數放到內存(0x08以后的地址)中存放。這里,假設每個函數的參數都不大于3個。

  ② 我們在程序中定義的全局變量,以及不是用作函數的參數和函數返回值的局部變量。以上兩種變量在內存中0x08地址以后存放,存放完畢后將堆棧指針SP指向分配了變量的片內RAM的最后一個字節。因為MCS51單片機的堆棧是一種滿遞增堆棧且堆棧的寬度為8位,所以在需要壓棧操作時將堆棧指針先加1,后入棧有效內容。有了以上規則,就可以精確地計算出系統分配給用戶的堆棧空間。以求兩個數的最大公約數和最小公倍數的函數為例,代碼如下

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 651單片機窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費
  13. 751單片機大棚環境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲成人欧美| 久久亚洲精品永久网站| 亚洲a视频在线| 娇妻玩4P被三个男人伺候电影| 亚洲高清视频在线观看| 成人免费视频在线观看| www.色片| 午夜看片福利在线观看| 国产在线伊人| 琪琪see色原网色原网站| 永久免费观看视频| 伦理片a在线线2| 调教椅上的调教SM总裁被调教| 欧美性猛交AAA片免费观看| 国产大片51精品免费观看| 桃隐社区最新最快地址| 久久99AV无色码人妻蜜柚| 毛片手机在线看| 富婆大保健嗷嗷叫普通话对白| 亚洲免费无码中文在线亚洲在| 欧美性xxxxxx爱| 好大快用力深一点h视频| 99手机在线视频| 亚洲精品国产品国语在线试看| 男人J放进女人P全黄网站| 国产婷婷午夜精品无码A片| a级全黄试频试看30分钟| 亚洲 欧美 另类 中文 在线| 欧美精品做人一级爱免费| 国产亚洲免费观看| 成人天堂资源WWW在线| 一级毛片免费在线播放| 特级毛片全部免费播放免下载| 免费毛片网站在线观看| 黄色大片aa| 国产高清亚洲日韩字幕一区| 夜夜穞狠狠穞| 我半夜摸妺妺的奶C了她软件| 欧美成人中文字幕在线看| 久久福利影院| 国产亚洲一区在线|