平凡單片機(jī)教學(xué) 第八講 單片機(jī)指令(二)
(3)以直接地址為目的操作數(shù)的指令MOV direct,A 例: MOV 20H,A MOV direct,Rn MOV 20H,R1MOV direct1,direct2 MOV 20H,30HMOV direct,@Ri MOV 20H,@R1MOV direct,#data MOV 20H,#34H
本文引用地址:http://m.butianyuan.cn/article/201611/319638.htm(4)以間接地址為目的操作數(shù)的指令MOV @Ri,A 例:MOV @R0,A MOV @Ri,direct MOV @R1,20HMOV @Ri,#data MOV @R0,#34H
(5)十六位數(shù)的傳遞指令MOV DPTR,#data16 8051是一種8位機(jī),這是唯一的一條16位立即數(shù)傳遞指令,其功能是將一個(gè)16位的立即數(shù)送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H,則執(zhí)行完了之后DPH中的值為12H,DPL中的值為34H。
反之,如果我們分別向DPH,DPL送數(shù),則結(jié)果也一樣。如有下面兩條指令:MOV DPH,#35H,MOV DPL,#12H。則就相當(dāng)于執(zhí)行了MOV DPTR,#3512H。 綜合練習(xí): 給出每條指令執(zhí)行后的結(jié)果
MOV 23H,#30H | (23h)=30h | MOV 45H,34H | (45H)=34H |
說(shuō)明:用括號(hào)括起來(lái)代表內(nèi)容,如(23H)則代表內(nèi)部RAM23H單元中的值,
(A)則代表累加器A單元中的值。 上機(jī)練習(xí):進(jìn)入DOS狀態(tài),進(jìn)入WAVE所在的目錄,
例D:WAVE 鍵入MCS51,出現(xiàn)如下畫面
圖1
按File->Open,出現(xiàn)對(duì)話框后,在Name處輸入一個(gè)文件名(見圖2),如果是下面列表中已存在的,則打開這個(gè)文件,如果不存在這個(gè)文件,
圖2
則新建一個(gè)文件(見圖3)
圖3
在空白處將上面的程序輸入。見圖4。用ALT+A匯編通過(guò)。用F8即可單步執(zhí)行,
在執(zhí)行過(guò)程中注意觀察屏幕左邊的工作寄存器及A累加器中的值的變化。
圖4
內(nèi)存中值的變化在此是看不到的,可以用如下方法觀察(看圖5):將鼠標(biāo)移到DATA,雙擊,則光標(biāo)進(jìn)入此行,此時(shí)可以鍵盤上的上下光標(biāo)鍵上下翻動(dòng)來(lái)觀察內(nèi)存值的變化。本行的最前面DATA后面的數(shù)據(jù)代表的是“一段”的開始地址,如現(xiàn)在為20H,再看屏幕的最上方,數(shù)字從0到F,顯示兩者相加就等于真正的地址值,如現(xiàn)在圖上所示的內(nèi)存20H、21H、22H、23H中的值分別是FBH 、0EH、E8H、30H。
圖5
6、當(dāng)運(yùn)行完程序后,即進(jìn)入它的反匯編區(qū),不是我們想要的東西。為了再?gòu)念^開始,可以用CTRL+F2功能鍵復(fù)位PC值。注意此時(shí)不會(huì)看到原來(lái)的窗口,為看到原來(lái)的窗口,請(qǐng)用ALT+4或ALT+5等來(lái)切換。當(dāng)然以上操作也可以菜單進(jìn)行。CTRL+F2是程序復(fù)位,用RUN菜單。窗口用WINDOWS菜單。此次大家就用用熟這個(gè)軟件吧,說(shuō)實(shí)話,我并不很喜歡它,操作起來(lái)不方便,但給我的機(jī)器只能上這個(gè),沒辦法,下次再給網(wǎng)友單獨(dú)介紹一個(gè)好一點(diǎn)的吧。
評(píng)論