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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4872|回復: 32
收起左側

為何單片機的廠家沒有自己的編譯器呢?

  [復制鏈接]
ID:283954 發表于 2021-8-3 17:10 | 顯示全部樓層 |閱讀模式
玩了四年的STC單片機,都是用匯編來寫程序,也沒什么困難,前些日子想試STC16,去KEIL下載了2051的編譯器,填上要求報價表,不見回應,看來是太有錢懶得賣,只好用老辦法打開,還能用,不過看了十六位的指令,沒發現什么吸引人的功能,除非有什么大的目標要實現,還是窩在8位舒服些。

說到這8位機,從STC12玩起可說是一路風順,內部功能逐一被調用,都沒什么問題,后來玩到STC8,沒有了晶振,體積又小,又很便宜,就玩起縮骨神功,把原來的設計變小,再變小,非常滿足。

但很快就要玩到8位機的極限,由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7F了,程序就再也寫不下去了,就奇怪為何STC單片機能夠做出那么多擴展記憶體,就做不出多一點可以直接存取,能即刻賦值的記憶體,比如128-255,這部分已經用在內部的寄存器,無法被用來給程序賦值用。

想來想去,硬件制造不是問題,就搞多幾個選擇開關而已,問題在于軟件,就算這樣的芯片做出來了,也沒有編譯器能夠去控制這些開關,根源就在于這些廠家沒有自己的編譯器,用的都是KEIL的,人人都用破譯的,不用錢,沒有人會笨到去開發自己的編譯器。

但廠家就不一樣,不是說是“國之重器”嗎?找幾個特勤勞的碼農,給予高薪,不出幾個月,準能把國產單片機的匯編編譯器給搞出來,才能把古老8位單片機的剩余潛能給挖掘出來,避免有一天突然被掐脖子,也能讓懶農能繼續留在8位的窩里。


回復

使用道具 舉報

ID:883242 發表于 2021-8-3 17:26 | 顯示全部樓層
匯編編譯器太簡單了吧,我一天就能寫一個。難的是高效率的c語言編譯器,免費的SDCC搞了這么多年,編譯效率還是差了Keil C51一大截。
回復

使用道具 舉報

ID:57657 發表于 2021-8-3 17:35 | 顯示全部樓層
STC是經過AT型號新增了一些寄存器、中斷來的。
目前國內的編譯器還屬于卡脖子技術,還無法擺脫keil軟件。
回復

使用道具 舉報

ID:419909 發表于 2021-8-3 18:03 | 顯示全部樓層
STC也一直用匯編的.都是牛人.!我們只能用C.組竟目前覺得這些單片機的FLASH還算夠大.
用匯編的話.不是一般建議用其它國產更便宜的單片機嗎?才1塊甚至幾毛錢,量大成本省不少.沒必要用STC.
回復

使用道具 舉報

ID:401564 發表于 2021-8-3 19:47 | 顯示全部樓層
"掐脖子"這個詞語是跟HW相關的自媒體最喜歡的一個詞語
在這個單片機技術專業相對比較強的論壇,沒有必要說這個,因為,我們幾乎沒有脖子給別人掐
英特爾1981年老古董,能讓STC成為"全球最大8051單片機設計公司",這是STC自己說的
能做晶圓的就那幾個廠,封裝都是日本那味精廠提供的材料,核心企業沒一家是我國的
樓上已經有人說了,匯編還要什么編譯器,Keil都是集成匯編編譯器的
現在不好做的是C編譯器,就是把C語言轉換成匯編的,那才是困難的,至于成本多大我不知道,我只知道沒有什么廠商愿意搞
人家大學教授都知道拿別的芯片來打磨(漢芯造假),銀子就到手了,誰還有心情搞編譯器呀,說不定編譯器剛剛搞好,廠子就倒閉了呢
看看寒武紀就知道了,股票一解禁,大股東直接套現走人,幾個億到手
目光短淺的我,如果手頭上有幾個億,編譯器?學單片機?逛論壇?我呵呵!我無法想象銀行存款一天的利息比我加班一個月還多是一種怎樣的生活
回復

使用道具 舉報

