1.編寫程序,用位處理指令實現“P1.4=P1.0∨(P1.1∧P1.2)∨P1.3”的邏輯功能。
MOV C,P1.1
ANL C,P1.2
ORL C,P1.0
ORL C,P1.3
MOV P1.3,C
2.編寫程序,若累加器A的內容分別滿足下列條件,則程序轉到LABLE存儲單元。設A中存放的的無符號數。
(1)A≥10;(2)A>10;(3)A≤10。
(1)
CJNE A,#10,NEXT
LJMP LABLE
NEXT:
JNC LABLE
(2)
CJNE A,#10,NEXT
LJMP NEXT2
NEXT:
JNC LABLE
NEXT2:
(3)
CJNE A,#10,NEXT
LJMP LABLE
NEXT:
JC LABLE
3.編寫程序,查找片內RAM的30H~50H單元中是否有55H這一數據,若有,則51H單元置為FFH;若未找到,則將51H單元清0。
MOV R0,29H
NEXT:
INC R0
CJNE R0,#51H,NEXT2
MOV 51H,#0FFH
AJMP OVER
NEXT2:
CJNE @R0,#55H,NEXT
MOV 51H,#0
OVER:
4.編寫程序,查找片內RAM的30H~50H單元中出現0的次數,并將查找的結果存入51H單元。
MOV R0,30H
MOV 51H,#0
NEXT:
CJNE @R0,#00H,NEXT2
INC 51H
NEXT2:
INC R0
CJNE R0,#51H,NEXT
5.在片外RAM中有一個數據塊,存有若干字符、數字,首地址為SOURCE要求將該數據塊傳送到片內RAM以DIST開始的區域,直到遇到字符“$”時結束($也要傳送,它的ASCII碼為24H)。
MOV DPTR,#SOURCE
MOV R0,#DIST
NEXT:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
CINE A,#24H,NEXT
6.片內RAM的30H和31H單元中存放著一個16位的二進制數,高位在前,低位在后。編寫程序對其求補,并存回原處。
CLR C
MOV A,#0
SUBB A,31H
MOV 31H,A
MOV A,#0
SUBB A,30H
MOV 30H,A
7.片內RAM中有兩個4字節壓縮的BCD碼形式存放的十進制數,一個存放在30H~33H單元中,另一個存放在40H~43H單元中。編寫程序將它們相加,結果的BCD碼存放在30H~33H中。
CLR C
MOV R0,#30H
MOV R1,#40H
MOV R2,#4
NEXT:
MOV A,@R0
MOV @R0,A
INC R0
INC R1
DJNZ R2,NEXT
8.編寫程序,把片外RAM從2000H開始存放的16字節數據,傳送到片內從30H開始的單元中。
MOV DPTR,#2000H
MOV R0,#30H
MOV R1,#0
NEXT:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
INC R1
CINE R1,#16H,NEXT
-
單片機
+關注
關注
6044文章
44624瀏覽量
638945 -
匯編語言
+關注
關注
14文章
410瀏覽量
35971
原文標題:單片機基礎匯編語言編程實例
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
單片機編程之匯編語言基礎-PIC單片機匯編指令
MCS-51單片機指令系統和匯編語言程序實例
![MCS-51<b class='flag-5'>單片機</b>指令系統和<b class='flag-5'>匯編語言</b>程序<b class='flag-5'>實例</b>](https://file.elecfans.com/web2/M00/48/93/pYYBAGKhtA-ALG0qAAB6bx_IlTQ584.jpg)
MSP430單片機C語言和匯編語言混合編程
MDP430單片機語言和匯編語言混合編程
MSP430單片機的C語言和匯編語言混合編程的詳細描述和應用實例
![MSP430<b class='flag-5'>單片機</b>的C<b class='flag-5'>語言</b>和<b class='flag-5'>匯編語言</b>混合<b class='flag-5'>編程</b>的詳細描述和應用<b class='flag-5'>實例</b>](https://file.elecfans.com/web1/M00/85/DA/pIYBAFxvv5GAYqU-AAEr_5oNSg0772.png)
評論