導航:首頁 > 操作系統 > 單片機邏輯運算匯編

單片機邏輯運算匯編

發布時間:2022-06-04 02:36:42

A. 請高手指點:單片機編程:採用邏輯運算指令用軟體方法實現:

MOV
A,30H
;30H
X7,X6,X5,X4,X3,X2,X1,X0
RL
A
;A
X6,X5,X4,X3,X2,X1,X0,X7
SETB
ACC.0
;A
X6,X5,X4,X3,X2,X1,X0,1
ANL
A,30H
;A
X6&X7,X5&X6,X4&X5,X3&X4,X2&X3,X1&X2,X0&X1,X0
JZ
Y0
;因為Y為A的各位的或,所以只有A中的各位全為0時(即A=0)Y才為0,否則Y為1
SETB
C
SJMP
DONE
Y0:
CLR
C
DONE:SJMP
$

B. 誰有單片機匯編語言的指令解釋啊最主要是我現在還不懂指令中的jb,jz是什麼意思

不知道你指的是哪一類單片機,最常用的89C51系列單片機匯編語言共有111條指令,可分為5類:
[1].數據傳送類指令(共29條)
[2].算數運算類指令(共24條)
[3].邏輯運算及移位類指令(共24條)
[4].控制轉移類指令(共17條)
[5].布爾變數操作類指令(共17條)
jz 指令屬於第4類"控制轉移類"里的條件轉移指令,具體格式和作用是:
JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的內容為0,
則轉移到偏移量所指向的地址,否則程序往下執行。
jb 是屬於第5類"布爾變數操作類"指令,其格式和作用如下:
JB bit, rel ; 位狀態為1轉移。

C. 求單片機總匯編語言指令表、____