ID:170318 發表于 2021-8-4 09:49 | 顯示全部樓層
wfqxgw 發表于 2021-8-3 18:03
STC也一直用匯編的.都是牛人.!我們只能用C.組竟目前覺得這些單片機的FLASH還算夠大.
用匯編的話.不是一般 ...

請推薦價格低廉的或者幾毛錢的單片機,謝謝!
回復

使用道具 舉報

ID:57657 發表于 2021-8-4 11:32 | 顯示全部樓層
Y_G_G 發表于 2021-8-3 19:47
"掐脖子"這個詞語是跟HW相關的自媒體最喜歡的一個詞語
在這個單片機技術專業相對比較強的論壇,沒有必要說 ...

8051指令集 都是美國的,沒人愿意再搞國產8051編譯器。
只有研發 國產指令集 才有 國產編譯器。
回復

使用道具 舉報

ID:883242 發表于 2021-8-4 18:44 | 顯示全部樓層
npn 發表于 2021-8-4 11:32
8051指令集 都是美國的,沒人愿意再搞國產8051編譯器。
只有研發 國產指令集 才有 國產編譯器。

指令集專利有效期15年,所以死太慘可以放心大膽的做51單片機。
回復

使用道具 舉報

ID:401564 發表于 2021-8-4 19:25 | 顯示全部樓層
Hephaestus 發表于 2021-8-4 18:44
指令集專利有效期15年,所以死太慘可以放心大膽的做51單片機。

指令集是沒有專利,你說的專利是物理層面的,說白了就是內核或者電路
匯編指令就那幾條:+-*/與或非和跳轉,還有左右移位的
國產有幾個公司就是完全兼容PIC匯編指令的,連寄存器地址都是一樣的
在制造行業,8位單片機就性能,沒有什么好折騰的了,還有什么好研發的?就跟LM358一樣了,沒有必要研發了
但晶圓,光刻和封裝我們做不了,老外也沒幾個廠商能做的
你看這次晶圓廠產量減少,幾乎所有的芯片都沒貨......
回復

使用道具 舉報

ID:883242 發表于 2021-8-4 20:00 | 顯示全部樓層
Y_G_G 發表于 2021-8-4 19:25
指令集是沒有專利,你說的專利是物理層面的,說白了就是內核或者電路
匯編指令就那幾條:+-*/與或非和跳轉, ...

誰說沒有專利,IBM當年選Intel做PC的CPU供貨商要求找一個備胎,Intel就找了對門的AMD,然后IBM逼著Intel簽了一個授權AMD使用x86指令集及其擴展的協議書,現在AMD最重要的資產就是這張紙。

還有一個叫Transmeta的公司,95年成立,秘密研發兼容386的CPU,他的技術路線實現方法跟Intel完全不一樣,到了99年386指令集專利過期,馬上推出自己的CPU,可以跑Windows、Word、Excel,能耗比優于Intel/AMD的CPU,適合于筆記本。但是Intel也沒閑著,一直給x86指令集擴展打補丁,Transmeta的CPU因為專利問題不能跑MMX等指令集,多媒體性能不佳,賣了幾年后倒閉了。
回復

使用道具 舉報

ID:47286 發表于 2021-8-4 20:05 | 顯示全部樓層
大哥 你想的太簡單了 這東西不是有個編譯器的問題 是個科技樹的問題 就好比先讓你無比了解一切突擊步的制造過程 包括火藥的制造過程 然后把你穿越到宋朝 算了 太遠 明朝吧 也根本不可能造出來

我們的現狀就是應用研究 沒時間 沒精力搞基礎研究 但沒有基礎研究基本上就不可能有自己的產品 無非是在人家的基礎上改一改 從改革開放開始才開始進入工業化 這之前都是個農業國 就這么幾十年 發展已經飛快了 不要一下要求太多
回復

使用道具 舉報

ID:57657 發表于 2021-8-4 20:11 | 顯示全部樓層
Y_G_G 發表于 2021-8-4 19:25
指令集是沒有專利,你說的專利是物理層面的,說白了就是內核或者電路
匯編指令就那幾條:+-*/與或非和跳轉, ...

8位單片機主要價格優先,當主頻達到上百Mhz,生產成本幾乎與32位劃等號。
回復

