如何學習微控制器的組合語言,想學習微控制器組合語言,怎樣學入門比較快呢

時間 2022-03-28 10:41:28

1樓:

我也學習微控制器定址有很多方式:(舉幾個例子給你吧)

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」的機器語言**。

2樓:

你的c語言學得很好,再學其他語言,就易如反掌了,組合語言是直接面對硬體的語言,學彙編之前,必須了解你所學微控制器的內部硬體結構,各個暫存器的功能,輸出輸入埠等.

我個人的經歷可以供你參考,在學微控制器之前,我只是在大學裡學過basic語言,工作中接觸到微控制器,以為它很神秘,深入學習後,才發現,微控制器是非常簡單的,彙編的程式設計思路和basic基本相似,從入門學習微控制器到第乙個產品開發成功,我只用了1個半月的時間,這都歸功於我的basic功底.

別人能行的事,你肯定也能行.相信自己,努力

3樓:新起點

在彙編裡一般定址都帶@符號

在一般定址裡,用@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,

方法類似於上面的介紹

4樓:匿名使用者

現在實際應用中很少用到彙編了,c是主流,彙編能看懂就行

5樓:查明哀佳

先把基本的指令命令是什麼意思弄明白,然後再看些別人的程式,當能比較熟練時,可以開始編寫一些小程式進行鍛鍊。

想學習微控制器組合語言,怎樣學入門比較快呢

6樓:張一

先學c語言,清華大學譚浩強的那個版本就不錯。有了基礎之後再學組合語言會容易一點。找本好點的教材。當然,自己看書總是沒有向別人討教來的容易和方便~~

7樓:匿名使用者

有基礎的話自學一點問題也沒有,找一本好的書就可以了,介紹一本郭天祥編的關於微控制器的,那裡面就是用的c語言,挺不錯的,簡單易懂,零基礎也可以學。藍屏

8樓:匿名使用者

兄弟如果你真的想學好微控制器的話,建議你不要太過於求成,真的是要乙個腳步乙個腳印來的,這樣你後面會很輕鬆,千萬不要一來就想做個什麼東西出來,不要小看流水燈等這類小實驗,它能幫助你很好的了解微控制器的結構,彙編雖然繁瑣,但是你下定決心苦兩三個月,你在回頭看,你會覺得這路走得值,在想想幾個月算得了什麼啊,等你真的融入到微控制器裡的時候,你會發現,哎呀時間過得真快啊,你總是想和時間賽跑。

9樓:匿名使用者

這個學習微控制器還有點用,希望能幫到您。

微控制器的硬體基礎

10樓:加班的蟲子

建議用c語言,比較快,指令系統可以忽略。

11樓:匿名使用者

要動手做,邊學邊做才快

12樓:

先熟悉所有的110條指令

如何學習微控制器組合語言?

13樓:嘻哈小馬哥

最好找個學習班,這樣數度能快點,在就是有實物可以操作,這樣能學的快!

14樓:匿名使用者

每家公司的微控制器的組合語言都不太一樣,甚至有些公司的不同系列的微控制器的組合語言都不一樣,比如pic16系列和18系列的組合語言就不完全一樣。

其實學微控制器重要的是微控制器內部的結構,神馬彙編啊,c啊,只不過就是一種指令而已。

15樓:

1、先看書,對書上的知識要有個了解

2、微控制器的構成 都有哪些模組構成

3、組合語言的語句 記住

4、關鍵是實踐 多練 伴隨著乙個個問題的解決你就是高手了

16樓:電子diy小葉製做

《51微控制器自學筆》是一本不錯的入門的書

17樓:學者無量

選一種微控制器學相應的教材,基本上沒本教材上都是有彙編的一章的,推薦北航的微控制器相關教材,比較權威。一般先學c51微控制器,那個很基礎的,推薦教材《微控制器初級教程》,完了書上會有一些例題,都是用彙編寫的,看多了就熟悉了,熟悉了就能讀懂了。再找一些實際的題編程式設計序,多編幾個自然就會了,彙編的大規則是一樣的,常用的指令也是沒多少。

