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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3836|回復: 19
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
一個匯編程序,哪位大俠看的懂的幫忙看看唄

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

便有有錯誤,還是先把錯誤改了吧
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

C程序與匯編程序雖各有千秋,但C程序優點更多。


C51編程的特點


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


編程相對方便。


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


便于實現各種復雜的運算和程序。


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


可方便地調用各已有程序模塊。


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


可讀性較好。


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


實時性較差。


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


回復

使用道具 舉報

9#
ID:123289 發表于 2017-2-28 11:20 | 只看該作者
C:經編譯后,成匯編,因此用匯編的人,是自己代替代了C。
有許多節省內存的技巧及方式,C是做不到了,因為C是從通用化出發的。因此沒有,C更能能節省內存的這一說。
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

可見 C的這個優點是,C能幫你完成程序中的很大一部分工作。(其實是你調用了前輩們已做好的工作,這此工作是通過:編譯器、程序庫來實現的)

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

使用道具 舉報

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

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

使用道具 舉報

14#
ID:123289 發表于 2017-2-28 11:24 | 只看該作者
個人建議:所有學單片機的同學學C,C是在大勢所趨,也適合絕大多數人。特別是團體作戰,未來不是單打獨斗的年代!
也建議那些想精通單片機的同學,學好匯編,匯編天馬行空,不受庫存文件、頭文件限制,不受C的規矩,但也必須會C。

一但學好了匯編,你再打開你的C編譯后的匯編看看,這時就知道缺點在那里,就能提高自己C語言的水平。也能輕松掌握C當中繞人的難點。
回復

使用道具 舉報

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

使用道具 舉報

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

錯!只有同時熟練應用C及匯編的人,才能客觀地比較C與匯編的優缺點。
回復

使用道具 舉報

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

不熟練應用C及匯編的人,只會講好與不好,講不出好與不好的原因,更講不到好與不好的點子上。
回復

使用道具 舉報

18#
ID:167509 發表于 2017-3-1 20:31 | 只看該作者
清標志位
回復

使用道具 舉報

19#
ID:139514 發表于 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個東西你沒有在程序的開頭定義它,你使用CLR要清除東西後面只能接C(進為旗標)或bit(位元)或是A(累加器),因為你沒有在程序開頭宣告定義那10個東西,所以下面才會跑出那10行說無效的
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品一区二区久久 | 草久久久 | 国产成人99久久亚洲综合精品 | 成人网av | 在线资源视频 | 久久久久久久久久久高潮一区二区 | 日韩欧美一区二区三区 | 欧美综合国产精品久久丁香 | 亚洲精品久久久蜜桃网站 | 中文字幕一区二区三区四区五区 | 日韩欧美在线观看 | 在线看免费的a | 日韩在线精品 | 秋霞精品| 天天综合干 | 久久国产精品免费一区二区三区 | 国产精品久久久久久久久久久久 | 国产一区二区在线播放 | 国产999精品久久久久久 | 国产精品成人久久久久 | 黄色三级在线播放 | 成人欧美一区二区三区在线观看 | 国产精品国产三级国产a | 国产精品久久久久久一区二区三区 | 福利视频日韩 | 午夜视频在线免费观看 | 一区二区三区四区视频 | chinese中国真实乱对白 | 日韩欧美国产一区二区 | 欧美精品一区二区在线观看 | 亚洲国产精选 | 成人三级影院 | 综合久久综合久久 | 最新中文字幕在线 | 成人国产精品免费观看视频 | 农村黄性色生活片 | 亚洲福利 | 中文字幕av在线 | 欧美在线视频一区二区 | 欧美一级二级三级视频 | 曰批视频在线观看 |