欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3951|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

一個(gè)匯編程序,哪位大俠看的懂的幫忙看看唄

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
一個(gè)匯編程序,哪位大俠看的懂的幫忙看看唄

IMG_20170226_172117.jpg (478.92 KB, 下載次數(shù): 127)

IMG_20170226_172117.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:74784 發(fā)表于 2017-2-26 22:37 | 只看該作者
看了
玩匯編代碼
一要有注釋
二要和硬件聯(lián)系在一起才行
這兩點(diǎn)都沒有
難啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:166817 發(fā)表于 2017-2-27 01:44 | 只看該作者
匯編以前剛開始就學(xué)的匯編,后來學(xué)了c語言,基本通用了,趕緊去學(xué)習(xí)C語言吧
回復(fù)

使用道具 舉報(bào)

地板
ID:27916 發(fā)表于 2017-2-27 08:47 | 只看該作者
看懂這個(gè)有什么用?
初始化了一下SP,Timer,清了幾個(gè)RAM,,,,

便有有錯(cuò)誤,還是先把錯(cuò)誤改了吧
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2017-2-27 12:58 | 只看該作者
贊同二樓。
本人從不用C寫單片機(jī)程序,只用寫。
回復(fù)

使用道具 舉報(bào)

6#
ID:72947 發(fā)表于 2017-2-27 13:47 | 只看該作者
定時(shí)器0和定時(shí)器1初始化程序,第1句設(shè)置堆棧首地址,第2句設(shè)置T0和T1的模式,第3、4句設(shè)置T0初值,第5、6句設(shè)置T1初值,接下來吧一堆標(biāo)志位清零;鑒定完畢!
回復(fù)

使用道具 舉報(bào)

7#
ID:153041 發(fā)表于 2017-2-27 15:37 | 只看該作者
補(bǔ)充樓上意見,編譯錯(cuò)誤信息表示 F_0 到 F_9  沒有定義。 就像c語言變量沒有聲明一樣。應(yīng)該在程序的開頭定義好,比如 #define F_0  00h   (00h指向內(nèi)存位尋址的第一個(gè)位)
回復(fù)

使用道具 舉報(bào)

8#
ID:111634 發(fā)表于 2017-2-27 16:19 | 只看該作者
本帖最后由 zl2168 于 2017-2-27 16:22 編輯
yzwzfyz 發(fā)表于 2017-2-27 12:58
贊同二樓。
本人從不用C寫單片機(jī)程序,只用寫。

C程序與匯編程序雖各有千秋,但C程序優(yōu)點(diǎn)更多。


C51編程的特點(diǎn)


C51編程與80C51匯編語言相比,主要具有以下特點(diǎn):


編程相對(duì)方便。


用匯編語言編程,幾乎每一條指令操作都與具體的存儲(chǔ)單元有關(guān),80C51單片機(jī)的片內(nèi)存儲(chǔ)空間容量有限,編程之初即需安排好片內(nèi)存儲(chǔ)單元的用途,且一般不宜重復(fù)使用。當(dāng)一些應(yīng)用項(xiàng)目程序量較大時(shí),片內(nèi)存儲(chǔ)單元有可能捉襟見肘,稍有不慎就將出錯(cuò),編程相對(duì)復(fù)雜。而C51編譯系統(tǒng)能自動(dòng)完成對(duì)變量存儲(chǔ)單元的分配和使用,且對(duì)函數(shù)內(nèi)局部變量占用的存儲(chǔ)單元,僅在調(diào)用時(shí)臨時(shí)分配,使用完畢即行釋放,大大提高了80C51片內(nèi)有限存儲(chǔ)空間的使用效率。因此,使用者只需專注于軟件編程,不需過多關(guān)注涉及的具體存儲(chǔ)單元及其操作指令,編程相對(duì)方便。


便于實(shí)現(xiàn)各種復(fù)雜的運(yùn)算和程序。