使用道具 舉報

ID:883242 發表于 2021-8-4 21:47 | 顯示全部樓層
dzbj 發表于 2021-8-4 20:05
大哥 你想的太簡單了 這東西不是有個編譯器的問題 是個科技樹的問題 就好比先讓你無比了解一切突擊步的制造 ...

沒你說的這么復雜,找精通編譯器人的改造一個很簡單也花不了幾個錢,當年avr-gcc就是atmel贊助的。

問題是生產51的國內廠家覺得這種做法只有投入沒有回報所以不做。
回復

使用道具 舉報

ID:47286 發表于 2021-8-4 21:59 | 顯示全部樓層
Hephaestus 發表于 2021-8-4 21:47
沒你說的這么復雜,找精通編譯器人的改造一個很簡單也花不了幾個錢,當年avr-gcc就是atmel贊助的。

問 ...

你這意思和我說的兩碼事吧 改造也不是自己造啊 就算找keil買編譯器版權 那也不是自己造的 不是么 atmel也不是國產的
回復

使用道具 舉報

ID:401564 發表于 2021-8-4 23:33 | 顯示全部樓層
Hephaestus 發表于 2021-8-4 20:00
誰說沒有專利,IBM當年選Intel做PC的CPU供貨商要求找一個備胎,Intel就找了對門的AMD,然后IBM逼著Intel ...

那是硬件電路上的東西
不是指令集,你的說專利是執行當前硬件的電路或者內核
你去看一下大家常用的8051指令,它能有專利?
MOV P0,A    這個是把累加器A的值傳送到P0端口,你告訴我一下,專利何在?
如果有專利,隨便就能避開!
跳轉指令:8051用的是JMP
PIC用的是GOTO
那我中文用tiao行不行?
人家說的專利是硬件電路的制造工藝,不同的指令集制造工藝是不一樣的,大概就是:我這個1+1=2用的是這個電路,你就不能用,你1+1=2就得用別的電路
8位單片機最多256條指令,8051就是255條
精簡指令一般是30條指令左右,無非就是+-*/之類的,一個二進制的機器語言是沒有專利的
如果是軟件的話,專利大多是算法專利
回復

使用道具 舉報

ID:883242 發表于 2021-8-4 23:58 | 顯示全部樓層
Y_G_G 發表于 2021-8-4 23:33
那是硬件電路上的東西
不是指令集,你的說專利是執行當前硬件的電路或者內核
你去看一下大家常用的8051 ...

Instruction Set Architecture是有專利的,包括寄存器模式、指令集等等。

你說的那些也是曾經存在過的,Z80就是靠修改了匯編偽碼繞開了8080專利,實現了對8080指令的兼容和擴展。但是ISA專利是80年代中期律師們發明創造出來,再像Z80那種手段已經繞不開了。
回復

使用道具 舉報

ID:420836 發表于 2021-8-5 08:47 | 顯示全部樓層
Microchip、德州儀器和ST都有自己的單片機編程和編譯軟件。
回復

使用道具 舉報

ID:798631 發表于 2021-8-5 09:05 | 顯示全部樓層
首先想想有沒有必要吧,沒必要的話花那錢不是成本么。在現有的基礎上  通用的編程軟件能用,沒人會去再研發的,研發費用高,測試周期長先不說,就說研發出來誰用啊。TI自己做的IDE我反正是不用的  用IAR用熟了,用TI的特別不順手,做成完全一樣的也就沒有意義了。破解版本滿世界都是,最高版本的軟件有幾個人老手在用,我的好多朋友都還在用KEIL 4,   AD6.0,無他手熟了   
回復

使用道具 舉報

ID:958310 發表于 2021-8-5 10:49 | 顯示全部樓層
",由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7F了"
回復

使用道具 舉報

ID:958310 發表于 2021-8-5 10:49 | 顯示全部樓層
“,由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7F了”這句話是什么意思啊?
回復

使用道具 舉報

ID:419909 發表于 2021-8-5 11:05 | 顯示全部樓層
bigbigcong 發表于 2021-8-5 10:49
“,由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7 ...