想學精的話可以去學習一些彙編教材,本人極力推薦清華大學出版的《80x86組合語言程式設計》,祝你早日學會彙編。

18樓:計算機技術價值

微控制器c語言比較簡單

怎樣才能學會微控制器組合語言

19樓:匿名使用者

組合語言學習不難,記住指令系統基本就可以搞定了,關鍵的問題是要先熟悉微控制器的各個模組,比如:儲存結構、中斷系統、暫存器等。

20樓:匿名使用者

助記符都是英文單詞、或首字母

21樓:匿名使用者

學會組合語言,不是只記住助記符,那沒用的。就像學英語,四六級都能過,可是能與外國人會話嗎,能看懂英文資料嗎?那叫會英文嗎。

關鍵是要理解每一條指令的意義,操作過程,還要會運用,才能把實際任務變成一條一條指令寫出來。其實,這很難的。凡是學習過組合語言的,所有人都能記住助記符,可是真正能寫程式的卻非常少,只寫出那些作業的程式不算是程式設計的,要寫出實際專案的程式。

所以,什麼叫學會,不是記住了助記符就是會了,那根本不是會,充其量叫認識。要學習程式設計,最好還是學習c語言,易理解,是掌握。

應該怎樣學好微控制器以及組合語言啊?

22樓:同若彤

很多想學微控制器的人問我的第一句話就是怎樣才能學好微控制器?對於這個問題我今天就我自己是如何開始學微控制器,如何開始上手,如何開始熟練這個過程給大家講講。 先說說微控制器,一般我們現在用的比較多的的mcs-51的微控制器,它的資料比較多,用的人也很多,市場也很大。

就我個人的體會怎麼樣才能更快的學會微控制器這門課。微控制器這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,微控制器的各個功能暫存器,而說明白點,我們使用微控制器就是用軟體去控制微控制器的各個功能暫存器,再說明白點,就是控制微控制器那些管腳的電平什麼時候輸出高,什麼時候輸出低。由這些高低電平的變化來控制你的系統板,實現我們需要的各個功能。

至於看書,只需大概了解微控制器各管腳都是幹什麼的?能實現什麼樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。

所以我總是說,學微控制器看書看兩三天的就夠了,看**你一天能看五六本,看微控制器你兩三天看兩三遍就夠了,可以不用仔細的看。推薦一本書,就這一本就足夠,書名是《新編mcs-51微控制器應用設計》,是哈爾濱工業大學出版社出的的,作者是張毅剛。大概了解一下書上的內容,然後實踐,這是非常關鍵的,如果說學微控制器你不實踐那是不可能學會的,關於實踐有兩種方法你可以選擇,一種方法:

你自己花錢買一塊微控制器的學習板,不要求功能太全的,對於初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應用,那可以說對於微控制器方面的硬體你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。只要過了第一關,後面的路就好走多了,萬事開頭難,大家可能都聽過。

方法二:你身邊如果有微控制器方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。對於高手來說,做個微控制器的最小系統板只需要一分鐘的時間,而對於初學者可就難多了,因為只有對硬體了解了,才能熟練運用。

而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以後做微控制器類的小實驗時都能用得上,還省事。 有了微控制器學習板之後你就要多練習,最好是自己有台電腦,一天少看電影,少打遊戲,把學習板和電腦連好,開啟除錯軟體坐在電腦前,先學會怎麼用除錯軟體,然後從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意願隨意流動時你已經入門了,你會發現微控制器是多麼迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程式按你的意願實現時你比做什麼事都開心,你會上癮的,真的。做電子類的人真的會上癮。

然後讓數碼管亮起來,這兩項會了後,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。就是要這樣練習,在寫程式的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當得到解答後你會記住一輩子的,知識必須用於現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這麼多年大學,天天上課,你在課堂上學到了什麼?是不是為了期末考試而忙碌呢?