C語言具有豐富且功能強(qiáng)大的運(yùn)算符,能以簡單的語句方便地實(shí)現(xiàn)各種復(fù)雜的運(yùn)算和程序。相比之下,匯編語言要實(shí)現(xiàn)較復(fù)雜的運(yùn)算和程序,就比較困難。例如,雙字節(jié)的乘除法,匯編語言要用許多條指令操作才能完成;而C51只需一條語句便能方便實(shí)現(xiàn)。又例如,循環(huán)、查表和散轉(zhuǎn)等程序,C51語句實(shí)現(xiàn)起來也相對(duì)簡單方便(當(dāng)然C51語句編譯轉(zhuǎn)換為匯編語言指令后仍然復(fù)雜,只是不用程序員操心,由編譯器自動(dòng)完成罷了)。


可方便地調(diào)用各已有程序模塊。


已有程序模塊包括C51編譯器中豐富的庫函數(shù)、用戶自編的常用接口芯片功能函數(shù)和以前已開發(fā)項(xiàng)目中的功能函數(shù)。讀者可能會(huì)說,匯編程序不也一樣可以調(diào)用嗎?不一樣。匯編程序調(diào)用時(shí),涉及到模塊中具體的存儲(chǔ)單元,這些存儲(chǔ)單元很可能與主調(diào)用程序有重復(fù),會(huì)引起沖突而出錯(cuò)。而C51程序函數(shù)中的變量一般為局部變量,主函數(shù)調(diào)用前不占用存儲(chǔ)單元,僅在調(diào)用時(shí)由C51編譯器根據(jù)存儲(chǔ)區(qū)域空余情況臨時(shí)分配,使用完畢即行釋放,一般不會(huì)發(fā)生沖突而出錯(cuò)。因此,C51程序可方便地調(diào)用各已有程序模塊,減少重復(fù)勞動(dòng),利于團(tuán)隊(duì)合作開發(fā),大大提高編程效率。


可讀性較好。


C語言屬于高級(jí)語言。一條C51語句,會(huì)編譯為多條甚至許多條匯編指令(例如數(shù)學(xué)運(yùn)算和循環(huán)程序等),相對(duì)來說,C51程序簡潔而清晰,可讀性較好。


實(shí)時(shí)性較差。


匯編語言指令每一條對(duì)應(yīng)13字節(jié)機(jī)器碼,每一步的執(zhí)行動(dòng)作都很清楚,程序大小和堆棧調(diào)用情況都容易控制,響應(yīng)及時(shí),實(shí)時(shí)性較好。而C51程序并不能被單片機(jī)直接執(zhí)行,需編譯轉(zhuǎn)換為匯編語言指令。一條C51語句編譯后,會(huì)轉(zhuǎn)換成很多機(jī)器碼,占用單片機(jī)片內(nèi)較多資源,可能出現(xiàn)ROMRAM空間不夠,堆棧溢出等問題;且執(zhí)行步驟不很明確,有時(shí)還會(huì)兜圈子,因而實(shí)時(shí)性較差(參閱9-3),甚至?xí)驎r(shí)序配合不好而出錯(cuò)。然而,隨著單片機(jī)芯片技術(shù)的發(fā)展,其運(yùn)行速度和內(nèi)存容量有了較大提高,這些都為C51的應(yīng)用創(chuàng)造了有利條件。
以上摘自張志良編著《80C51單片機(jī)實(shí)用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9


回復(fù)

使用道具 舉報(bào)

9#
ID:123289 發(fā)表于 2017-2-28 11:20 | 只看該作者
C:經(jīng)編譯后,成匯編,因此用匯編的人,是自己代替代了C。
有許多節(jié)省內(nèi)存的技巧及方式,C是做不到了,因?yàn)镃是從通用化出發(fā)的。因此沒有,C更能能節(jié)省內(nèi)存的這一說。
回復(fù)

使用道具 舉報(bào)