估計是51獨有的那點內存.最快那塊.
回復

使用道具 舉報

ID:584195 發表于 2021-8-5 12:49 | 顯示全部樓層
bigbigcong 發表于 2021-8-5 10:49
“,由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7 ...

7f 就是16進制的,也就是127 只是表不同而已。俗話說的半斤八兩吧。
回復

使用道具 舉報

ID:283954 發表于 2021-8-5 16:37 | 顯示全部樓層
bigbigcong 發表于 2021-8-5 10:49
“,由于剛學的時候不懂得0-127,能即刻賦值的記憶體的寶貴,把其中大部分用在設定參數上,現在已經用到快7 ...

51單片機從0到127的記憶體是最重要的,能即刻賦值,比如MOV 33H, #20, 能運算決定流程,比如DJNZ 33H,THERE,能直接傳給另一個記憶體,比如MOV 34H, 33H,能即刻增量或減量,如 INC 33H, DEC 33H,  最近才看見有人說可以PUSH, POP, 這是編寫程序最需要的資源,沒有其他資源可以替代,當你把這些資源用完以后就再也寫不下去了,這時想如果還有MOV 80H,#20可用多好!或者MOV FFH, #20更好,但這部分都是內部使用的寄存器,盲目賦值后會得到你不想要的結果,比如串口波特率改變,或在IO口輸出一些數值,這部分的用途可查看51說明書,我看了一下,到了STC8G幾乎用完,沒有發展空間了。

如果廠商有自己的匯編編譯器,他就有可能可以用附加的指令,比如MOVZ,80H, #20 等指令,在編譯成機器碼時加上選擇記憶體的邏輯開關,再加上原來的指令,執行后把開關撥回原來的樣子,我就能有另外的資源可以編程了。

但這些都是廠家的事,外人是做不來的,對于力圖在原有51架構上增加附加功能的廠家,我們只能玩51的人還是非常感激的。

會玩51的人數國內應該是百萬級的吧,這就是生態,51還能玩很多年的,至于那個2051,文獻都說當年推出后也沒有流行起來,連祖師爺INTEL都沒辦法,誰還能行呢?
回復

使用道具 舉報

ID:883242 發表于 2021-8-5 19:57 | 顯示全部樓層
TTQ001 發表于 2021-8-5 08:47
Microchip、德州儀器和ST都有自己的單片機編程和編譯軟件。

太小太別扭的單片機才有自己的編譯軟件,規模稍微大一些的單片機都是gcc。
回復

使用道具 舉報

ID:147710 發表于 2021-9-19 11:46 | 顯示全部樓層
匯編精簡指令就幾十條,所有的算法都在里面倒騰,一竿子到底直達底層硬件,玩起來很有掌控感,能理解樓主的這種爽,但商業化操作要求的是低成本(硬件成本,學習成本,開發成本,維護成本),高性能,上市迅速,現在產品逐漸在網絡化(USB,WiFi),可視化(攝像頭,顯示屏),開發動不動就上操作系統,各種庫函數,API,感覺現在軟件逐漸在硬件化,各種帶MCU的專用IC大量涌現,開發產品就像搭積木,在操作系統下調用幾個硬件廠商提供的API就搞定了,估計以后除了芯片開發,大量應用開發者壓根不再有機會接觸到寄存器了。芯片荒之前,20多塊就能買到的MCU:K210,主頻400M(最高能到600M),帶硬件視覺算法,AI算法,真不敢想象。
回復

使用道具 舉報

ID:624769 發表于 2021-9-19 21:20 | 顯示全部樓層
你的主要需求矛盾 是:  直接尋址  寄存器  太少, 只有 7F, 對吧?
這個編譯器有一毛錢關系么? 硬件上,直接尋址寄存器 只有 0~7F,   80~FF 給特殊寄存器用了, 你編譯器再開發能改變這個問題么?

