音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

匯編語言的困惑:好結構比差結構多占用4%空間

作者:ztb 欄目:單片機
匯編語言的困惑:好結構比差結構多占用4%空間
3500行程序分作24個模塊文件占用空間3657字節(jié)。很少使用AJMP,Acall
把這24個文件和成一個大文件占用空間3529字節(jié)。很少使用Ljmp,Lcall

空間緊張是不是“復辟”的理由?特向高人請教!




2樓: >>參與討論
isoar
換個rom大點的,把精力浪費到這上面有必要這樣嗎?
 
3樓: >>參與討論
ztb
批量大的產(chǎn)品這點就是盈虧的分界線!
 
4樓: >>參與討論
isoar
如果能把程序給你減下來,省下的錢能分幾成出來嗎?
以前干過這樣的事,很不爽,幾乎就是體力勞動
給你個基本建議,就是能不要就盡量不要子程序,程序在實現(xiàn)功能的前提下,盡量不結構化(能跳就跳)這樣的程序還有附加的好處,就是除了編的人其它人都看不懂,甚至編的人過兩個月不找到自己的畫的那張思路圖搞都看不懂。榨干每一個字節(jié)的程序空間。

5樓: >>參與討論
puppyh
好結構比差結構
頂樓的說:
A:
3500行程序分作24個模塊文件占用空間3657字節(jié)。很少使用AJMP,Acall
把這24個文件和成一個大文件占用空間3529字節(jié)。很少使用Ljmp,Lcall

空間緊張是不是“復辟”的理由?
B:
批量大的產(chǎn)品這點就是盈虧的分界線!
---------------------------------------------------------------
的確,容量的大小會涉及到盈虧的問題,但是好的結構的程序?qū)τ诋a(chǎn)品的開發(fā)周期以及系統(tǒng)的升級換代具有極大的優(yōu)勢,一個糟糕的結構對程序調(diào)試是不可想象,如果換了一個工程師接手這個項目,我相信那個工程師肯定不能很快的讀懂程序,也不會去讀,因為太難太繁了,那又要重頭再來一遍開發(fā)。對于公司來說損失太大。

6樓: >>參與討論
肖洋
你能找到介于那兩個大小之間的rom么
 
7樓: >>參與討論
ztb
謝謝各位,可能我的用意沒有表達清楚。
我編程多年了,深知這里的利害。我也是在使用好結構調(diào)試完成后才作合并處理的。但是現(xiàn)在我是在尋求一個兩全其美的方案:如何設置A51 和 BL51 使得它們可以在保留結構化基礎上匯編的更聰明些。
我上面的例子是完全沒有改變代碼的條件下,僅僅是將原來的模塊文件合并到一起(當然必須整理一下偽指令)得出的。
我發(fā)現(xiàn),老版本的A51(V3.2)匯編時必須是子程序在前面才會自動使用ACALL,而新版本的A51(V7.10)只要是在同一個模塊中就可以,但是對于外部模塊就是近在咫尺也是LCALL?锤魑皇欠裼泻棉k法,因為也許就差那么百十個字節(jié)就要更換一個MPU品種,總是不甘心!
RE isoar,結構好的程序一定比到處亂跳的程序更節(jié)約空間;如果一個好的算法那引起的變化也許會令人目瞪口呆!


8樓: >>參與討論
enbed
做這樣的活,太累了,換工作把.
當然,自己是老板,另當別論.



空間緊張不是給自己亂寫程序的理由啊.
每次同樣的功能,都要重寫一次程序,反而不合算的.

9樓: >>參與討論
isoar
我干過這樣的活,那只是我的心得并不是什么理論
那程序壓完了,我自己都不想再看,它只省下了一個唯一的優(yōu)點就是比原來小了進20%。
當時我的程序是在一個單獨的ASM文件里完成的,按住向下的鍵,都能把人按惡心了。這樣的程序絕對不能算是好程序。

10樓: >>參與討論
dengm
好的數(shù)據(jù)結構才能節(jié)約空間。
 
11樓: >>參與討論
dong
ajmp和ljmp都不用,用jmp。
讓編譯器去處理。

12樓: >>參與討論
hotpower
不好說
如果需要,好結果也要拆成壞結構以壓縮空間...

13樓: >>參與討論
conwh
這都不是最主要的
關鍵是能夠?qū)崟r地完成當前的任務。ASM2000就支持模塊結構的ASM編譯器。

14樓: >>參與討論
1121
如果只是壓空間,不管結構和可讀性,
用匯編可節(jié)省出許多存儲空間的。
其實長改短跳轉也就省出一個字節(jié),如果在子程序上下工夫,就會省出很多空間。

15樓: >>參與討論
AIRWILL
1121 有道理
在keilC 里,如果優(yōu)化選項成 將可能的共同代碼都變成子程序,的確能省出很多的空間,說不定,會比你的匯編還。

16樓: >>參與討論
ztb
不要脫離實際,節(jié)省空間有時的卻很重要!問題是如何即省又好
我說的這個程序的統(tǒng)計數(shù)據(jù)如下:其結構到底是什么水平相信大家會有一個基本概念。
模塊化結構時 占用 3657字節(jié),其中:
Call    131個
Jmp    72個
RET    105個
單一文件后代碼約3500
合成單一文件后僅節(jié)約128字節(jié)但是可以使用低一檔的MPU,盡管查一檔僅差一元。
可與月產(chǎn)1萬臺聯(lián)系起來后就不可漠視了。

匯編語言是最低級的語句,從理論上講其它語句占用的空間只能是大于等于匯編語言。
根據(jù)我的知識在同等編程水平上(注意這個前提條件),匯編比C51 節(jié)約20%的空間。而不是反過來!
倒是聽說過一種FORTH語言可以比匯編還省空間,可我理解它的省并不是它跨越了匯編,它是省在了結構上。它使得編程者超越了同等水平這個前提。我看過一本書叫《FORTH思維方法》,它對FORTH的定義是“一種計算機語言和解決問題的哲理”可見已經(jīng)超越編程本身,大有“功夫在詩外”的味道?吹贸鲇肍ORTH思維方法編出的程序一定短小精悍,可惜“陽春白雪和者蓋寡”在計算機日益普及的今天它卻淡出了。


* - 本貼最后修改時間:2005-5-24 14:40:36 修改者:ztb

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
求助unicode和ASCII轉換規(guī)則
現(xiàn)在幾乎不用51/96單片機了嗎?
請教,怎樣可以得到波特率38400
各位大蝦幫忙看看這段編譯出錯的問題!謝謝
幫忙推薦一種和89s52兼容的芯片包括isp
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號