久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 問大家c51定義a為idata改成data程序運行和正常不一樣,什么原因? [打印本頁]

作者: jimjassdf    時間: 2018-6-29 22:51
標題: 問大家c51定義a為idata改成data程序運行和正常不一樣,什么原因?
本帖最后由 jimjassdf 于 2018-6-30 12:02 編輯

問大家c51定義int idata a改成int a程序編譯不出錯,運行和正常不一樣,什么原因?謝謝

作者: deity0750    時間: 2018-12-19 15:13
人個經驗:不建議使用idata,idata會使用SFR特殊功能寄存器0x80H~0xFF,因為這塊通常用于中斷與函數調用的堆棧,程序處理不好的話會有沖突,導致程序異常。

Keil C51 語言中的關鍵字,代表了 RAM 不同區域的劃分

data:片內 RAM 從 0x00~0x7F
idata:片內 RAM 從 0x00~0xFF
pdata:片外 RAM 從 0x00~0xFF
xdata:片外 RAM 從 0x0000~0xFFFF


在 Keil 默認設置下, data 是可以省略的,即什么都不加的時候變量就是定義到 data 區域中的。 

data 區域 RAM 的訪問在匯編語言中用的是直接尋址,執行速度是最快的。如果你定義成 idata,不僅僅可以訪問 data 區域,還可以訪問 0x80H~0xFF 的范圍,但加了 idata 關鍵字后,訪問的時候 51 單片機用的是通用寄存器間接尋址,速度較 data會慢一些。

而且我們平時大多數情況下不太希望訪問到 0x80H~0xFF,因為這塊通常用于中斷與函數調用的堆棧, 所以在絕大多數情況下,我們使用內部 RAM 的時候,只用 data 就可以了。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 夜夜爽99久久国产综合精品女不卡 | 久久精品超碰 | 国产午夜精品一区二区三区嫩草 | 日韩精品一区二区三区 | 日本精品视频一区二区 | 日韩久久久久久久久久久 | 欧美高清视频一区 | 最近日韩中文字幕 | 精品国产亚洲一区二区三区大结局 | 国产日本精品视频 | 天天av综合| 日韩精品一区二区三区在线观看 | 91精品国产91久久久久久密臀 | 日韩成人一区 | 午夜欧美 | 日韩av最新网址 | 久久久成人网 | 成人av在线播放 | 亚洲欧美日韩在线一区二区 | 久久精品视频免费观看 | 久久中文字幕视频 | 亚洲成人福利在线观看 | 亚洲成人三级 | 91精品国产综合久久香蕉麻豆 | 特级特黄特色的免费大片 | 欧美激情一区二区三区 | 亚洲一区二区在线播放 | 青青草av| 国产一区二区三区在线 | 久久69精品久久久久久久电影好 | 欧美在线一区二区三区 | 一区二区视频在线 | 亚洲精品日韩综合观看成人91 | 久久久精品久久 | 亚洲人成人一区二区在线观看 | 免费观看一级特黄欧美大片 | 久久99精品久久久久久秒播九色 | 国产婷婷精品 | 99久热在线精品视频观看 | 亚洲国产精品久久久 | 精品一区二区三区免费视频 |