考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一乾二淨,是不是?你學到什麼了?但是我告訴你微控制器一旦學會,永遠不會忘了。

另外我再說說用彙編和c語言程式設計的問題。很多同學大一二就開設了c語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什麼用?

讓你用c語言編微控制器的程式你是不是就傻了?書上的東西我們必須要會運用。微控制器程式設計用c語言或組合語言都可以,但是我建議用c語言比較好,如果原來有c語言的基礎那學起來會更好,如果沒有,也可以邊學微控制器邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以後也得學,你一點彙編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。

匯編寫程式**效率高,但相對難度較大,而且很羅嗦,尤其是遇到演算法方面的問題時,根本是麻煩的不得了,現在微控制器的主頻在不斷的提高,我們完全不需要那麼高效率的**,因為有高頻率的時鐘,微控制器的rom也在不斷的提高,足夠裝得下你用c語言寫的任何**,c語言的資料又多又好找,將來可移植性非常好,只需要變乙個io口寫個溫度感測器的程式在**都能用,所以我勸大家用c語言。 總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個微控制器來說就是件非常容易的事。 1.

找本書大概了解一下微控制器結構,大概了解就行。不用都看懂,又不讓你出書的。 2.

找學習板練習編寫程式,學微控制器就是練程式設計序,遇到不會的再問人或查書。(我當初就買了中國開發板網乙個微控制器開發板,二十天就搞定了,你可以去試試。**如下:

自己網上找些小電路類的資料練習設計外圍電路。

焊好後自己除錯,熟悉過程。 4.自己完全設計具有個人風格的電路,產品,。。。

你已經是高手了。 。。。。 看到了嗎?

下功夫乙個多月你就能成為高手,我就講這麼多了,學不學得會,下不下得了功夫就看你的了

微控制器的用組合語言程式設計,微控制器的用組合語言程式設計

k1 equ p1.0 k2 equ p1.1 k3 equ p1.2 org 0000h ljmp main org 000bh ljmp t0isr org 0030h main mov tmod,11h mov th0,high 65536 50000 mov tl0,low 65536 50...

微控制器彙編問題,微控制器組合語言的問題

改好了,可以編譯。但是,程式設計的思路,可能還有錯。org 0000h ljmp main org 0003h ljmp pint0 org 0200h main mov ie,81h cpu開放中斷,int0允許中斷setb it0 外部中斷為邊沿觸發方式mov sp,30h 指標入口位址。set...

微機原理裡的組合語言與微控制器裡的組合語言有什麼不同

我很負責的告訴樓上 8086是16位機 區別 你這叫人怎麼說,都屬於組合語言,是低階語言,各個語法及方式都有不同之處。難道你能問拼音和英語音標有什麼區別麼?有點像,但是你能具體說出哪個不一樣麼?微機原理講80x86 cpu的組合語言,微控制器講某種微控制器 通常是8051 的組合語言,兩種cpu的體...

微控制器彙編的變數位址問題,組合語言如何讀取乙個位址中儲存的變數

有例如templ equ 30h mov templ,37h 這樣其結果就是 37h這個數 每個變數在記憶體都有乙個位址的,位址一般都是是16位的,而不是8位的。可以使用 符合去位址 例如定義乙個變數 unsigned char data data,就是去微控制器記憶體位址 我在某些資料中看到過這樣...

彙編中的中斷c語言用什麼,微控制器組合語言的中斷 跳至的程式 能不能是C語言

你的意思是不是怎麼用c語言實現彙編中的中斷?彙編中的中斷是通過在中斷向量表中對應位置的一條跳轉指令跳到中斷程式來實現中斷的 而c語言也是差不多,只不過c語言的中斷函式要用乙個特殊的關鍵字去標明它,比如 pragma interrupt handler int function 當然,每一種編譯器可能...