⑴ 那你知道RR指令(右移)跟RRC(右移包括CY位)指令用c語言分別怎麼表達嗎能舉個例子嗎先謝啦~
你好,
我了解C語言對51單片機的編程,對匯編不是很了解。我粗略看了一下,發現匯編的位移操作比C語言復雜很多,c語言的位移操作無非兩個運算符:>>(右移)和<<(左移)
比如:
0x1<<2 得到 0x4
0xf>>3 得到 0x2
(C語言中0x開頭表示十六進制)
可見左操作數是被操作的對象,右操作數是位移的位數。
一般來說我們在C51中都是對unsigned char類型進行位操作,所以移出的位都是補0(如果是對有符號整數>>,最高位也即符號位會保持不變),因此C語言在這方面能夠實現的不如匯編。
當然你可以如樓上所說聯合編程,也可以在C語言函數中直接插入匯編語句,這一點Keil C 編譯器早已支持。聯合編程我不了解,而C語言中插入匯編語句應這樣進行:
1、在含有匯編語句的函數前聲明:#pragma src;
2、在匯編語句的起始和末尾加#pragma asm 和 #pragma endasm標識始末位置。
如果希望進一步討論歡迎hi我。
⑵ 從這兩段單片機匯編程序來看,RR,RL和RRC,RLC在這里區別不大
不一樣,
不帶C的循環,就A里的8位數據自循環,移動8次,循環一周.
帶C的就不一樣,移動一次,C的狀態會移入A,而A的移出的位會移進C.
就是C參與了移動,所以C的位的狀態會影響結果.
⑶ 51單片機中rr,rrc,rl,rlc這些指令除了位移做跑馬燈外,還有其它有實際意義的作用嗎 我覺得就是個廢物
在數學運算中的意義就大了,左移一位就是乘以2,右移就是除以2,很有運算意義的!
⑷ 單片機程序中RRC A是什麼意思
將累加器A中的數帶進位右移一位 R 移動R向右C進位標志C
RLC A 將累加器A中的數帶進位左移一位
⑸ 單片機中的邏輯運算怎麼算的
在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。邏輯運算通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。
累加器A清0指令。
CLR A;單片機軟體指令功能是將累加器A中的內容清0。影響單片機標志寄存器PSW中的奇偶標志位P。
累加器A取反指令。
CPL A;單片機軟體指令功能是將累加器A中的內容全部取反,結果送回A中。影響單片機標志寄存器PSW中的奇偶標志位P。
常用於單片機某個存儲器單元或某個存儲器區域中帶符號數的求補。
RL A;左循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數向左移動1位,累加器A中最左邊1位(即最高位A.7)移至最右邊1位(即最低位A.0)。不影響單片機標志寄存器PSW中的標志位。
RR A;右循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數向右移動1位,累加器A中最右邊1位(即最低位A.0)移至最左邊1位(即最高位A.7)。不影響單片機標志寄存器PSW中的標志位。
RLC A;帶進位左循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數和進位CY向左移動1位,累加器A中最左邊1位(即最高位A.7)移至CY,CY原內容移至累加器A的最右邊1位(即最低位A.0)。影響單片機標志寄存器PSW中的進位標志位CY。
RRC A;帶進位右循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數和進位CY向右移動1位,累加器A中最右邊1位(即最低位A.0)移至CY,CY原內容移至累加器A的最左邊1位(即最高位A.7)。影響單片機標志寄存器PSW中的進位標志位CY。
(5)單片機RRC擴展閱讀:
邏輯運算組成部分
Boolean(布爾運算)的參數面板可分成三部分。
布爾運算練習模型:骰子
Pick Boolean(拾取布爾運算對象)卷展欄
該卷展欄用來拾取運算對象B,如圖所示。
在布爾運算中,兩個原始對象被稱為運算對象,一個叫運算對象A,另一個叫運算對象B。在建立布爾運算前,首先要在視圖中選擇一個原始對象,這時Boolean按鈕才可以使用。進入布爾運算命令面板後,單擊Pick Operand B命令按鈕來選擇第二個運算對象。
· Pick Operand B(拾取運算對象B):單擊該按鈕,在場景中選擇另一個物體完成布爾合成。其下的4個選項用來控制運算對象B的屬性,它們要在拾取運算對象B之前確定。
· Reference(參考):將原始對象的參考復製品作為運算對象B,以後改變原始對象,也會同時改變布爾物體中的運算對象B,但改變運算對象B,不會改變原始對象。
· Copy(復制):將原始對象復制一個作為運算對象B,而不改變原始對象。當原始對象還要作其他之用時選用該方式。
· Move(移動):將原始對象直接作為運算對象B,它本身將不再存在。當原始對象無其他用途時選該用方式。該方式為默認方式。
· Instance(關聯):將原始對象的關聯復製品作為運算對象B,以後對兩者中之一進行修改時都會同時影響另一個。
Parameters(參數)卷展欄
該卷展欄參數可分為三個區域,如圖所示。
Operands(操作對象)選項組
該組參數用來顯示所有的運算對象的名稱,並可對它們作相關的操作。
Operands List(操作對象列表):該列表框中列出所有的運算對象,供編輯操作時選擇使用。
Name(名稱):顯示列表框中選中的操作對象的名稱。可對其進行編輯。
Extract Operand(提取運算對象):它將當前指定的運算對象重新提取到場景中,作為一個新的可用對象,包括Instance(關聯)和Copy(拷貝)兩種屬性。這樣進入了布爾運算的物體仍可以被釋放到場景中。只有從其上方的列表框中選擇一個操作對象後才能激活該按鈕。
⑹ 誰知道單片機中這些縮寫是什麼意思ANL BIT ORL CPL JC JNC JB JBC JNB SETB RLC RL RRC RR CPL XRL ORL...
這些是匯編指令 包括「與,或,非,跳轉(JC JNC JB JBC JNB) ,置位,左移,左環移,右移,右環移,帶進位的加 」
JC C為1跳轉
JNC C為零跳轉
JB B為1跳轉
JBC
JNB B為0跳轉
查一下51單片機的書就行了