從零開始51單片機教程——10 數(shù)據(jù)傳遞類指令
單片機數(shù)據(jù)傳遞類指令有哪些?什么是直接地址傳遞與間接地址傳遞
(3)以直接地址為目的操作數(shù)的指令
MOV direct,A 例: MOV 20H,A
MOV direct,Rn MOV 20H,R1
MOV direct1,direct2 MOV 20H,30H
MOV direct,@Ri MOV 20H,@R1
MOV direct,#data MOV 20H,#34H
(4)以間接地址為目的操作數(shù)的指令
MOV @Ri,A 例:MOV @R0,A
MOV @Ri,direct MOV @R1,20H
MOV @Ri,#data MOV @R0,#34H
(5)十六位數(shù)的傳遞指令
MOV DPTR,#data16
8051是一種8位機,這是唯一的一條16位立即數(shù)傳遞指令,其功能是將一個16位的立即數(shù)送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H,則執(zhí)行完了之后DPH中的值為12H,DPL中的值為34H。反之,如果我們分別向DPH,DPL送數(shù),則結果也一樣。如有下面兩條指令:MOV DPH,#35H,MOV DPL,#12H。則就相當于執(zhí)行了MOV DPTR,#3512H。
數(shù)據(jù)傳遞類指令綜合練習:
- 給出每條指令執(zhí)行后的結果
- 上機練習:
MOV 23H,#30H MOV 12H,#34H MOV R0,#23H MOV R7,#22H MOV R1,12H MOV A,@R0 MOV 34H,@R1 | (23h)=30h (12h)=34h (R0)=23H (R7)=22H (R1)=12H (A)=30H (34H)=34H | MOV 45H,34H MOV DPTR,#6712H MOV 12H,DPH MOV R0,DPL MOV A,@R0 | (45H)=34H (DPTR)=6712H (12H)=67H (R0)=12H (A)=67H |
說明:用括號括起來代表內容,如(23H)則代表內部RAM23H單元中的值,(A)則代表累加器A單元中的值。
- 進入DOS狀態(tài),進入WAVE所在的目錄,例D:WAVE
- 鍵入MCS51,出現(xiàn)如下畫面
單片機數(shù)據(jù)傳遞指令>圖1
- 按File->Open,出現(xiàn)對話框后,在Name處輸入一個文件名(見圖2),如果是下面列表中已存在的,則打開這個文件,如果不存在這個文件,則新建一個文件(見圖3)
圖2
- 在空白處將上面的程序輸入。見圖4。用ALT+A匯編通過。用F8即可單步執(zhí)行,在執(zhí)行過程中注意觀察屏幕左邊的工作寄存器及A累加器中的值的變化。
圖4
- 內存中值的變化在此是看不到的,可以用如下方法觀察(看圖5):將鼠標移到DATA,雙擊,則光標進入此行,此時可以鍵盤上的上下光標鍵上下翻動來觀察內存值的變化。本行的最前面DATA后面的數(shù)據(jù)代表的是“一段”的開始地址,如現(xiàn)在為20H,再看屏幕的最上方,數(shù)字從0到F,顯示兩者相加就等于真正的地址值,如現(xiàn)在圖上所示的內存20H、21H、22H、23H中的值分別是FBH 、0EH、E8H、30H。
圖5
6、當運行完程序后,即進入它的反匯編區(qū),不是我們想要的東西。為了再從頭開始,可以用CTRL+F2功能鍵復位PC值。注意此時不會看到原來的窗口,為看到原來的窗口,請用ALT+4或ALT+5等來切換。當然以上操作也可以菜單進行。CTRL+F2是程序復位,用RUN菜單。窗口用WINDOWS菜單。
評論