單片機基礎匯編語言編程實例
單片機匯編語言編程
1.編寫程序,用位處理指令實現(xiàn)“P1.4=P1.0∨(P1.1∧P1.2)∨P1.3”的邏輯功能。
MOV C,P1.1ANL C,P1.2ORL C,P1.0ORL C,P1.3MOV P1.3,C 2.編寫程序,若累加器A的內容分別滿足下列條件,則程序轉到LABLE存儲單元。設A中存放的的無符號數(shù)。(1)A≥10; (2)A>10; (3)A≤10。(1)CJNE A,#10,NEXTLJMP LABLENEXT:JNC LABLE(2)CJNE A,#10,NEXTLJMP NEXT2NEXT:JNC LABLENEXT2:(3)CJNE A,#10,NEXTLJMP LABLENEXT:JC LABLE 3.編寫程序,查找片內RAM的30H~50H單元中是否有55H這一數(shù)據(jù),若有,則51H單元置為FFH;若未找到,則將51H單元清0。MOV R0,29HNEXT:INC R0CJNE R0,#51H,NEXT2MOV 51H,#0FFHAJMP OVERNEXT2:CJNE @R0,#55H,NEXTMOV 51H,#0OVER: 4.編寫程序,查找片內RAM的30H~50H單元中出現(xiàn)0的次數(shù),并將查找的結果存入51H單元。MOV R0,30HMOV 51H,#0NEXT:CJNE @R0,#00H,NEXT2INC 51HNEXT2:INC R0CJNE R0,#51H,NEXT 5.在片外RAM中有一個數(shù)據(jù)塊,存有若干字符、數(shù)字,首地址為SOURCE要求將該數(shù)據(jù)塊傳送到片內RAM以DIST開始的區(qū)域,直到遇到字符“$”時結束($也要傳送,它的ASCII碼為24H)。MOV DPTR,#SOURCEMOV R0,#DISTNEXT:MOVX A,@DPTRMOV @R0,AINC DPTRINC R0CINE A,#24H,NEXT 6.片內RAM的30H和31H單元中存放著一個16位的二進制數(shù),高位在前,低位在后。編寫程序對其求補,并存回原處。CLR CMOV A,#0SUBB A,31HMOV 31H,AMOV A,#0SUBB A,30HMOV 30H,A 7.片內RAM中有兩個4字節(jié)壓縮的BCD碼形式存放的十進制數(shù),一個存放在30H~33H單元中,另一個存放在40H~43H單元中。編寫程序將它們相加,結果的BCD碼存放在30H~33H中。
CLR CMOV R0,#30HMOV R1,#40HMOV R2,#4NEXT:MOV A,@R0ADDC A,@R1MOV @R0,AINC R0INC R1DJNZ R2,NEXT 8.編寫程序,把片外RAM從2000H開始存放的16字節(jié)數(shù)據(jù),傳送到片內從30H開始的單元中。MOV DPTR,#2000HMOV R0,#30HMOV R1,#0NEXT:MOVX A,@DPTRMOV @R0,AINC DPTRINC R0INC R1CINE R1,#16H,NEXT

編輯:admin 最后修改時間:2018-05-21