1. 51單片機,位操作指令有什麼特點
51單片機位操作指令又稱布爾操作,它是以位為單位進行的各種操作。
我只學過80c51所以這里我只講一下我所知道它的吧:
進行位操作的時候,以進位作為位累加器,位操作指令中的位地址有四種表示形式:
1、直接地址方式(如0D5H);
2、點操作符方式(如0D
0H.5;PSW.5等);
3、位名稱方式(如F0);
4、偽指令定義方式(如MYFLAG
BIT
F0)。
而它進行位定址的位元組地址是有范圍的:
是位元組地址在20H到2FH內的都可以進行位定址。另外部分的特殊功能寄存器也可以進行位定址。
而你所說的位地址和你的位元組地址相同的情況那完全不用考慮的,因為他們的定址方式不同:一個是位定址而另外一個是位元組定址。
2. 單片機中,什麼叫指令長度
指令長度就是一條指令的二進制數位的多少。例如51單片機有8位,16位,24位指令
8位:累加器、寄存器間的加、減、與、或等算術和邏輯運算指令,(3位操作碼可區分8種運算+3位操作碼可區分8個寄存器+其他定義)
16位:累加器、寄存器與一個「立即數」之間的加、減、與、或等算術和邏輯運算指令,需要一個8位二進制數,所以比8位指令長
24位指令:與存儲器存取數有關的「直接地址」指令需要16位地址,加首位元組就要24位了,直接轉移和調用子程序指令,也需要16位地址。
綜上所述,指令長度與定址方式密切相關。
3. 單片機中位定址和位元組定址的區別
一、作用不同:
位元組定址:把數據直接寫入當前地址,或者把當前地址的內容讀出。
位定址是位操作命令,寫入和讀出的是一個位bit變數。
二、傳遞不同:
MOV A,00H和MOV C,00H,前者是將RAM中地址為00H的8位內容傳遞給A,後者是將位定址區(20H-2FH)中的地址為00H的1位內容傳遞給C。這兩個00H不是在同一個地址。
三、命令不同:
地址本身是8位二進制,但區別是前面的命令。如果命令是位元組定址,則這個位元組就是位元組地址,相應地如果命令是位定址則這個位元組就是位地址。
(3)單片機位指令擴展閱讀:
對位元組地址中的位地址進行定址的定址方式稱為位定址。
採用位定址方式的指令,其操作數是8位二進制數中的某一位,在指令中要給出的是內部RAM單元中的某一位,即位地址,其在指令中用bit表示。
8051單片機內部有1個可位定址區,地址為20H~2FH,共16個單元。其中每個單元中的每一位都可單獨作為操作數,共128位。如果SFR的地址值能被8整除,則該SFR也可以進行位定址。可位定址的SFR有ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON。
4. 單片機系統指令的位操作指令
一、數據位傳送指令
MOV C,bit
MOV bit,C
如MOV C,06H ;(20H).6→Cy
06H是內部RAM 20H位元組位6的位地址。
MOV P1.0,C ;Cy→P1.0
可定址位的具體定義:從20H單元的第一位開始一直到2FH單元的最後一位分別為00H~7FH以及特殊功能寄存器中80H~F7H。
二、位變數修改指令
CLR C ;清「0」Cy
CLR bit ;清「0」bit位
CPL C ;Cy求反
CPL bit ;bit位求反
SETB C ;置「1」 Cy
SETB bit ;置「1」bit位
三、位變數邏輯與指令
ANL C,bit ;bit ∧Cy →Cy
ANL C,/bit; ;/ bit ∧Cy →Cy
四、位變數邏輯或指令
ORL C,bit ;bit ∨ Cy →Cy
ORL C,/bit ;/ bit ∨ Cy →Cy
五、條件轉移類指令
JC rel ;如果進位位Cy=1,則轉移
JNC rel ;如果進位位Cy=0,則轉移
JB bit,rel ;如果直接定址位=1,則轉移
JNB bit,rel ;如果直接定址位=0,則轉移
JBC bit,rel ;如果直接定址位=1,則轉移,並對bit位清0
5. 51單片機,位操作指令有什麼特點
51單片機位操作指令又稱布爾操作,它是以位為單位進行的各種操作。
我只學過80c51所以這里我只講一下我所知道它的吧:
進行位操作的時候,以進位作為位累加器,位操作指令中的位地址有四種表示形式:
1、直接地址方式(如0D5H);
2、點操作符方式(如0D 0H.5;PSW.5等);
3、位名稱方式(如F0);
4、偽指令定義方式(如MYFLAG BIT F0)。
而它進行位定址的位元組地址是有范圍的:
是位元組地址在20H到2FH內的都可以進行位定址。另外部分的特殊功能寄存器也可以進行位定址。
而你所說的位地址和你的位元組地址相同的情況那完全不用考慮的,因為他們的定址方式不同:一個是位定址而另外一個是位元組定址。