編號 指令名稱 指令助記符 指令說明
數據傳送類指令
1 一般傳送 MOV A, #data 將立即數#data送累加器A
2 MOV direct, #data 將立即數#data送片內RAM direct地址單元內
3 Mov Rn, #data 將立即數#data送寄存器Rn
4 Mov @Ri, #data 寄存器Ri內為RAM地址,將立即數#data送該地址單元內
5 Mov direct2, direct1 將direct1地址單元的數據送 direct2地址單元內
6 Mov direct, rn 將Rn的數據送 direct地址單元內
7 Mov Rn, direct 將direct地址單元內的數據送Rn寄存器
8 Mov direct, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據送direct地址單元內
9 Mov @Ri, direct 寄存器Ri內為RAM地址,將direct地址單元內的數據送該地址單元內
10 Mov A, Rn 將寄存器Rn內的數據送累加器A
11 Mov Rn, A 將累加器A內的數據送寄存器Rn
12 Mov A, direct 將direct地址單元內的數據送累加器A
13 Mov direct, A 將累加器A內的數據送direct地址單元內
14 Mov A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據送累加器A
15 Mov @Ri , A 寄存器Ri內為RAM地址,將累加器A的數據送該地址單元內
16 目的地址傳送 Mov DPTR, #data16 將16位立即數送數據指針DPTR寄存器
17 位元組交換 SWAP A 累加器A高低4位數據交換
18 XCH A, Rn 將累加器A數據和寄存器Rn內的數據交換
19 XCH A, direct 將累加器A數據和direct地址單元內的數據交換
20 XCH A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據與累加器A的數據交換
21 XCHD A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據低4位與的低4位交換
22 與外部RAM傳送 MOVX @DPTR, A 將累加器A的數據送數據指針DPTR寄存器所指外部RAM地址單元內
23 MOVX A , @DPTR 將DPTR寄存器所指外部RAM地址單元內的數據送累加器A
24 MOVX A, @Ri 寄存器Ri內為片外RAM地址,將該地址單元內的數據送累加器A
25 MOVX @Ri, A 寄存器Ri內為片外RAM地址,將該地址單元內的數據送累加器A
26 與ROM傳送 MOVC A, @A+DPTR A+DPTR構成ROM地址,將該地址內的數據送累加器A內
27 MOVC A, @A+PC A+PC構成ROM地址,將該地址內的數據送累加器A內
28 棧操作 PUSH direct 堆棧指針SP自加1後,將direct地址單元的數據壓進堆棧,
29 POP direct 堆棧的數據送direct地址單元中,後堆棧指針減1,
算術運算指令
30 加法指令 ADD A, Rn 將寄存器Rn與累加器A的數據相加後,結果保存到累加器A
31 ADD A, direct 將direct地址單元內的數據與累加器A的數據相加後結果保存到累加器A
32 ADD A, @Ri 寄存器Ri內位地址,將該地址單元內的數據與累加器A的數據相加後結果保存到累加器A
33 ADD A, #data 將立即數與累加器A的數據相加後結果保存到累加器A
34 帶進位加法 ADDC A, Rn 將寄存器Rn與累加器A的數據相加,再加上進位標志內的值後,結果保存到累加器A
35 ADDC A, direct 將direct地址單元內的數據與累加器A的數據相加,再加上進位標志內的值後,結果保存到累加器A
36 ADDC A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據與累加器A的數據相加,再加上進位標志內的值後,結果保存到累加器A
37 ADDC A, #data 將立即數與累加器A的數據相加,再加上進位標志內的值後結果保存到累加器A
38 帶借位減法 SUBB A, Rn 將與累加器A的數據減去寄存器Rn的數據,再減去進位標志內的值,結果保存到累加器A
39 SUBB A, direct 將與累加器A的數據減去direct地址單元內的數據,再減去進位標志內的值,結果保存到累加器A
40 SUBB A, @Ri 寄存器Ri內為RAM地址,將累加器A的數據減去該地址單元內的數據,再減去進位標志內的值後,結果保存到累加器A
41 SUBB A, #data 將累加器A的數據減去立即數,再減去進位標志內的值後,結果保存到累加器A
42 加1指令 INC A 累加器A的值自加1
43 INC Rn 寄存器Rn的值自加1
44 INC direct direct地址單元內值自加1
45 INC @Ri 寄存器Ri內為RAM地址,該地址單元內的值自加1
46 INC DPTR 數據指針寄存器DPTR內的值自加1
47 減1指令 DEC A 累加器A的值自減1
48 DEC Rn 寄存器Rn的值自減1
49 DEC direct direct地址單元內的值自減1
50 DEC @Ri 寄存器Ri內為RAM地址,該地址單元內的值自減1
51 乘法 MUL AB 累加器A與寄存器B內的值相乘,乘積的高8位保存在B寄存器,低8位保存在累加器A中
52 除法 DIV AB 累加器A的值除以寄存器B的值,商保存在累加器A中,余數保存在B寄存器
53 二-十進制調整 DA A 對累加器A的結果進行十進制調整
邏輯運算指令
54 邏輯與 ANL A, Rn 將累加器A的值和寄存器Rn的值進行與操作,結果保存到累加器A中
55 ANL A, direct 將累加器A的值和direct地址單元內的值進行與操作,結果保存到累加器A中
56 ANL A, @Ri 寄存器Ri內為RAM地址,將累加器A的值和該地址單元內的值進行與操作,結果保存到累加器A中
57 ANL A, #data 將累加器A的值和立即數進行與操作,結果保存到累加器A中
58 ANL direct, A 將累加器A的值和direct地址單元內的值進行與操作,結果保存到direct地址單元內
59 ANL direct, #data 將立即數和direct地址單元內的值進行與操作,結果保存到direct地址單元內
60 邏輯或 ORL A, Rn 將累加器A的值和寄存器Rn的值進行或操作,結果保存到累加器A中
61 ORL A, direct 將累加器A的值和direct地址單元內的值進行或操作,結果保存到累加器A中
62 ORL A, @Ri 寄存器Ri內為RAM地址,將累加器A的值和該地址單元內的值進行或操作,結果保存到累加器A中
63 ORL A, #data 將累加器A的值和立即數進行或操作,結果保存到累加器A中
64 ORL direct, A 將累加器A的值和direct地址單元內的值進行或操作,結果保存到direct地址單元內
65 ORL direct, #data 將立即數和direct地址單元內的值進行或操作,結果保存到direct地址單元內
66 邏輯異或 XRL A, Rn 將累加器A的值和寄存器Rn的值進行異或操作,結果保存到累加器A中
67 XRL A, direct 將累加器A的值和direct地址單元內的值進行異或操作,結果保存到累加器A中
68 XRL A, @Ri 寄存器Ri內為RAM地址,將累加器A的值和該地址單元內的值進行異或操作,結果保存到累加器A中
69 XRL A, #data 將累加器A的值和立即數進行異或操作,結果保存到累加器A中
70 XRL direct, A 將累加器A的值和direct地址單元內的值進行異或操作,結果保存到direct地址單元內
71 XRL direct, #data 將立即數和direct地址單元內的值進行異或操作,結果保存到direct地址單元內
72 按位取反 CPL A 累加器A的值按位取反
73 累加器清零 CLR A 累加器A清0
74 邏輯右移 RR A 累加器A的值循環右移1位
75 邏輯左移 RL A 累加器A的值循環左移1位
76 帶進位右移 RRC A 累加器A的值帶進位循環右移1位
77 帶進位左移 RLC A 累加器A的值帶進位循環左移1位
控制轉移指令
78 無條件轉移 SJMP rel rel為地址偏移量,PC加2後的地址加上rel作為目標地址,程序跳到目標地址繼續運行
79 AJMP addr11(a10- a0) addr11為11位地址,PC加2後的地址高5位與指令中的低11位地址構成目標地址,程序跳到目標地址繼續運行
80 LJMP addr16 將addr16的16位地址送程序計數器PC,使機器執行下一條指令時無條件轉移到addr16處執行程序
81 JMP @A+DPTR 目標地址的基地址放在DPTR中,目標地址對基地址的偏移量放在累加器A中,它們相加構成目標地址
82 條件轉移 JZ rel If(累加器A=0)則PC加2再加上rel作為目標地址
83 JNZ rel If(累加器A!=0)則PC加2再加上rel作為目標地址
84 CJNE A, direct, rel If(累加器A!= direct地址單元的值)則PC加2再加上rel作為目標地址
85 CJNE A, #data, rel If(累加器A!= 立即數)則PC加2再加上rel作為目標地址
86 CJNE Rn, #data, rel If(寄存器Rn的值!= 立即數)則PC加2再加上rel作為目標地址
87 CJNE @Ri, #data, rel 寄存器Ri內為RAM地址,If(該地址單元的值!= 立即數)則PC加2再加上rel作為目標地址
88 循環轉移 DJNZ Rn, rel 寄存器Rn的值減1後,If(寄存器Rn的值!=0)則PC加2再加上rel作為目標地址
89 DJNZ direct, rel Direct地址單元的值減1後,If(該值!=0)則PC加3再加上rel作為目標地址
90 布爾條件轉移 JC rel If(CY=1)則PC加2再加上rel作為目標地址
91 JNC rel If(CY=0)則PC加2再加上rel作為目標地址
92 JB bit, rel If(bit位=1)則PC加3再加上rel作為目標地址
93 JNB bit, rel If(bit位=0)則PC加3再加上rel作為目標地址
94 JBC bit, rel If(bit位=1)則PC加3再加上rel作為目標地址,且bit位清0
95 調用指令 ACALL addr11 addr11為11位地址,PC加2後的地址PUSH進堆棧,再將PC的地址高5位與指令中的低11位地址構成目標地址,程序跳到目標地址繼續運行
96 LCALL addr16 PC加3後的地址PUSH進堆棧,再將16位地址送PC作為目標地址,程序跳到目標地址繼續運行
97 返回指令 RET 子程序返回指令,把堆棧中的地址恢復到PC中使程序回到調用處
98 RETI 中斷程序返回指令,把堆棧中的地址恢復到PC中使程序回到調用處
99 空操作 NOP 空操作
位操作指令
100 布爾傳送 MOV C, bit 將bit位地址中的值送PSW中的進位標志位CY
101 MOV bit, C 將PSW中的進位標志位CY的值送bit位地址中
102 位清0 CLR C 將進位標志位CY清0
103 位清0 CLR bit 將bit位地址內清0
104 位置1 SETB C 將進位標志位CY置1
105 SETB bit 將bit位地址內置1
106 位與 ANL C, bit 將Cy和bit位地址中的值進行與操作後,結果送Cy
107 ANL C, /bit bit位地址中的值取反後再與Cy進行與操作,結構送Cy
108 位或 ORL C, bit 將Cy和bit位地址中的值進行或操作後,結果送Cy
109 ORL C, /bit bit位地址中的值取反後再與Cy進行或操作,結構送Cy
110 位取反 CPL C 將Cy取反
111 CPL bit 將bit位地址的值取反

