久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
Keil匯編進階指南(2) - 段與數(shù)據(jù)
[打印本頁]
作者:
Astrix
時間:
2024-11-28 23:58
標(biāo)題:
Keil匯編進階指南(2) - 段與數(shù)據(jù)
段與數(shù)據(jù)
在匯編中,沒有函數(shù)的概念,有的只是段,按照我的習(xí)慣,我會直接把一個模塊寫成一整段,里面可能會有很多函數(shù)
正常來說,我們會用ORG開頭來寫程序,但是這樣是極其不規(guī)范的,為啥呢,舉個例子,你現(xiàn)在有個16k空間寫代碼,你不確定你的同事寫了什么玩意,它好像是在100H寫的,嗨,管他呢,我直接在1000H寫。啥?前面還有空間沒利用?不要了!第三個人一看,歐呦你在1000H寫,那我往后,我也不知道你寫在哪,那就2500H吧,看我多好,七八個人寫完以后,整個code空間碎了吧唧的,這留個500b那邊甚至空了2K,好辣,現(xiàn)在開始真正的挑戰(zhàn)了,第九個同事要在夾縫中生存了!拼拼湊湊擠出個2K,再來三四個,好了,代碼變成了依托不可名狀,現(xiàn)在你要改某個東西,動了一兩個字節(jié),整個程序轟的一聲塌了
正確的做法是什么呢,把這活給該干的程序干,就是BL51
多說無益,上代碼
我這里以LCD1602的驅(qū)動為例子
首先,我們給這個段起個名字,起個?PR?LCD1602(這個借鑒了C編譯器命名標(biāo)準(zhǔn),你隨意,你只要能分出啥是啥就行)
對于C編譯器來說?PR?代表程序段,?DT?代表數(shù)據(jù)段,暫時說這兩個,其他的可以自行查看文檔
好了,我們可以開始干活了,首先要用到的就是SEGMENT關(guān)鍵字,用法如下
名字 SEGMENT 類型
類型就是這幾種
CODE 代碼
DATA 數(shù)據(jù)
IDATA (這個內(nèi)存有點特別,官方給的是(此內(nèi)存類中的變量通過寄存器R0或R1訪問。))
XDATA 用MOVX的
還有個EDATA,這個僅在NXP 80C51MX有效
BIT 位,顧名思義
寫完了這個聲明好了這是什么,我們需要開始第一句,也就是代替ORG的RSEG
用法:RSEG 段名字
RSEG就是可重定位段,用來把鏈接的活給BL51干
特別注意,匯編不分大小寫!所以建議你全大寫表示這是匯編代碼(養(yǎng)成好習(xí)慣,后面這玩意要和C一起寫的)
?PR?LCD1602 SEGMENT CODE
復(fù)制代碼
這樣,美妙的開頭就寫完了
作者:
Astrix
時間:
2024-11-29 00:42
?PR?LCD1602 SEGMENT CODE
RSEG ?PR?LCD1602
復(fù)制代碼
重新補一下代碼
作者:
188610329
時間:
2024-11-29 11:46
你說錯了, ORG 位置是相對的,是可以偏移的,并不會打架
RSEG 只是 針對 CSEG , ISEG , XSEG 這些絕對位置而言,起到重定向的目的。因此,相對而言,喜歡用用ORG 來定義 中斷向量 而不用CSEG AT 才是最大的問題,需要避免。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久久电影
|
粉嫩高清一区二区三区
|
国产日韩精品在线
|
久久网站黄
|
春色av
|
欧美日韩亚洲一区
|
一区二区免费在线
|
亚洲看片
|
亚洲欧美一区二区三区国产精品
|
国产高清精品在线
|
日韩乱码一二三
|
狠狠爱免费视频
|
久久一区二区三区四区
|
午夜爱爱毛片xxxx视频免费看
|
中文字幕日韩欧美一区二区三区
|
在线色网站
|
亚洲精品久久久久久久久久久
|
欧美亚洲国产日韩
|
黄网免费
|
四虎在线视频
|
99精品一区
|
福利国产
|
精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频
|
国产成人精品一区二
|
h漫在线观看
|
国产精品久久久久久模特
|
青青久久av北条麻妃海外网
|
日本精品一区二区三区在线观看视频
|
精品一区二区三区在线观看
|
激情一区二区三区
|
午夜欧美一区二区三区在线播放
|
欧美日韩一二区
|
国产精品 欧美精品
|
成人性视频免费网站
|
日韩av在线中文字幕
|
精品av
|
欧美一级二级在线观看
|
国产91久久精品一区二区
|
国产精品久久久久一区二区三区
|
成人免费网视频
|
欧美一级片在线看
|