ir指令 立即數的作用 微控制器指令系統與定址方式

2021-10-14 14:55:29 字數 1390 閱讀 1100

微控制器要正常運作,事先需編制程式,再把程式放入存貯器中,然後由cpu執行該程式。程式是由指令組成的,指令的基本組成是操作碼和運算元。微控制器的品種很多,設計時怎樣表示操作碼和運算元,都有各自的規定,再有指令**也各不相同,因此,必須對所選微控制器的全部指令,也就是所謂「指令系統」,有足夠的了解。各個系列的微控制器雖然有不同的指令系統,但也有其共同性。掌握一種微控制器的指令系統,對其它系列微控制器可以起到觸類旁通的作用。mcs-51微控制器應用廣泛,派生品種多,具有代表性,所以,這裡以mcs-51系列的指令系統為例說明「指令」的組成和應用。

這條指令表示把20h這個數送入累加器a中(乙個特殊功能暫存器)。

2、add a,70h

這條指令表示把累加器a中的內容(在上例中送入的#20h)和存貯器中位址為70h單元中的內容(也是乙個數字),通過算術邏輯單元(英文縮寫為alu)相加,並將結果保留在a中。這裡mov、add等稱為操作碼,而a、#20h、70h等均稱為運算元。在組合語言程式中,操作碼通常由英文單詞縮寫而成,這樣有助於記憶,所以又稱助記符。如mov就是英文單詞move的縮寫,含有搬移的意思;而add即為英文單詞,其意為相加。因此,對於略懂英語的使用者,掌握微控制器指令的含意是較為方便的。運算元有多種表示法,如以上的#20h稱為立即數,即20h就是真正的運算元。而70h是存貯器中某個單元的位址,在該單元中,放著運算元(比如說是3ah),add a,70h不是將70h和a中的內容相加,而是從存貯器70h單元中將3ah取出和a中的內容相加。由上可知,要找到實際運算元,有時就要轉個彎,甚至轉幾個彎,這個過程稱為定址,mcs-51共有7種定址方式,現介紹如下:

一、立即定址:運算元就寫在指令中,和操作碼一起放在程式存貯器中。把「#」號放在立即數前面,以表示該定址方式為立即定址,如#20h。

如果ram的位址大於256,則該位址存放在16位暫存器dptr(資料指標)中,此時在暫存器名前加@符號來表示這種間接定址。如mov a,@ r0。其它還有變址定址、相對定址、位定址等。

五、位定址(即可尋找某位的內容)功能,適於按位進行邏輯運算的位處理器。除128位元組ram、4k位元組rom和中斷、序列口及定時器模組外,還有4組i/o口p0~p3,餘下的就是cpu的全部組成。把4krom換為eprom就是8751的結構,如去掉rom/eprom部分即為8031的框圖,如果將rom置換為flash存貯器或eeprom,或再省去某些i/o,即可得到51系列的派生品種,如89c51、at89c2051等微控制器的框圖。

微控制器c指令右移指令 微控制器算術運算類指令整理

一 不帶進製位的微控制器加法指令 add a,data 例 add a,10h add a,direct 例 add a,10h add a,rn 例 add a,r7 add a,ri 例 add a,r0 用途 將a中的值與其後面的值相加,最終結果否是回到a中。例 mov a,30h add a...

微控制器中的NOP指令

在微控制器中的很多程式中都能看見nop這條指令的身影,有些人很疑惑這條空空的指令到底有什麼用呢,經過多次的實驗,我終於證實 呀,誰扔的番茄 主要有兩條作用 1,精確定時 nop指令時間為1個週期,12m晶振的活呢是1us秒的時間。非常的準確。如 如果晶振用12mz的話,這樣乙個機器週期為1us。mo...

微控制器指令系統 1

本篇部落格主要列出了微控制器的主要指令,供開發人員參考。作為乙個微控制器初學者,記住指令特別的痛苦,不過主要還是要理解,多練習指令,寫多了就記住了,這是乙個很自然的過程。目錄 一 定址方式 二 指令分類 1 資料傳送類指令 2 算術運算類指令 定址方式有七種 1.立即定址 如 mov a,3ah 2...