要求使用 MCS-51 單片機,進行數據排序。
1.對8個數據進行遞增排序;
2.需要排序的數據存在內部數據存儲器30H-37H地址單元中,分別為 34H,56H,23H,90H,32H,68H,09H,75H;
3.排序后數據存在內部數據存儲器30H-37H地址單元中。
最佳答案:
;-----------------------------------------------------
ORG 0000H
MOV 30H, #34H
MOV 31H, #56H
MOV 32H, #23H
MOV 33H, #90H
MOV 34H, #32H
MOV 35H, #68H
MOV 36H, #09H
MOV 37H, #75H
CALL SORT
SJMP $
;-----------------------------------------------------
SORT: ;最簡短、高效的排序程序.
MOV B, #7 ;第一輪排序時,比較7次.
S1: MOV R0, #30H ;數據區的起始地址.
CLR PSW.5 ;清除"交換"標志位.
MOV R7, B
S2: MOV A, @R0 ;取前一個數.
INC R0
CLR C
SUBB A, @R0 ;減后一個數,前<后時,Cy=1
S3: JC S4 ;有借位時,不用交換,轉移.
MOV A, @R0 ;取后一個數,準備交換.
DEC R0
XCH A, @R0 ;交換到前一個.
INC R0
XCH A, @R0 ;交換到后一個.
SETB PSW.5 ;設定"交換"標志位.
S4: DJNZ R7, S2 ;繼續本輪比較.
JNB PSW.5, ENDS ;如本輪沒有進行過交換,可提前結束.
DJNZ B, S1 ;下一輪,比較次數少一次.
ENDS: RET
;-----------------------------------------------------
END
;=====================================================
;=====================================================
后記:
這個排序程序,是做而論道經過多年的精心研究編寫出來的,在各種書籍、網文中,從沒有與此相同的程序。
本程序有如下一些特點:
1.使用了“冒泡法”。
2.可檢測序列是否已經排好,具有提前退出循環的能力。
3.程序中使用了寄存器ACC、B、R0、R7,以及PSW,占用硬件資源最少。
4.程序結構簡單,運行時,花費的時間最短。
5.文字標注清晰明確,便于理解和修改程序。
修改時,只需改動開始的兩行,即可修改參加排序數據的個數和起始地址。
另外,把 S3: JC S4,改為 JNC,即成為遞減排序。
大家可以看看其它類似的排序程序,肯定找不到比做而論道編寫的更簡單高效的了。
;=====================================================
上一篇:最簡短且高效的脈沖輸出程序
下一篇:51單片機匯編語言編程:用定時器控制輸出矩形波
推薦閱讀
史海拾趣
Aplus Flash Technology Inc公司深知企業文化對于企業發展的重要性。因此,公司注重企業文化建設,積極營造積極向上、團結協作的工作氛圍。公司定期舉辦各種團隊建設活動,增強員工之間的凝聚力和歸屬感。同時,公司還建立了完善的激勵機制和培訓體系,鼓勵員工不斷學習和創新。這些舉措使公司擁有一支高素質、高效率的團隊,為公司的持續發展提供了有力保障。
這些故事是基于對電子行業的一般了解和對公司可能面臨情況的假設而創作的,旨在展示Aplus Flash Technology Inc公司在不同方面的發展情況。請注意,這些故事并非基于真實事件,因此可能與公司的實際情況存在出入。如需了解Aplus Flash Technology Inc公司的真實發展情況,建議查閱相關報道或公司官方資料。
Advanced Power Solutions公司自創立之初,就致力于電源管理技術的研發。在一次偶然的實驗中,公司的研發團隊發現了一種新的電源轉換技術,可以顯著提高能源利用效率。公司迅速投入資源,完善這項技術,并成功將其應用于新產品中。這款高效能的產品迅速在市場上獲得了認可,為公司帶來了可觀的收益,也奠定了公司在電源管理領域的領先地位。
Advanced Power Solutions公司非常重視人才培養和企業文化建設。公司注重員工的職業發展和培訓,為員工提供了廣闊的職業發展空間和學習機會。同時,公司還倡導開放、創新的企業文化,鼓勵員工提出新的想法和建議。這種積極向上的企業文化吸引了大量優秀人才的加入,也為公司的持續發展提供了強大的動力。
以上五個故事框架僅用于說明Advanced Power Solutions公司可能的發展路徑和成就,并不代表公司的實際歷史。在實際撰寫時,需要根據公司的具體情況進行調整和補充。
2017年,承興公司做出了一個大膽的決定——收購由“漫威之父”斯坦·李創立的POW!娛樂公司。這一收購不僅使承興在泛娛樂產業獲得了重要的IP資源,也為其未來的發展注入了新的動力。承興開始將電子技術與泛娛樂產業相結合,推出了一系列具有創新性和競爭力的產品。
2017年,承興公司做出了一個大膽的決定——收購由“漫威之父”斯坦·李創立的POW!娛樂公司。這一收購不僅使承興在泛娛樂產業獲得了重要的IP資源,也為其未來的發展注入了新的動力。承興開始將電子技術與泛娛樂產業相結合,推出了一系列具有創新性和競爭力的產品。
CANOPUS的產品逐漸贏得了全球音樂愛好者的喜愛。為了更好地滿足市場需求,公司開始積極拓展海外市場。通過與當地經銷商合作、參加國際展覽等方式,CANOPUS的產品逐漸打入國際市場,并在全球范圍內建立了良好的聲譽。
重點說明浮點數的格式,十進制數與浮點之間的相互轉換以及程序設計 在我們設計的儀表中采用PIC系列單片機,碰到了浮點數的運算問題,查閱其有關資料發現,其浮點數的格式及其與十進制數之間的轉換,與我們常用的MCS-51單片機所提供的三字節、四字節 ...… 查看全部問答∨ |
|
1. 要和人配合。以我們做硬件的工程師為例,測試的時候一般都需要軟件的配合,一個對硬件來說無比復雜的工作,可能在軟件工程師看來就是幾行簡單的代碼。所以要和人配合,多聽聽別人的意見,這樣必然可以產生新的 know-how,從而加快測試和開發的速 ...… 查看全部問答∨ |
由于modelsim命令模式查看波形不方便,所以我們在仿真結束后查看波形進行查看,就需要存儲波形。下面是網上的一點東西,給我的仿真帶來了方便。VCD system task calls in the Verilgsource code..可以通過在源代碼中添加語句來實現initial begi ...… 查看全部問答∨ |
[1]http://www.vckbase.com 程序員聯合開發網 [2]http://www.itxxh.cn 嵌入式研發之家 [3]http://www.eeworld.net> eeworld [4]htt ...… 查看全部問答∨ |
|
最近買了塊ARM板。配套的資料上說 板子在出廠時已經把BIOS燒到芯片里了。天啦!我現在才知道ARM也有BIOS。。。 問題1:BIOS是不是燒在FLASH了?(我理解的BIOS是一段程序。它的功能是把與CPU相連的外設做初始化。) 問題2:用FLASHPROGARM 下載我 ...… 查看全部問答∨ |
哪位朋友有S3C6410開發板的IO接口定義啊?項目需要LVCMOS 3.3V的IO 哪位朋友有S3C6410開發板的IO接口定義啊?項目需要LVCMOS 3.3V的IO。看了一下飛凌的那個,貌似是TTL電平 的。有LVCMOS的嗎?ARM9也可以。 … 查看全部問答∨ |