然后,你說你直接尋址寄存器 只到7F 不夠用, 我是相當不理解的,去掉通用寄存去 R0-R7 4組 32個字節, 去掉位尋址寄存器 16個字節, 至少還有 80 個字節的 可直接尋址的寄存器,居然不夠用??
你有那么多參數,是必須直接尋址的? 你設置80個變量名,自己能記住么? 你寫代碼,完全不用循環節的?
我見過好多人抱怨特殊寄存器不能間接尋址,無法把 80~FF 的特殊寄存器的內容批量讀出來,批量賦值我倒還覺得抱怨的優點道理,直接尋址寄存器 80個字節怎么都夠了阿~ 真有那么多變量,有幾個人是不用指針去處理的?起80個不帶重復的變量名,還不帶數字的我覺得難度好高的說,但凡帶了數字的命名變量,哪怕間接尋址,也不會覺得麻煩和不方便了吧?
反正,我就見過好多 幾K 擴展內存都不夠用的人,直接尋址寄存器,都用不到10個。遇到特殊項目抱怨位地址寄存器少的到是有。
回復

使用道具 舉報

ID:283954 發表于 2021-9-20 01:22 | 顯示全部樓層
說的很對,直接尋址寄存器一般是夠用的,但我當初開始學寫的時候還不懂得這些寄存器的珍貴,把5組設定共25個寄存器給用了,隨著代碼越來越多,需要用到更多寄存器,慢慢就用完了,已經嘗試把很多移到間接尋址的寄存器,但畢竟像擠舊牙膏式的,擠一點用一點,我是希望能有一個新的牙膏用,新款的51單片機已經作了很多新的擴充,就是這部分沒有進展,推測是因為沒有自己的編譯器,限制了發展?纯次业募拇嫫鞅恚

;30H FOR MEMORY INDEXING EPROM START READ HERE
;31H FOR PLAYMODE
;32H FOR CHANNEL SET

;----------------------------
;33H FOR PROGRAM SET1
;34H FOR PROGRAM SET2
;35H FOR PROGRAM SET3
;36H FOR PROGRAM SET4
;37H FOR PROGRAM SET5

;38H FOR VOLUME SET1
;39H FOR VOLUME SET2
;3AH FOR VOLUME SET3
;3BH FOR VOLUME SET4
;3CH FOR VOLUME SET5

;3DH FOR OCTACT SET1
;3EH FOR OCTACT SET2
;3FH FOR OCTACT SET3
;40H FOR OCTACT SET4
;41H FOR OCTACT SET5

;42H FOR BANK M SET1
;43H FOR BANK M SET2
;44H FOR BANK M SET3
;45H FOR BANK M SET4
;46H FOR BANK M SET5

;47H FOR BANK L SET1
;48H FOR BANK L SET2
;49H FOR BANK L SET3
;4AH FOR BANK L SET4
;4BH FOR BANK L SET5

;4CH FOR ATTACK SET1
;4DH FOR ATTACK SET2
;4EH FOR ATTACK SET3
;4FH FOR ATTACK SET4
;50H FOR ATTACK SET5

;------------------------
;51H FOR LOAD PROGRAM
;52H FOR LOAD VOLUME
;53H FOR LOAD OCTACT
;54H FOR LOAD BANK M --EPROM READ UNTIL HERE
;55H FOR LOAD BANK_L
;56H FOR LOAD ATTACK
;57H ADC CHANNEL


;58H FOR STORE LAST CHANNEL
;59H FOR REMEMBER LAYER SENT
;5AH FOR STORE STATUS
;5BH FOR STORE FIRSTDATA
;5CH FOR STORE SECONDDATA
;5DH FOR REMMBERLAST STATUS
;5EH FOR REMEMBER NUMERIC KEY# 1-9(USE FOR TASK MAP)
;5FH FOR REMEMBER PRESET NUMBER(1-5)

;60H FOR SYSTEM VOLUME
;61H FOR TEMP(SAVE MODE)
;62H FOR LEDTIME PRESET
;63H FOR MEMORY R1
;64H FREE
;65H FOR IR VALUE
;66H FREE
;67H FREE
;68H FREE
;6AH NO USE
;6BH NO USE
;6CH FOR x10
;6DH,6EH.6FH FOR LED DISPLAY LOOP TIME
;70H FOR PLAYNOTESUB STORE NOTE NUMBER TO PLAY
;71H DELAY
;72H DELAY
;73H DELAY
;74H FREE
;75H FREE
;76H IS FOR COUNT SEVERAL KEY PRESS BY SEQUENCE, IF MATCH THEN LOAD DEFAULT
;77H FOR TRANSPOSE
;78H FOR MEMORY ADC VALUE
;79H FOR STORE MAX ADC HIGH VALUE
;7AH FOR ADJUST ADC VLAUE
;7BH FOR ADC LOW VALUE
;7CH FOR AVERAGE 7AH
;7FH FOR PCA COUNT