說明:
1)Ri, Rn指當前工作寄存器,i,n = 0 – 7,當前工作寄存器由程序狀態字寄存器PSW的2個位RS1, RS0決定

D. 在單片機匯編中(CPL)是什麼意思

CPL 是取反指令,比如 CPL A,將累加器的值取反後再返回A。

E. 單片機邏輯或指令在現實中的用法

找個例子程序看看,
逐句分析一下

F. 單片機中的邏輯運算怎麼算的

在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。邏輯運算通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。

累加器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。

(6)單片機邏輯運算匯編擴展閱讀:

邏輯運算組成部分

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(拷貝)兩種屬性。這樣進入了布爾運算的物體仍可以被釋放到場景中。只有從其上方的列表框中選擇一個操作對象後才能激活該按鈕。

G. 匯編語言的邏輯運算中異或怎麼算,能不能給個例子

哪種計算機的?51單片機就有匯編的異或指令:XRL

H. 單片機邏輯運算

第一步:
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

參照下面那位大哥,改過來了,要不誤導人咯~~呵呵

I. 單片機指令邏輯運算

那條指令的意思是將A的內容與R0內容相或,結果保存在A中!

將C3H和55H寫成二進制形式,然後各對應位相「或」
C3H: 11000011
55H: 01010101
相或結果:11010111 ,再將此結果寫成十六進制,就是D7H

