1樓:張一
先學c語言,清華大學譚浩強的那個版本就不錯。有了基礎之後再學組合語言會容易一點。找本好點的教材。當然,自己看書總是沒有向別人討教來的容易和方便~~
2樓:匿名使用者
有基礎的話自學一點問題也沒有,找一本好的書就可以了,介紹一本郭天祥編的關於微控制器的,那裡面就是用的c語言,挺不錯的,簡單易懂,零基礎也可以學。藍屏
3樓:匿名使用者
兄弟如果你真的想學好微控制器的話,建議你不要太過於求成,真的是要乙個腳步乙個腳印來的,這樣你後面會很輕鬆,千萬不要一來就想做個什麼東西出來,不要小看流水燈等這類小實驗,它能幫助你很好的了解微控制器的結構,彙編雖然繁瑣,但是你下定決心苦兩三個月,你在回頭看,你會覺得這路走得值,在想想幾個月算得了什麼啊,等你真的融入到微控制器裡的時候,你會發現,哎呀時間過得真快啊,你總是想和時間賽跑。
4樓:匿名使用者
這個學習微控制器還有點用,希望能幫到您。
微控制器的硬體基礎
5樓:加班的蟲子
建議用c語言,比較快,指令系統可以忽略。
6樓:匿名使用者
要動手做,邊學邊做才快
7樓:
先熟悉所有的110條指令
你好,我想請問下我是乙個微控制器匯程式設計序初學者,應該怎樣去學習呢,有什麼好的學習嗎
8樓:匿名使用者
9樓:
熟悉一下暫存器和彙編指令,都有什麼硬體資源。
寫程式的時候,先初始化,確定你要是用的硬體資源,設定相應的暫存器,然後就是用程式一步一步實現你想要的功能
如何學習微控制器的組合語言
10樓:
我也學習微控制器定址有很多方式:(舉幾個例子給你吧)
1. 暫存器定址
暫存器定址就是運算元存放在暫存器中,指令中指定的暫存器的內容就是運算元。
2. 直接定址
直接定址方式就是在指令中直接給出運算元所在儲存單元的位址。此時,指令中運算元部分是運算元所在位址。
3. 立即數定址
立即數定址就是運算元在指令中直接給出,或者說指令操作碼後面立即給出一位元組或兩位元組運算元
4. 暫存器間接定址
暫存器間接定址是把指定暫存器的內容作為運算元位址,該位址所指定的單元內容作為運算元。
為了區分暫存器定址和暫存器間接定址,在暫存器間接定址中,所用到的暫存器的前面要加間接定址符「@」。
例:暫存器r0內容為30h,片內ram 30h單元的內容為45h。
解:指令「mov a,r0」的功能是將r0的內容30h傳送給累加器a,指令執行結果是累加器a中的內容為30h。
指令「mov a,@r0」的功能是將r0的內容30h作為運算元的位址,根據這一位址找到內部ram 30h單元,將其內容45h傳送至累加器a,指令執行結果是累加器a中內容為45h。
5. 變址定址(基址暫存器+變址暫存器間接定址)
例如:指令「movc a,@a+dptr」是變址定址。
解:假設dptr的內容為2030h,累加器a的內容為12h。
該指令的功能是將2030h和12h相加,得到2042h作為運算元位址,在程式儲存器中找到2042h單元,將其內容送至累加器a。
6. 相對定址
例如:在程式儲存器中2000h單元有一條雙位元組的相對轉移指令「sjmp 75h」。
解:程式儲存器2000h、2001h單元的內容80h、75h是「sjmp 75h」的機器語言**。
11樓:
你的c語言學得很好,再學其他語言,就易如反掌了,組合語言是直接面對硬體的語言,學彙編之前,必須了解你所學微控制器的內部硬體結構,各個暫存器的功能,輸出輸入埠等.
我個人的經歷可以供你參考,在學微控制器之前,我只是在大學裡學過basic語言,工作中接觸到微控制器,以為它很神秘,深入學習後,才發現,微控制器是非常簡單的,彙編的程式設計思路和basic基本相似,從入門學習微控制器到第乙個產品開發成功,我只用了1個半月的時間,這都歸功於我的basic功底.
別人能行的事,你肯定也能行.相信自己,努力
12樓:新起點
在彙編裡一般定址都帶@符號
在一般定址裡,用@r1,@r0的比較多,r2,--7不能用這類指令其中r1,r0存放的是指標,優點是定址快,使用方便,但定址範圍最大256
例如我想取空間為ram200處的物理位置的資料語句如下:
mov r0,#200 ;將位址放入r0mov a,@r0 ;將200位址的資料取出放入amov a,#12h ;立即數0x12放入amov @r0,a ;將a中的資料放入200位址此外還有@dptr指標,這類指標的位址是16位,最大64k主要是針對於外部的ram空間定址,指令時movx a,@dptr,
方法類似於上面的介紹
13樓:匿名使用者
現在實際應用中很少用到彙編了,c是主流,彙編能看懂就行
14樓:查明哀佳
先把基本的指令命令是什麼意思弄明白,然後再看些別人的程式,當能比較熟練時,可以開始編寫一些小程式進行鍛鍊。
學習組合語言需要如何入門?
15樓:匿名使用者
彙編是執行效率最高的語言了
但是也非常的依賴於硬體,已經基本功能多用中斷呼叫來實現,所以也需要了解
比如暫存器,可以有什麼運算,一般做法
其實最簡單,就是看實現什麼功能是怎麼實現的,你就可以很快的投入應用這樣你很快就是高手,學會稍微的變化還是比較容易的,最難就是記憶那些特殊的處理方法
而且也沒什麼道理
16樓:
單純的組合語言學起來簡單,弄懂定址方式,中斷方式,在對應不同的機型,要是intel的指令集就更簡單了它是向下相容哦你得先確定學什麼,微控制器先從31,51開始,彙編學的好微控制器的構造要熟,數位電路,模擬電路,都會還要堅持不斷的學習
學微控制器必須學組合語言嗎,還是學好c語言就足夠了
17樓:匿名使用者
我的一點感想:
以前關於51微控制器的專案,均用彙編,裡面的資源如何用,到什麼程度,你特別清楚。【例如一段程式執行多少時間,用了哪些記憶體】。感覺特爽。
現在用c,寫其他型別得微控制器,編譯時,系統會占用部分資源,這樣:資源用到何地步,一段c程式執行時間,中斷巢狀等,就不清楚了。雖然能完成任務,但是感覺特別不爽。
18樓:雪泥灬鴻爪
現在的微控制器用c就可以了。甚至有一些還支援c++。但是經常會在c**中嵌入彙編**,所以建議樓主還是學習一下組合語言會比較有幫助
19樓:匿名使用者
1、對於普通的專案,只要學好c就行了,但不是足夠了。
2、現在流行的微控制器開發程式語言有彙編、c、c++。
3、它們是可以相互依託的,比如要求開發速度,我們可以盡量用c或c++,因為它們都比用彙編完成任務速度要快。比如要求執行速度,我們必須考慮使用彙編,因為彙編的速度大體要比c或c++快5%~15%,另外我們還可以考慮用c或c++來巢狀彙編完成。
4、通過以上說明,只會c是不夠的,有空還是要看看彙編和c++的。
20樓:匿名使用者
不是必須的,但是要微控制器學的非常好就必須掌握彙編,我是之前學彙編的,程式設計的感覺和c完全不一樣,每一條指令都能感覺的清清楚楚,像電機等精確控制的時候是需要用彙編的。不過還是有很多人不會彙編,只會c,c是必須會的,移植性好。
51的彙編指令有111條,其實非常好掌握,分類分好就只有會30幾條就可以了。秘訣是知道指令的英文含義,比如mov是move的簡寫,setb是set bit的簡寫=置位,clr是清除的意思就是清零,call是呼叫的意思,建議看趙星寒的從0開始學微控制器你去看一下,很好的,你有電子基礎就更容易了.每天學一小時我就乙個多月會的.
21樓:醉月空明
先學c,彙編大致了解一下就可以了
微控制器(組合語言)程式,微控制器組合語言
開發當bai然是用c,又快又易懂好維 du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣乙個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本公升高時質量卻...
微控制器c語言轉化為組合語言
下列程式已經除錯過,樓主試試看 key1 equ p2.4 按鍵.org 0000h jmp start org 001bh jmp t1 int start mov tmod,10h t1定時方式1 mov th1,65536 20000 256 20ms 12mhz mov tl1,65536 ...
movfmovwf在微控制器組合語言裡是什麼意思翱
pic的精簡指令,movf是把du乙個寄存zhi器dao記憶體送入w暫存器中,如 movf 8,0 就是把第8暫存器送到w中 相當於8051中累內加器a 後面是0說明存後容f不變 movwf 與上面相反,把w內容存入f暫存器中,相當於mov w to f 你好 不會 我的回答你還滿意嗎 在組合語言裡...