隨著微電子技術和超大規模積體電路技術的發展,單片微型計算機以其體積小、價效比高、功能強、可靠性高等獨有的特點,在各個領域(如工業控制、家電產品、汽車電子、通訊、智慧型儀器儀表)得到了廣泛的應用。學習、使用微控制器的人越來越多,而生產微控制器的廠家很多,微控制器種類繁雜,不知如何選擇。據統計,八位微控制器佔全球微控制器銷量的65%。在八位微控制器中,intel公司的8051微控制器核心已成為8位微控制器事實上的標準。因此,對初學者而言,選擇8051微控制器來學習不失為明智的選擇。
大家都知道,組合語言指令由操作碼、運算元兩部分組成。mcs-51使用組合語言指令,它共有44個操作碼助記符,33種功能,其運算元有#data、direct、rn、@ri等。這裡先介紹指令助記符及其相關符號的記憶方法。
一、助記符號的記憶方法
1**列舉法
把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結。
2英文還原法
微控制器的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助於理解其助記符含義,從而加強記憶。例如:
增量 inc-incremect 減量 dnc-decrement
短轉移 sjmp-short jump 長轉移 ljmp-long jump
比較轉移 cjne-compare jump not equality
絕對轉移 ajmp-absolute jump 空操作 nop-no operation
交換 xch-exchange 加法 add-addition
乘法 mul-multiplication 除法 div-division
左環移 rl-rotate left 進製左環移 rlc-rotate
left carry
右環移 rr-rotate right 進製右環移rrc-rotate
right carry
3功能模組記憶法
微控制器的44個指令助記符,按所屬指令功能可分為五大類,每類又可以按功能相似原則為2~3組。這樣,化整為零,各個擊破,實現快速記憶。
1)資料傳送組。 2)加減運算組
mov 內部資料傳送 add 加法
movc 程式儲存器傳送 addc 帶進製加法
movx 外部資料傳送 subb 帶進製減法
3)邏輯運算組。 4)子程式呼叫組。
anl 邏輯與 lcall 長呼叫
orl 邏輯或 alall 絕對呼叫
xrl 邏輯異或 ret 子程式返回
二、指令的記憶方法
1指令運算元的有關符號
mcs-51的定址方式共有六種:立即數定址、直接定址、暫存器定址、暫存器間址、變址定址、相對定址。我們必須掌握其表示的方法。
1)立即數與直接位址。
ata表示八位立即數,#data16表示是十六位立即數,data或direct表示直接位址。
2)rn(n=0-7)、a、b、cy、dptr暫存器定址變數。
3)@r0、@r1、@dptr、sp表示暫存器間址變數。
4)dptr+a、pc+a表示變址定址的變數。
5)pc+rel(相對量)表示相對定址變數。
記住指令的助記符,掌握不同定址方式的指令運算元的表示方法,為我們記憶彙編指令打下了基礎。mcs-51指令雖多,但按功能可分為五類,其中資料傳送類28條,算術運算類24條,邏輯操作類25條,控制轉移類17條,布林位操作類17條。在每類指令裡,根據其功能,抓住其源、目的運算元的不同組合,再輔之以下方法,是完全能記住的。我們約定,可能的目的運算元按(#data/direct/a/rn/@ri)順序表示。
對於mov指令,其目的運算元按a、rn、direct、@ri的順序書寫,則可以記住mov的15條指令。例如以累加器a為目的運算元,可寫出如下4條指令。
mov a,#data/direct/a/rn/@ri
以此類推,寫出其它指令。
mov rn,#data/direct/a
mov direct,#data/direct/a/rn/@ri
mov @ri,#data/direct/a
2指令圖示記憶法
圖示記憶法是把操作功能相同或相似、但其運算元不同的指令,用圖形和箭頭將目的、源運算元的關係表示出來的一種記憶方法。例如:由助記符mov、movx、movc組成的送陣列指令,可以用圖1、2幫助記憶。
由助記符cjne形成的四條指令,也可以用圖示法表示,如圖3。
cjne a,#data,rel cjne a,direct,rel
cjne @rn,#data,rel cjne @ri,#data,rel
另外,對於由(anl、orl、arl)形成的18條邏輯操作指令,有關a的四條環移指令,也可以用圖示法表示,請讀者自行畫出記憶。
3相似功能歸類法
在mcs-51指令中,我們發現部分指令其操作碼不同,但功能相似,而運算元則完全一樣。相似功能歸類法就是把具有這樣特點的指令放在一起記憶,只要記住其中的一條,其餘的也就記住了。如加、減法的十二條指令,與、或、非的十八條指令,現列舉如下:
add/addc/subb a,#data/direct/rn/@ri
anl/orl/xrl a,#data/direct/rn/@ri
anl/orl/xrl direct,#data/a
上述每一排指令,功能相似,其運算元都相同。其它的如加1(inc)、減1(dec)指令也可照此辦理。
4口訣記憶法
對於有些指令,我們可以把相關的功能用精練的語言編成一句話來記憶。如push direct和pop direct這兩條指令。初學者常常分不清堆疊sp的變化情況,為此編成這樣一句話:(sp的內容)加1(direct的內容)再入棧,(sp的內容)彈出(到direct單元)sp才減1。又如乘法指令中積的存放,除法指令中被除數和除數以及商的存放,都可以編成口訣記憶如下。
mul ab 高位積(存於)b,低位積(存於)a。
div ab a除以b,商(存於)a餘(下)b。
上面介紹了幾種快速記憶微控制器指令的方法,希望能起到拋磚引玉的作用,相信讀者在學習微控制器的過程中能找到適合自己的方法來記憶。但是,有了好的方法還不夠,還需要實踐,即多讀書上的例題和別人編寫的程式,自己再結合實際編寫一些程式。只有這樣,才能更好更快地掌握微控制器指令系統。
MCS 51微控制器基礎
1.data,idata,xdata,pdata 的區別 data 固定指前面0x00 0x7f的128個ram,可以用acc直接讀寫,速度最快,生成的 也最小。idata 固定指前面0x00 0xff的256個ram,其中前128和data的128完全相同,只是訪問方式不同。i用類似c中的指標方式...
MCS 51 微控制器的中斷系統
mcs 51 微控制器的中斷系統 mcs 51中斷系統 5個中斷源 兩個外部中斷,兩個定時器,乙個串列埠 2個優先順序 中斷 當cpu正在處理某件事情時,微控制器外部或內部發生的某一緊急事件請求cpu立即去處理,於是,cpu暫時中止當前的工作,轉去處理這個緊急事件,待處理完畢後,再回到原來被中止的地...
MCS 51系列和80C51系列微控制器是否相同
mcs是intel公司微控制器的系列符號。intel推出有mcs 48 mcs 51 mcs 96系列微控制器。mcs 51系列單既包括三個基本型80c31 8051 8751,以及對應的低功耗型號80c31 8051 87c51,因而mcs 51特指intel的這幾種型號。在計算機領域,系列機是指...