10#
ID:123289 發(fā)表于 2017-2-28 11:21 | 只看該作者
比如:C是用堆棧傳遞參數(shù)的,需要的堆棧就大,占用的寄存器就多,51的寄存器本來就少,這會(huì)造成寄存器緊張,匯編傳遞參數(shù)很直接,大多可以不用堆棧,省出寄存器作他用。
在運(yùn)作時(shí)間上,匯編有極大的優(yōu)勢。
比如以下一個(gè)項(xiàng)目,用C很難完成,而用匯編就已很好的完成了(前提是只用51單片機(jī)):
16*64的LED點(diǎn)陣顯示+14個(gè)LED數(shù)據(jù)管顯示+中文漢字顯示處理+無線收發(fā)+生產(chǎn)記錄(計(jì)劃、產(chǎn)能、次品、待產(chǎn))+年月日精確時(shí)間(普通晶振,日差小于一秒)。
單就解決顯示的掃描閃動(dòng)(驅(qū)動(dòng)顯示1136個(gè)LED段,必須分8次掃描,1136個(gè)點(diǎn)時(shí)刻會(huì)變,要占多少處理時(shí)間及內(nèi)存),與程序運(yùn)行的速度矛盾(漢字解碼+無線通訊+時(shí)鐘+掃鍵……)。
回復(fù)

使用道具 舉報(bào)

11#
ID:123289 發(fā)表于 2017-2-28 11:22 | 只看該作者
以上所例,僅說明匯編比C的優(yōu)勢,并不排拆C的好處:
1、用匯編需用很強(qiáng)的優(yōu)化寄存器及內(nèi)存的能力,用C的好處是,不需要你去考慮這些復(fù)雜的問題,使得編程簡單。
2、 C出錯(cuò)的機(jī)率遠(yuǎn)小于匯編,匯編稍有不小心就會(huì)出錯(cuò),要命的是:不易察覺。
3、 C有團(tuán)體合作的優(yōu)勢, 這是 C的特點(diǎn),便于交流。如果是匯編,很難與他人交流。
4、 對(duì)于運(yùn)算程序, C已有前輩們做好了運(yùn)算庫,很難想像一般人能用匯編去:開方、三角函數(shù)(當(dāng)然,也可以讓C先編譯,再做成匯編的庫)。
5、 C 有龐大的公用程序庫(子程序),這對(duì)于程序量大的程序更有優(yōu)勢。匯編的程序庫多為個(gè)人積累,很難得到。
回復(fù)

使用道具 舉報(bào)

12#
ID:123289 發(fā)表于 2017-2-28 11:22 | 只看該作者
其實(shí)C只有一個(gè)優(yōu)點(diǎn):
先插入說一下單片機(jī)程序通常結(jié)構(gòu):1硬件初始化、2軟件參數(shù)初始化(含內(nèi)存安排)、3主程序(事件處理)、4中斷程序。
如果用匯編以上一切由你處理,除非你已獲得了很多相關(guān)的匯編數(shù)據(jù)庫。
如果用C:
在你未寫程序之前C已為你做了什么?
1、硬件初始化,C僅能做很少的部分。(注:這就是為什么在做硬件時(shí)你總是要一行行慢慢寫的原因,與匯編比幾乎沒有優(yōu)勢)
2、軟件參數(shù)初始化(含內(nèi)存安排),C完成其中的大部分。(注:比匯編操心少啊)
3、主程序(事件處理),C有大量的庫函數(shù)可以調(diào)用,可以減少你大部分工作量。(注:比匯編操心少啊)
4、中斷程序。C有大量的庫函數(shù)可以調(diào)用。(注:本人不建議在中斷中完成事件處理,而建議盡最大可能只在中斷中做一些事件標(biāo)志!而讓事件在主程序中依標(biāo)志進(jìn)行處理,因?yàn)橹袛嘤袃?yōu)先權(quán),處理事件往往需要的時(shí)間多,會(huì)耽誤其它事件的處理,如這時(shí)按鍵就會(huì)偽“失靈”)

