『壹』 單片機中((R0))是什麼意思
舉個例子 如果R0=0x31 那麼((R0))指0x31中存儲的內容 就是R0存的地址中的內容。
由於單片機每執行一條指令都需要時間。上面的程序用文字描述:
DELAY: MOV R5,#20 ;延時子程序,延時0.2秒
這句是將十進制數20這個數傳送給寄存器R5。
D1: MOV R6,#20
這句是:D1是標號,將20傳給R6
D2: MOV R7,#248
與上相同
DJNZ R7,$
這句是每執行一次R7就減1如果不為0就跳轉到這條指令開頭,直到減為0。
DJNZ R6,D2
這句是每執行一次R6就減1如果不為0就跳轉到D2這個標號,直到減為0。
DJNZ R5,D1
這句是每執行一次R1就減1如果不為0就跳轉到D1這個標號,直到減為0。
『貳』 單片機ADD R0,AD對么,為什麼
51 單片機沒有 ADD R0,AD 可以是 ADD A, AD ( AD 為 direct )
ADD 指令格式有
ADD A,Rn 寄存器內容加到累加器
ADD A,direct 直接地址單元中的數據加到累加器
ADD A,@Ri 間接RAM中的數據加到累加器
ADD A,#data 立即數加到累加器
ADDC A,Rn 寄存器帶進位加到累加器
ADDC A,direct 直接地址單元的內容帶進位加到累加器
ADDC A,@Ri 間接RAM內容帶進位加到累加器
ADDC A,#data 立即數帶進位加到累加器
『叄』 單片機R0可以位定址嗎
51中R0當然不可以位定址,可以位定址的存儲器是在20H~2FH,有的特殊功能寄存器也可以位定址。R0不在這里!學51把存儲結構弄懂很重要
『肆』 單片機 INC R0 得到什麼結果
INC是自加一的命令,R0為寄存器名稱,表示R0寄存器值自動加1.
『伍』 單片機中MOV A,@R0和MOV A,R0有什麼區別
MOV A,@R0是將R0保存的地址中的值傳送給累加器A
MOV A,R0是將R0的值傳送給累加器A。
比如:
MOV 30H,#55H
MOV R0,#30H
MOV A,@R0 此時A=55H
MOV A,R0 此時A=30H
『陸』 單片機MOV R0,A.和MOV @R0,A的區別
一、作用不同
MOV A,R0是直接定址指令(直接定址方式的操作指令直接把地址作為操作數來運行,既可作為源操作數,也可作為目的操作數)因此是傳遞的R0中存儲的數據。
MOV A,@R0是間接定址指令(間接定址時,寄存器的內容是操作數的地址。通過@Ri可以對片內數據存儲器單元間接定址),因此Ri中存儲的是數據存儲器的地址,Ri相當於指針,@Ri中存儲的是數據存儲器的地址的內容。
二、意思不同
MOV R0,A是把累加器中的數送給寄存器R0,MOV @R0,A是把累加器的內容給R0指向的內存單元。
三、用法不同
比如MOV A,#01H
MOV R0,A ;執行完這一句之後,R0=#01H
MOV A,#20H
MOV @R0,A ;把#20H送給R0指向的單元#01H,執行完之後01地址中存儲的內容就變成#20H
後者是一個間接定址的問題。
『柒』 單片機R0=20H與(R0)=20H有什麼區別
R0=20H表示寄存器R0裡面放20H,屬於寄存器直接定址
(R0)=20H表示以R0中的數據為地址,往這個地址中放20H,屬於寄存器間接定址
『捌』 51單片機的工作寄存器R0~R7位於內部RAM什麼位置及如何設定
51單片機的工作寄存器一共有32個,為RAM中的00H--1FH單元,分為4組,分別是
0組:00H--07H單元、
1組:08H--0FH單元、
2組:10H--17H單元、
3組:18H--1FH單元,
每組的8個單元分別對應R0--R7。這四組中只有一組是當前工作寄存器,程序中使用的就是當前工作寄存器中的8個單元。當前工作寄存器是由程序狀態字PSW中的第三第四位決定的。在PSW中,的PSW4、PSW3兩位組合的00、01、10、11四個狀態,分別指定工作寄存器的0組、1組、2組、3組,只需要用指令改變PSW的這兩位狀態,就可以改變當前工作寄存器組。這樣,實際上就是有32個工作寄存器可以選用。
『玖』 單片機中的R0-----R7有誰來決定
狀態寄存器,R0-----R7共有四組。
在c中可以指定寄存器組,多看看書,匯編在使用寄存器的時候提前改變狀態寄存器,就可以R0-----R7用了,另外,如果不想用R0-----R7這個標號,可以直接用R0-----R7的地址。
mov a 01h;
『拾』 單片機匯編的R0~R7的用法
都是寄存器,位於cpu內部alu單元,作用就是用來控制設置cpu引腳的功能和狀態進而與外設交互;
r0\r1可用作間接定址,r0-r7用來做寄存器定址,定址速度最快;