A. 單片機的位的問題
1. 8位單片機 表示處理器指令處理數據能力 一次處理8位數據
多數據情況 8位機 數據匯流排應該是 8位(多了浪費), 地址匯流排根據需要可8,12,24,32位等
8088 是16位機,數據匯流排卻是 8位
2. 沒關系 8086 是8位機 卻有20位地址匯流排 定址空間2M
3. 最大RAM由支持的地址匯流排寬度(位數)決定,即指令設計時支持最大地址決定,16位機286/386可不止16位地址匯流排
4.到了操作系統層 支持的內存跟位數也沒啥關系了,32系統理論上是4G 但實際XP里跑的程序可以用到4G內存(虛擬)而操作系統本身卻只支持3.xxG 。而同時期的Server版Windows支持 >4G 內存
B. 單片機中的邏輯運算怎麼算的
在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。邏輯運算通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。
累加器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。
(2)單片機的位與和位或擴展閱讀:
邏輯運算組成部分
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(拷貝)兩種屬性。這樣進入了布爾運算的物體仍可以被釋放到場景中。只有從其上方的列表框中選擇一個操作對象後才能激活該按鈕。
C. 單片機邏輯運算
第一步:
ANL是邏輯與運算
就是說第一步是A與47H里的內容34H進行與運算。 A=10000011 34H=00110100
與運算特點是有「0」則0 運算結果為00000000=00H 此時累加器A中內容為00H
第二步:
ORL是邏輯或運算
這部分是第一部分運算出來的A與47H地址里的34H進行或運算,得出的結果存放在47H單元中。 A=00H=00000000 47H=00110100 或運算特點是有「1」則1
所以運算結果為00110100=34H運算後47H地址中的內容為34H
第三步:
XRL是邏輯異或指令
R0前面的@說明定址方式是寄存器定址。特點是將R0中的內容作為地址,在從此地址中尋找出對應的內容作為R0的內容。題干中說到(R0)=47H 就是R0中的內容為47H @R0就是以R0中的內容47H為地址,找出對應的內容。上一部分已經知道了47H里的內容為34H。回到第三步來,就相當於XRL A,34H A=00H=00000000 34H=00110100 邏輯異或運算的特點是相同則為0,不同則為1,所以結果為00110100=34H 此時累加器A中的內容為34H
第四步:
SWAP是高低四位數據值互換(如果是8位的話) 就是將00110100前四位與後四位互換,換完後還是01000011=43H 最後A中內容為43H
參照下面那位大哥,改過來了,要不誤導人咯~~呵呵
D. 在單片機中,ANL和ORL在數與數之間是怎麼計算的
1、ANL位與運算,就是二進制數字一位一位進行與運算: 0*1=0, 1*1=1...
比如說07H(0000 0111)和A1H(1010 0001)進行位與運算,就一位一位地與:
0000 0111
*1010 0001
---------------
0000 0001
就變成了01H。代碼可以寫成:
A=07H
ANLA, #A1H
運行出來A裡面就是01H。
向左轉|向右轉
2、ORL 位或運算,就是二進制數字一位一位進行或運算: 0+1=1, 1+1=1...
比如說07H(0000 0111)和A1H(1010 0001)進行位或運算,就一位一位地或:
0000 0111
+1010 0001
---------------
1010 0111
運算結果就是A7H。代碼可以寫成:
A=07H
ORL A, #A1H
運算結果就是A7H。
(4)單片機的位與和位或擴展閱讀:
ANL 位與運算
ORL 位或運算
0FH = 0000 1111 h
80H = 0100 0000 h
或後= 0100 1111 h = 8FH
所以A=0FH,執行ORL後是8FH
0FH = 0000 1111 h
88H = 0100 0100 h
與後= 0000 0100 h = 08H
所以A=0FH,執行ANL A,#88H後是08H
口訣:
與 有0則0
或 有1則1
E. c51單片機AND,OR,XOR邏輯運算是什麼意思,能舉例說明嗎
1)邏輯與and
ANDReg/Mem, Reg/Mem/Imm受影衡臘響的標志位:CF(0)、OF(0)、PF、SF和ZF(AF無定義)
特點: XAND0------0用於將某位清0
XAND1------X用於某位保持不變
2)邏輯或or
ORReg/Mem, Reg/Mem/Imm受影響的標志位:CF(0)、OF(0)、PF、SF和ZF(AF無定義)
或操作特點:XOR0------X某位保持不變
XOR1------1某位置1
3)邏輯非not
NOTReg/Mem指兆李令的執行不影響任何標志位
4)異或指令xor
XORReg/Mem, Reg/Mem/Imm受影響的標志位:CF(0)、OF(0)、PF、SF和ZF(AF無定義)
特點:XXOR0 -------X 某位保持不變
XXOR1-------~X ,某位取反
5)測試指令咐猜滑test
TEST OPR1,OPR2功能:執行「與」操作,但不保存結果,只根據結果置條件標志位。
F. 單片機中邏輯運算符&&,||與位運算符&,|的區別
前者的結果是邏輯真或者假(1或0)後者結果為為兩個操作數按二進制位相與(&) 相或(|)後得到的結果