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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2413|回復: 1
打印 上一主題 下一主題
收起左側

問大家c51定義a為idata改成data程序運行和正常不一樣,什么原因?

[復制鏈接]
跳轉到指定樓層
樓主
ID:315153 發表于 2018-6-29 22:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 jimjassdf 于 2018-6-30 12:02 編輯

問大家c51定義int idata a改成int a程序編譯不出錯,運行和正常不一樣,什么原因?謝謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:279005 發表于 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 就可以了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级欧美一级日韩片免费观看 | 国产精品视频一区二区三区 | 亚洲中国字幕 | 国产日韩欧美在线观看 | 日本久久精品视频 | 一区二区三区欧美 | 九九久久精品 | 亚洲精品一区二区三区蜜桃久 | 国产91黄色 | 国产精品视频一二三区 | 成人av一区 | 高清欧美性猛交xxxx黑人猛交 | 免费看欧美一级片 | 蜜月va乱码一区二区三区 | 男女午夜免费视频 | 毛片视频观看 | 色婷婷久久久久swag精品 | 国产精品国产a | 亚洲成人av | 我爱操 | 一色桃子av一区二区 | 天天看逼 | 高清成人av | 精品1区2区3区4区 | 97精品国产手机 | 亚洲综合色丁香婷婷六月图片 | 国产精品久久久久久久7电影 | 日本人做爰大片免费观看一老师 | 91在线精品一区二区 | 国产成人99久久亚洲综合精品 | 免费观看毛片 | 国产精品日韩欧美一区二区三区 | 亚洲一区二区视频 | 天久久 | 亚洲精品久久视频 | 国内自拍视频在线观看 | 久久免费精品 | 福利视频网 | 91视频在线看 | 日本午夜视频 | 欧洲精品在线观看 |