可見 C的這個(gè)優(yōu)點(diǎn)是,C能幫你完成程序中的很大一部分工作。(其實(shí)是你調(diào)用了前輩們已做好的工作,這此工作是通過:編譯器、程序庫來實(shí)現(xiàn)的)

道理很簡單:一件事能用設(shè)備完成的盡量用設(shè)備,設(shè)備無法完成的用人工。C就是寫單片機(jī)程序的一個(gè)極好的“設(shè)備”。
回復(fù)

使用道具 舉報(bào)

13#
ID:123289 發(fā)表于 2017-2-28 11:23 | 只看該作者
用C的風(fēng)險(xiǎn)在哪里?
一個(gè)程序什么都OK了,就缺一些庫文件!找又找不到。
如果你會(huì)匯編,就可以自己完成找不到的這個(gè)庫。

總之C適合大多數(shù)的人,匯編僅適用很少的一部分人,但用匯編寫程序的人,一定是高手,否則他駕馭不了單片機(jī)。
做匯編需要徹底地了解單片機(jī),做C無需要了解到很底層。而要精通單片機(jī),匯編又是最佳手段。
回復(fù)

使用道具 舉報(bào)

14#
ID:123289 發(fā)表于 2017-2-28 11:24 | 只看該作者
個(gè)人建議:所有學(xué)單片機(jī)的同學(xué)學(xué)C,C是在大勢所趨,也適合絕大多數(shù)人。特別是團(tuán)體作戰(zhàn),未來不是單打獨(dú)斗的年代!
也建議那些想精通單片機(jī)的同學(xué),學(xué)好匯編,匯編天馬行空,不受庫存文件、頭文件限制,不受C的規(guī)矩,但也必須會(huì)C。

一但學(xué)好了匯編,你再打開你的C編譯后的匯編看看,這時(shí)就知道缺點(diǎn)在那里,就能提高自己C語言的水平。也能輕松掌握C當(dāng)中繞人的難點(diǎn)。
回復(fù)

使用道具 舉報(bào)

15#
ID:153041 發(fā)表于 2017-3-1 17:05 | 只看該作者
爭論C和匯編的人,必定是只擅長C或只擅長匯編的人。
回復(fù)

使用道具 舉報(bào)

16#
ID:111634 發(fā)表于 2017-3-1 19:52 | 只看該作者
本帖最后由 zl2168 于 2017-3-1 20:46 編輯
utzuzu 發(fā)表于 2017-3-1 17:05
爭論C和匯編的人,必定是只擅長C或只擅長匯編的人。

錯(cuò)!只有同時(shí)熟練應(yīng)用C及匯編的人,才能客觀地比較C與匯編的優(yōu)缺點(diǎn)。
回復(fù)

使用道具 舉報(bào)

17#
ID:111634 發(fā)表于 2017-3-1 19:55 | 只看該作者
本帖最后由 zl2168 于 2017-3-1 20:47 編輯

不熟練應(yīng)用C及匯編的人,只會(huì)講好與不好,講不出好與不好的原因,更講不到好與不好的點(diǎn)子上。
回復(fù)

使用道具 舉報(bào)

18#
ID:167509 發(fā)表于 2017-3-1 20:31 | 只看該作者
清標(biāo)志位
回復(fù)

使用道具 舉報(bào)

19#
ID:139514 發(fā)表于 2017-3-2 16:53 | 只看該作者
哈囉~你好
你第7行到16行這些 =>   F_0  F_1  F_2  F_3  F_4  F_5  F_6  F_7  F_8  F_9
,這10個(gè)東西你沒有在程序的開頭定義它,你使用CLR要清除東西後面只能接C(進(jìn)為旗標(biāo))或bit(位元)或是A(累加器),因?yàn)槟銢]有在程序開頭宣告定義那10個(gè)東西,所以下面才會(huì)跑出那10行說無效的
回復(fù)

使用道具 舉報(bào)

20#
ID:74784 發(fā)表于 2017-8-13 01:38 | 只看該作者
不會(huì)C
只用匯編
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表