;BIT 12H FOR CONTROL LED DISPLAY USING TIMER
;BIT 13H FOR MARK AS "NOTE ON/OFF" STATUS
;BIT 14H FOR MARK AS DIRECT MODE NO MORE USE
;BIT 15H FOR PROGRAM SEND
;BIT 16H FOR PRESSURE SEND
;BIT 17H, 18H FOR RUNNING STATUS
;BIT 20H FOR DOUBLE LAYER
;BIT 20H FOR SILENT MODE, NOW NOT USE
;BIT 21H FOR SPLIT MODE
;BIT 23H FOR ADC BUSY
;BIT 24H FOR INTRARED CODE VALID
;BIT 25H FOR TOTAL DIRECT
;BIT 26H FOR IR REPEAT
;BIT 40H FOR UART1 BUSY
;BIT 41H FOR UART2 BUSY
;BIT 43H FOR MIDIOUT BUSY
;BIT 47H FOR PCA INT MARK
;BIT 48H FOR
;BIT 49H FOR SECONDDATA(NOT)x10 SWITCH
;BIT 4AH
;BIT 59H FOR SWITCH MENUS x16
回復

使用道具 舉報

ID:624769 發表于 2021-9-20 15:21 | 顯示全部樓層
dalaoshi 發表于 2021-9-20 01:22
說的很對,直接尋址寄存器一般是夠用的,但我當初開始學寫的時候還不懂得這些寄存器的珍貴,把5組設定共25 ...

天哪……
你匯編編程的時候,不會跟我說,都是看這些注釋,然后,直接打地址,編程的吧?

一般不都是:
PROGRAM_SEND    BIT   15H
PRESSURE_SEND    BIT   16H
或者:
MY_BIT_SETTING   Segment BIT
RSEG  MY_BIT_SETTING
PROGRAM_SEND:    DBIT   1
PRESSURE_SEND:    DBIT   1

這樣設置好,然后,下面打代碼的時候直接引用的么?
SETB   PROGRAM_SEND
CLS     PRESSURE_SEND

回復

使用道具 舉報

ID:624769 發表于 2021-9-20 21:59 | 顯示全部樓層
dalaoshi 發表于 2021-9-20 01:22
說的很對,直接尋址寄存器一般是夠用的,但我當初開始學寫的時候還不懂得這些寄存器的珍貴,把5組設定共25 ...

首先,按你的的這個表看, 很多東西應該是批量處理的, 完全就應該用的間接地址,而不應該用直接地址.

其次,看你發的這個東西類似注釋,那么換句話說這些地址你都沒有定義, 你完全是在編寫程序時,直接輸入的地址,而不是地址代號. 那么, 可以這么說,任何編譯器對你的意義都不大,
為什么這么說呢, 編譯器的作用主要是對很多代號的處理上, 比如 LJMP  MAIN    就會挑磚到 MAIN:  這個標志的地方。這是編譯器的用途,當然,你可以不使用編譯器的這個功能, 而直接使用, LJMP  0100H   來跳到主程序的地址。甚至你只要稍微花點時間計一下255個指令, 你可以拋棄編譯器, 直接用16進制編輯器(WinHEX) 這類的,直接用 02 01 00  這樣的方式來寫 LJMP 0100H ,  所以,就算有國產的編譯軟件,前提也是要按編譯軟件的要求養成習慣進行才行, 就好像 大多數人,把P0端口所有 IO拉低 都會用 MOV  P0,#00H  而不會用  MOV   80,#00H 。 為什么呢? 因為考慮到將來的升級或者變更,假定下一個單片機 P0 不是 80了怎么辦?
假定,如你所愿編譯器可以 用 MOV  xxxx, #00H   對某個間接地址直接寫,其實編譯器做的就是 后臺, MOV  R0,#xxxx     MOV   @R0,#00H   這兩個操作, 但是,前提,這個 xxxx 肯定是一個代號,而不是一個地址。 那么編譯器才可能 “ 相對智能的” 根據你命名這個代號的時候  是  IDATA 還是 DATA 來區分,而你光用地址的話,如何區分??
回復