希望對你有幫助!

J. 單片機 cpl是什麼

單片機cpl指匯編指令,是一個邏輯運算指令,是單片機中直接定址位取反的指令,作用是將存儲器的指定數據中的每一位轉變為邏輯反的數據。

CPL為單片機Converse Position Logical指令的簡稱,在單片機中使用該指令可將指定數據轉變為邏輯反數據,如對單片機存儲器中的1使用CPL指令,可變為0,結果被存放回累。

(10)單片機邏輯運算匯編擴展閱讀:

讀-修改-寫指令的例子:

CPL P2 ;~P2→P2

ANL P0,#立即數 ;P0&立即數→P0

ORL P0,A ;P0|A→P0

INC P1 ;P1+1→P1

DEC P3 ;P3-1→P3

讀-修改-寫指令的特點是,從埠輸入(讀)信號,在單片機內加以運算(修改)後,再輸出(寫)到該埠上。這樣安排的原因在於讀-修改-寫指令需要得到埠原輸出的狀態,修改後再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原埠的狀態被讀錯。

閱讀全文

與單片機邏輯運算匯編相關的資料

熱點內容
awss3命令 瀏覽:356
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:346
什麼方式解壓比較好 瀏覽:266
erp是什麼伺服器 瀏覽:185
python中tmp 瀏覽:25
說明wpf加密過程 瀏覽:145
java讀取list 瀏覽:703
iis7gzip壓縮 瀏覽:40
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:475
php函數的返回值嗎 瀏覽:588
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:221
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993