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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Keil匯編進階指南(2) - 段與數據

[復制鏈接]
跳轉到指定樓層
樓主
ID:1080301 發表于 2024-11-28 23:58 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
段與數據
在匯編中,沒有函數的概念,有的只是段,按照我的習慣,我會直接把一個模塊寫成一整段,里面可能會有很多函數


正常來說,我們會用ORG開頭來寫程序,但是這樣是極其不規范的,為啥呢,舉個例子,你現在有個16k空間寫代碼,你不確定你的同事寫了什么玩意,它好像是在100H寫的,嗨,管他呢,我直接在1000H寫。啥?前面還有空間沒利用?不要了!第三個人一看,歐呦你在1000H寫,那我往后,我也不知道你寫在哪,那就2500H吧,看我多好,七八個人寫完以后,整個code空間碎了吧唧的,這留個500b那邊甚至空了2K,好辣,現在開始真正的挑戰了,第九個同事要在夾縫中生存了!拼拼湊湊擠出個2K,再來三四個,好了,代碼變成了依托不可名狀,現在你要改某個東西,動了一兩個字節,整個程序轟的一聲塌了
正確的做法是什么呢,把這活給該干的程序干,就是BL51
多說無益,上代碼
我這里以LCD1602的驅動為例子
首先,我們給這個段起個名字,起個?PR?LCD1602(這個借鑒了C編譯器命名標準,你隨意,你只要能分出啥是啥就行)
對于C編譯器來說?PR?代表程序段,?DT?代表數據段,暫時說這兩個,其他的可以自行查看文檔
好了,我們可以開始干活了,首先要用到的就是SEGMENT關鍵字,用法如下
名字 SEGMENT 類型
類型就是這幾種

CODE 代碼
DATA 數據
IDATA (這個內存有點特別,官方給的是(此內存類中的變量通過寄存器R0或R1訪問。))
XDATA 用MOVX的
還有個EDATA,這個僅在NXP 80C51MX有效
BIT 位,顧名思義

寫完了這個聲明好了這是什么,我們需要開始第一句,也就是代替ORG的RSEG
用法:RSEG 段名字
RSEG就是可重定位段,用來把鏈接的活給BL51干
特別注意,匯編不分大小寫!所以建議你全大寫表示這是匯編代碼(養成好習慣,后面這玩意要和C一起寫的)
  1.         ?PR?LCD1602 SEGMENT CODE
復制代碼

這樣,美妙的開頭就寫完了

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1080301 發表于 2024-11-29 00:42 | 顯示全部樓層
  1. ?PR?LCD1602 SEGMENT CODE
  2. RSEG ?PR?LCD1602
復制代碼

重新補一下代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久ww| 免费看国产片在线观看 | 欧美日韩中文字幕在线 | 亚洲国产精品久久 | 日本一区二区不卡视频 | 国产精品乱码一区二区三区 | 午夜一级大片 | 国产午夜三级一区二区三 | 一区二区在线看 | 夜色www国产精品资源站 | 天天久久 | av黄色在线 | 精品国产91亚洲一区二区三区www | 三级在线免费 | 欧美日韩国产一区二区三区 | 手机av在线 | 国产欧美久久一区二区三区 | 99精品欧美一区二区三区 | www.xxxx欧美 | 午夜视频在线 | 久久777 | 黑人性hd | a级免费黄色片 | 国产欧美日韩在线观看 | 9久久婷婷国产综合精品性色 | 一区二区影视 | 亚洲欧洲成人av每日更新 | 午夜影院| 91av免费看 | 色综合视频| 亚洲国产精品久久人人爱 | 成人网在线看 | 欧美日韩精品影院 | 一区二区三区国产精品 | 91精品国产综合久久婷婷香蕉 | 9999精品视频 | 欧美区日韩区 | 精品久久久久久久久久久 | 欧美激情视频一区二区三区在线播放 | 成人免费网站 | 日韩免费在线 |