使用道具 舉報

ID:824490 發表于 2021-9-20 23:51 | 顯示全部樓層
開飯店的,也沒見過他種大米。。
回復

使用道具 舉報

ID:283954 發表于 2021-9-22 15:41 | 顯示全部樓層
188610329 發表于 2021-9-20 21:59
首先,按你的的這個表看, 很多東西應該是批量處理的, 完全就應該用的間接地址,而不應該用直接地址.

其 ...

如你所言,前面那25個參數是可以移到間接尋址的,這樣舊牙膏還能擠出多幾滴,但頗費周章。

也不知道什么時候起,我就養成把寄存器的用途注釋放在代碼前面的習慣,覺得這樣做頂好的,如果把某個寄存器命名成某個名字,剛使用還能記住,一段時間后就記不住了,因為名字不可能太長,而且很多限制,這辦法能寫上一段文字說明,編程是直接寫號碼就行,而且很工整。

代號主要是用在副程式,我還有一個習慣,就是副程式的回歸一定要跳到末尾,不要中間就跳走,比如:
SENTBYTE:
......
JB 30H, SENTBYTEEXIT
......
SENTBYTEEXIT:
RET

這樣維護起來簡單。
回復

使用道具 舉報

ID:624769 發表于 2021-9-22 16:54 | 顯示全部樓層
dalaoshi 發表于 2021-9-22 15:41
如你所言,前面那25個參數是可以移到間接尋址的,這樣舊牙膏還能擠出多幾滴,但頗費周章。

也不知道什 ...

首先,命名可以很長,其次,命名后,在他的后面,一樣可以 ;+ 注釋。
與其說命名,到不如說標簽吧,依賴各種標簽,偽指令,預編程的人,才會對編譯器有各種要求。你應該不屬于此類。
每個人的編寫習慣,我不做評論。
我想說的是:按你的編寫習慣,壓根不需要什么國產自己的編譯器,因為說得不好聽一點,你只要再記一下255個指令的16進制代碼,就可以了直接用16進制編輯器來編程了;蛘咴赥XT編輯器了,編寫后,用忽略回車的方式,轉16進制文件,就是程序文件了。所以為何會發這個主題,比較困惑。
回復

使用道具 舉報

ID:967978 發表于 2021-9-26 09:20 | 顯示全部樓層
每個單片機廠家開發、經營模式不一樣,有的有自己的編譯器,有的則沒有。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区四区五区 | 久久久成人一区二区免费影院 | 国产精品入口麻豆www | 国产69精品久久99不卡免费版 | h视频在线免费看 | 日韩精品一区二区三区 | 日韩一区不卡 | 伊人二区| aaaaaa大片免费看最大的 | 欧美日韩电影一区 | 欧美成人一级 | 久久久国产精品视频 | 国产成人久久精品 | 日韩和的一区二区 | 亚洲欧美日韩中文在线 | 成人免费视频网站在线看 | 久久精品欧美一区二区三区不卡 | 久久亚洲一区二区 | 丝袜一区二区三区 | 久久爱综合 | 日本三级播放 | 精品婷婷| 国产精品久久久久久中文字 | 国产免费一区二区三区 | 日韩成人免费中文字幕 | 国产午夜精品一区二区三区四区 | 成人免费影院 | 亚洲精品成人av久久 | 亚洲在线一区二区 | 日韩一二三 | 久久久婷婷 | 亚洲成人久久久 | 综合成人在线 | 亚洲精品在线看 | 欧美黑人狂野猛交老妇 | 91精品国产91久久久久久 | 国产色婷婷精品综合在线播放 | 羞羞视频网站免费观看 | 国产精品久久久久久久久免费桃花 | 久久精品综合 | 国产特级毛片aaaaaa喷潮 |