


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、INC DPTRMOV A, ROANL A, #OFHORL A,#30HMOVX DPTR,AINC DPTRINC RODJNZ R2, LOOPSJMP $END評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。3、內部RAM : 2011和3011開始的單元分別存放著16個16進制數,請將對應單元的內容相加(不考 慮溢并將和存入外部RAM 2000H開始的單元中。出),ORG 0解:LJMP STARTORG 30HSTART MOV RO,#20HMOV Rl,#30HMOV
2、 DPTR,W2000HMOV R2, #08H;每個單元存放2個16進制數,故16個16進制數占用8個單元LOOP MOV A, R0ADD A, R1MOVX ?DPTR,AINCROINCR1INCDPTRDJNZR2, LOOPSJMP$END評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得 10分。若僅寫 對少量指令,可酌情給1 - 3分;若僅有少量指令寫錯,可酌情扣1 - 3分。單片機原理及應用編程題題庫參考答案六、編程(每題10分)1、內部RAM 30H和31H單元中存放著2個0-9的ASCII碼(高位字節(jié)在前),請將其轉換為壓縮BCD碼(高位在前)并存
3、入外部 RAM 2300H單元中。OH START30H解:ORG A, 30HLJMP OR<A, #OFH A RO, A A, 31HSTARTMOV anla,#ofhSWAP a, ROMOV DPTR, #2300H DPTR, AMOVANLORLMOVMOVXEND評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。2、將存放在內部 RAM 30H-35H單元的壓縮型BCD碼轉換成相應的ASCII碼,依次存放到外部 RAM 2100H開始 的單元區(qū)中。ORG 0H L
4、JMP START ORG 30HSTART MOV RO, #30HMOV R2, #06HMOV DPTR, W2100HLOOP MOV A, R0SWAP AANL A,#OFHORL A,#30HMOVX DPTR, AMOV DPTR, #2000HMOVX DPTR, AEND評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣 1-3分。6、將存放在內部RAM20H-2FH單元的壓縮型BCDB(高位在前)轉換成相應的ASCII碼,依次存放到 外部RAM 1000H開始的單元區(qū)中。OR
5、G 0HLJMP STARTORG30HSTARTMOVRO, #20HMOVR2, #10HMOVDPTR,#1000HLOOPMOVA, R0SWAP AANL A,#OFHORL A, #30H (或 ADD A, #30H)MOVX DPTR,AINC DPTRMOV A, R0ANL A,#0FHORL A, #30H (或 ADD A, #30H)MOVX DPTR,AINC DPTRINC RODJNZ R2, LOOPSJMP $END評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌
6、情扣1-3分。7、內部RAM30H和38H開始的單元分別存放著8個壓縮BCD碼,請將對應單元的內容相加(不考 慮溢出), 并將和存入外部RAM 1000H開始的單元中。解:ORG0LJMP START4、請編寫多字節(jié)無符號數減法程序。被減數存放在內部RAM 20H開始的8個單元中,減數存放在內 部RAM30H開始的8個單元,請將差存放到外部 RAM 2000H開始的8個單元中,借位存放到 0V標志中。注意:所有數據均按照從低字節(jié)到高字節(jié)的順序存放。ORG0LJMPSTARTORG30HSTART MOV RO,#20HMOVRl,#30HMOVDPTR, #2000HMOVR2,#08HCLR
7、CLOOP MOVA, R0SUBB A, R1MOVXDPTR,AINCROINCR1INCDPTRDJNZR2, LOOPMOVOV,CSJMP$END評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。5、內部RAM40H和41H單元中存放著2個0-9的ASCII碼(高位字節(jié)在前),請將其轉換為壓縮 BCD碼(高 位在前)并存入外部 RAM 2000H單元中。解:ORG0HLJMP STARTORG 30HSTART MOV A, 40HANL A,#0FHSWAP AMOV RO,
8、 AMOV A,41HANLA, #0FHORLA, ROEND評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。9、兩個8字節(jié)壓縮BCD碼分別存放在內部RAM 30H和40H開始的連續(xù)單元中(低位字節(jié)在前),請將二者求和(不考慮溢出情況),并將和存入外部 RAM 1 0 0 0 H開始的單元中解:ORG0MOVRO,#3OHMOVRI,#40HMOVDPTR,#1000HMOVR2,#8CLRCLOOP:MOVA, R0ADDCA, R1DAAMOVXDPTR,AINCROINCR1I
9、NCDPTRDJNZR2, LOOPSJMP$END評分辦法:程序設計思路正確可得5 分;對于僅寫出部分指令的學生可酌情給14 分;程序編制正確可得滿分,若存在少量錯誤,可酌情扣1-3分。10、將存放在內部RAM 20H-2FH單元的十六進制數轉換成 ASCII碼,依次存放到外部 RAM 2000H開 始的單元中。解:MOVRO, #20HMOVR2, #16MOVDPTR,#2000HMOVR3, DPHMOVR4, DPLLOOP:MOVA, R0ANLA, #OFHMOVDPTR,#TABMOVCA, A+DPTRMOVDPH, R3MOVDPL, R4STARTMOVRO, #30HM
10、OVRl, #38HMOVDPTR,#1000HMOVR2, #08MOVA, R0ADDA, R1DAAMOVX DPTR, AINCROINCR1INCDPTRDJNZR2, LOOPSJMP$ENDORG 30HLOOP評分辦法:不要求寫岀程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。8、請編寫多字節(jié)無符號數加法程序。被加數存放在內部RAM 20H開始的8個單元中,加數存放在內部RAM30H開始的8個單元,請將和存放到外部 RAM 2000H開始的8個單元中,進位存放到 F0標志中。 注意:所有數
11、 據均按照從低字節(jié)到高字節(jié)的順序存放。DJNZR2, LOOPORG0LJMPSTARTORG30HSTART MOV RO,#20HMOVRl,#30HMOVDPTR, #2000HMOVR2,#08HCLRCLOOP MOVA, R0ADDC A, R1MOVXDPTR,AINCROINCR1INCDPTRDJNZR2, LOOPMOVFO,C評分辦法:程序設計思路正確可得5分;對于僅寫出部分指令的學生可酌情給14分;程序編制正 確可得滿分,若存在少量錯誤,可酌情扣1-3分。12、請編寫多字節(jié)無符號數減法程序。被減數存放在內部RAM30H開始的8個單元中,減數存放在 內部RAM38H開始的
12、8個單元,請將差存放到外部 RAM 1000H開始的8個單元中,借位存放到 F0標志中。 注意:所有數 據均按照從低字節(jié)到高字節(jié)的順序存放。解:ORG0LJMPSTARTORG30HSTART:MOVRO, #30HMOVR1,#38HMOVDPTR,MOVttlO°°l#8CLRCLOOP:MOVA, R0SUBBA, R1MOVXDPTR, AINCROINCR1INCDPTRDJNZR2,LOOPMOVC, FOSJMP$評分辦法:程序設計思路正確可得5分;對于僅寫出部分指令的學生可酌情給1 4分;程序編制正 確可得滿分,若存在少量錯誤,可酌情扣1-3分。13、請編寫
13、多字節(jié)無符號數減法程序。被減數存放在內部RAM 20H開始的16個單元中,減數存放在內部RAM 30H開始的16個單元,請將差存放到外部 RAM 2000H開始的16個單元中,借位存放到0V標志 中。注意:所有數據均按照從低字節(jié)到高字節(jié)的順序存放。解:ADDR1EQU20HADDR2EQU30HLENEQU16ADDR3EQU2000HORG0LJMPSTARTTAB:MOVXDPTR, AINCDPTRMOVR3, DPHMOVR4, DPLMOVA, R0SWAPAANLA, #OFHMOVDPTR, #TABMOVCA, A+DPTRMOVDPH, R3MOVDPL, R4MOVXDPT
14、R, AINCDPTRMOVR3, DPHMOVR4,DPLINCRODJNZR2,LOOPSJAIP$DB'0123456789ABCDEF'END1 4分;程序編制正確可評分辦法:程序設計思路正確可得5分;對于僅寫出部分指令的學生可酌情給得滿分,若存在少量錯誤,可酌情扣1-3分。11、內部RAM30H和外部RAM2200H開始的單元分別存放著兩個 8字節(jié)十六進制數(低位字節(jié)存 放在前), 請將二者相加(不考慮溢出情況),并將和存入內部RAM 40H開始的單元中。解:ORG0MOVRO, #30HMOVRl,#40HMOVDPTR, W2200HMOVR2,#8CLRCLOO
15、P:MOVX A, DPTRADDCA, R0MOVR1,AINCROINCR1NCDPTRMOV A, ROANL A, #OFHORL A, #30H (或 ADD A, #30H)MOVX DPTR, AINC DPTRINC RODJNZ R2,LOOPSJMP $END評分辦法:程序設計思路正確可得5分,指令完全寫對可得10分。不要求使用偽指令。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。15、將存放在內部RAM 30H-35H單元的十六進制數轉換成相應的ASCII碼,依次存放到外部 RAM 1100H開始的單元區(qū)中。(注:每個字節(jié)轉換時先轉換高四位)解
16、:ORG0MOVRO, #30HMOVDPTR,#1100HMOVR2, #6LOOP:MOVA, R0取需要轉換的數ANLA,#OFOH屏蔽低4位SWAPAPUSHDPHPUSHDPL保護目的地址MOVDPTR,#TABMOVCA,A+DPTR查表得ASCU碼POPDPLPOPDPH恢復目的地址MOVXDPTR, A存轉換后的ASCII碼INCDPTR修改目的地址指針MOVA, R0取需要轉換的數ANLA, #OFH屏蔽高4位PUSHDPHPUSHDPL保護目的地址MOVDPTR,#TABMOVCA,A+DPTR查表得ASCU碼POPDPLPOPDPH恢復目的地址ORG30HSTART:MO
17、VRO, #ADDR1MOVRl, #ADDR2MOVDPTR,#ADDR3MOVR2, #LENCLRCLOOP:MOVA, R0SUBBA, R1MOVX?DPTR, AINCROINCR1INCDPTRDJNZR2, LOOPMOVOV,CSJMP$END評分辦法:程序設計思路正確可得5分,指令完全寫對可得10分。不要求使用偽指令。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。14、將存放在內部RAM 20H-3FH單元的壓縮BCD碼轉換成ASCII碼,依次存放到外部 RAM 2300H開始的單元中。(注:每個單元均先轉換高四位)解:LENEQU20HADDR
18、1EQU20HADDR2EQU2300HORG0LJMPSTARTORG30HSTART:MOVRO,#ADDR1MOVDPTR, #ADDR2MOVR2,#LENLOOP:MOVA, R0ANLA,#0F0HSWAPAORLA, #30H (或 ADD A, #30H)MOVXDPTR, AINCDPTR解:參考程序清單如下:ORG0MOVR2, #16;數組長度為16個字節(jié)MOVR3, #02H;數組1的首地址高8位MOVR4, #03H;數組2的首地址高8位MOVR5, #04H;和數組的首地址高8位MOVDPL, #0;數據指針低8位清零LOOP:MOVDPH, R3MOVXA,DPT
19、R;取被加數MOVR1,A;存被加數MOVDPH, R4MOVXA, DPTR;取加數ADDA, R1;求和MOVDPH, R5MOVX?DPTR, A;存和INCDPL;指向下一字節(jié)DJNZR2,LOOP;未加完則循環(huán)END評分辦法:程序設計思路正確可得 5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。18、編程求內部RAM中 40H-4FH共16個單元中的內容的和(結果為 2字節(jié)),并將和放入 50H和51H單元 中(高8位在50H)o解:參考程序清單如下:ORGLJMPORG0START30HSTARTMOVRO, #40H數據區(qū)首
20、地址送ROMOVR2,#16單元數送R2MOVR3,#0和的高8位清零CLRA和的低8位清零LOOPCLRCADDA, R0求和JNCNEXT沒有進位則轉移INCR3和的高8位存儲單元內容加1NEXT:INCRO指向下一個單元DJNZR2,LOOP沒加完則循環(huán),和在 R3和A中M0VX DPTR, AINCDPTRINCRO;修改目的地址指針;修改源地址指針DJNZ R2, LOOP;未轉換完則繼續(xù)SJMP $TAB: DB'0123456789ABCDEF'END評分辦法:程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯
21、,可酌情扣1-3分。位在前)BCD碼(高16、內部RAM 30H開始的單元中存放著16個0-9的ASCII碼(高位字節(jié)在前),請將其轉換為壓縮并存入外部 RAM 1000 H 開始的單元中解:ORG 0MOV RO, #30HMOV DPTR, ttlOOOHMOVR2,#8;16個ASCII碼轉換為8個壓縮BCD碼LOOP:MOVA, R0ANLA, #0FH;屏蔽高4位得到BCD碼SWAPAMOVR1,AINCRO;指向下一個ASCII碼MOVA, R0ANLA, #OFH ;屏蔽高4位得到BCD碼ORLA,R1 ;合成壓縮BCD碼MOVX?DPTR,A ;存壓縮BCD碼INCDPTRIN
22、CRODJNZR2,LOOPSJMP$END評分辦法:程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。17、設有兩個長度為16字節(jié)的數組,分別存放在外部RAM 0200H和0300H為首址的存儲區(qū)域中,試編寫程序求其對應項之和(不考慮溢出的情況),結果存放在以0400H為首址的外部RAM中°LOOP:ORG0MOVRO, #37HMOVRl, #47HMOVR2, #8CLRCMOVA, R0SUBBA, R1MOVRO,ADECRODECR1DJNZR2,LOOPMOVFO,CSJA|P$END1-3評分辦
23、法:程序設計思路正確可得 5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給分;若僅有少量指令寫錯,可酌情扣1-3分21、若外部RAM 的(3000H) =X,(3001H)二Y,編程實現Z=X*X+2Y,并將結果存到片內RAM的40H單元(設 Z<256) o解:XEQU3000HYEQU3001HZEQU40HORG0MOVDPTR, #X:變量X的地址送 DPTRMOVXA,DPTR;取變量XMOVB,A;變量X的值送給B寄存器MULAB;求X*X,根據題意知積為1字節(jié)(在A中)MOVRO, A:X*X的結果存入R0中INCDPTR;指向變量YMOVXA,DPTR;取變量YM
24、OVB, #2MULAB;求2*Y,根據題意知積為1字節(jié)(在A中)ADDA, RO;求 X*X+2*YMOVZ,A:和存入4011單元SJMP$;停機END評分辦法:不要求寫出程序的注釋和使用偽指令。程序設計思路正確可得5分,指令完全寫對可得MOV 51H,A;存低8位結果MOV 50H, R3SJMP $END;存高8位結果評分辦法:程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分19、有一個長度為16字節(jié)的ASCII碼字符串存放在外部 RAM 1000H為首址的存儲區(qū)域中,字符串中 的每一 個字符均不相同,試編寫程序
25、查找字符串中是否存在ASCII碼"9 ”。如果在字符串中存在 ASCII碼“9”,則將其存儲單元的地址存放到內部 RAM 30H和31H單元中(高8位地址在30H單元中),同時將 0V標志位清零。否則,將30H和31H單元的內容清零,并將 0V標志位置“1”。解:ORG0MOVSP,#60HMOVDPTR, #1000HLOOP: MOVXCJNEMOVMOVCLRSJMPEXIT: INCDJNZMOVA, ?DPTRA, #39H, ex35h, DPH31H, DPLOV$DPTRR2, LOOP 30H,#0MOVR2,#16MOV 31H, #0SETBOVSJMP$END
26、1-3 分;評分辦法:程序設計思路正確可得 5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給若僅有少量指令寫錯,可酌情扣1-3分20、有兩個8字節(jié)的16進制數a和b,它們分別存放在內部 RAM中 30H-37H和40H-47H的單元中 (高位字節(jié) 在前)。請編程求a-b,并將差存入30H開始的內部RAM單元中(高位字節(jié)在前)。若差小于零則將F0標志位置“1 ”,否則清零。解:設計思路:從16進制數的最低位字節(jié) (37H和47H)開始相應字節(jié)帶借位相減,然后修改地址 指針 在對次低位字節(jié)進行相減,一共循環(huán) 8次完成兩個8字節(jié)16進制數的相減。最后將 Cy標志的內容傳 送給F0標 志位即可
27、。MULAB;計算2XADDA, ZLMOVZL, A;存結果低8位MOVA,B;取乘積高8位ADDA, ZHMOVZH, A;存結果高8位INCDPTR;指向丫MOVXA, DPTR;取丫MOVB,AMULAB;計算Y*YADDA, ZL;計算結果低8位MOVZL, AMOVA,B;取乘積的高8位ADDCA, ZH;計算結果高8位,注意必須帶進位加MOVZH, AMOVA, ZLADDA, #5;計算結果加5MOVZL, AMOVZH, A;存結果低8位ADDCA, #0;將低8位進位加到結果高8位,注意必須帶進位加MOVZH, A;存結果高8位END評分辦法:不要求寫出程序的注釋和使用偽指
28、令。程序設計思路正確可得5分,指令完全寫對可得 10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。24、設外部RAM 1000H單元為數據塊的起始地址,數據塊長度為60字節(jié),試編程求數據塊中所有數據的和,并將其存入內部 RAM 30H和31H單元(30H單元存放和的低8位,31H單元存放和的高8位)。解:ADDREQU100HH;數據塊首地址LENEQU60;數據塊長度ZHEQU31H;和的高8位地址ZLEQU30H;和的低8位地址ORG0MOVDPTR, #ADDR ;數據塊首地址送 DPTRMOVR7, #LEN;數據塊長度送 R7MOVZH, #0;結果單
29、元清零10分。若僅寫對少量指令,可酌情給 1-3分;若僅有少量指令寫錯,可酌情扣1-3分。22、設外部RAM 2000H單元為數據塊的起始地址,數據塊長度為10,試編程求數據塊中的最小值,存入內部RAM 30H單元。解:設計思路:將數據塊的第1個數據放入結果單元,然后依次與剩余的9個數據進行比較。如果新 的數據比結果單元中的數據還小則將該數據存入結果單元,9次比較完成則結果單元中的數據就是最小值。ORG0MOVDPTR, W2000HMOVXA,DPTR;取數據塊的第一個數MOV30H, A;存入結果單元MOVR2,#9;共比較9次INCDPTR;指向第2個數LOOP:CLRCMOVXA, ?
30、DPTRSUBBA, 30HJNCLP;沒有借位則說明結果單元的數小,不用更換最小值MOVXA, ?DPTRMOV30H, A;更換最小值LP:INCDPTR;指向下一個數DJNZR2,LOOP;沒有比較完則繼續(xù)循環(huán)SJMP$;停機END評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。23、若外部 RAM的(1000H) =X, (1001H) =Y ,請編程實現 Z=2X+Y*Y+5 (設Z<65536),并將結果保存 到片內 RAM 的30H和31H單元(31H單元存放結果的
31、高8位,30H單元存放結果的低8位。解:XEQU1000HZHEQU31HZLEQU30HORG0MOVZH, #0;結果單元清零MOVZL, #0MOVDPTR, ttlOOOHMOVXA, DPTR;取乂的值MOVB, #2MOVA,B;取乘積的高8位ADDCA, ZH;計算結果高8位,注意必須帶進位加MOVZH, AMOVA, ZLADDA, #18;計算結果加18MOVZL, A;存結果低8位MOVA, ZH;取結果高8位ADDCA,#0;將低8位進位加到結果高8位,注意必須帶進位加MOVZH, A;存結果高8位END評分辦法:不要求寫出程序的注釋和使用偽指令。程序設計思路正確可得5分
32、,指令完全寫對可得 10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。26、若外部RAM的(1000H)二X,請編程實現Y=X+2X+1 (設YV65536),并將結果保存到片內 RAM勺30H和31H單元(31H單元存放結果的高8位,30H單元存放結果的低8位)。解:ORG0MOVMOV30H,#031H,#0;結果單元清零MOVDPTR, #1000HMOVA, DPTR;取乂的值MOVB, AMULAB;求X的平方MOV30H,A;存低8位MOVA,BMOV31H,A;存高8位MOVXA, DPTR;取乂的值MOVB, #2MOVAB;求2 乂ADDA,
33、30H;求低8位和MOV30H,A;存和的低8位MOVA,B;取積的高8位ADDCA, 31H;求高8位和MOV31H,A;存和的高8位MOVA, 30HMOV ZL, #0LOOP: MOVXA,?DPTR取數據ADD A, ZL將數據加到結果單元的低 8位MOV ZL, A存結果低8位MOV A, ZH取結果高8位ADDC A, #0將低8位計算的進位加到高8位中MOV ZH, A存高8位INCDPTR修改地址指針,指向下一個數據DJNZ R7, LOOP沒有計算完則繼續(xù)SJMP $END評分辦法:不要求寫出程序的注釋和使用偽指令。程序設計思路正確可得5分,指令完全寫對可得 10分。若僅寫
34、對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。25、若外部 RAM的(1000H) =X,內部 RAM (30H) =Y,請編程實現 Z=X*X+3Y+18 (設 Z<65536),并每 結果保存 到片內RAM的40H和41H單元(41H單元存放結果的高8位,40H單元存放結果的低8位)。解:XEQU1000HYEQU30HZHEQU41HZLEQU40HORG0MOVZH, #0;結果單元清零MOVZL, #0MOVDPTR, #1000HMOVXA,DPTR;取乂的值MOVB,AMULAB;計算x*xADDA, ZLMOVZL, A;存結果低8位MOVA,B;取
35、乘積高8位ADDA, ZHMOVZH, A;存結果高8位MOVXA,Y;取丫MOVB, #3MULAB;計算3*YADDA, ZL;計算結果低8位MOVZL,AMOV30H, A;存和的低8位MOVA,BMOV31H, A;存和的高8位MOVDPTR, #1300HMOVXA,DPTR;AbMOVB,AMULAB;求質ADDA, 30H;求 a2+b2MOV30H, AMOVA,BADDCA,31HMOV31H, AMOVA, 30HADDA, #5;加5MOV30H, AMOVA, 31HADDCA, #0;加上低8位的進位MOV31H, ASJMP$;停機END評分辦法:不要求寫出程序的注
36、釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。29、若內部RAM勺(30H) =X, (31H) =Y,請編程實現Z=X+5Y (設Z<65536),并將結果保存到片外RAM勺1000H和1001H單元(1001H單元存放結果的高8位,1000H單元存放結果的低8位。解:ORG0MOVDPTR, #1000H;結果地址指針賦值MOVA, 30H;取乂MOVB, AMULAB;求般MOVXDPTR, A;存般低8位INCDPTR;指向結果單元高8位MOVA,BMOVXDPTR,A;存才高8位DECDPL;指向
37、結果單元低8位MOVA, 31H;取丫MOVB, #5ADDA, #1;加1MOV30H,A;存和的低8位MOVA, 31HADDCA, #0;和的高8位加上低8位運算的進位MOV31H,A;存和的高8位SJMP$;停機END評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。27、設外部RAM 2000H單元為數據塊的起始地址,數據塊長度為100字節(jié)。假設在數據塊中存在唯一的一個ASCII字符"A”,試編程找到它,并將其在外部(30H單元存放地址的高8 位, 解:RAM的存放地
38、址存入內部 31H單元存放地址的低8位。RAM 3 0H和31H單元中MOVDPTR, S2000H;數據塊首地址送DPTRMOVR2,#100;數據塊長度送R2LOOP MOVXA, ?DPTR;取數據CJNEA, #41H, NEXT;數據不是“A”則轉移MOVA, DPHMOV30H, A;存高8位地址MOVA,DPLMOV31H, A;存低8位地址SJMP$;停機NEXT: INCDPTR;修改地址指針DJNZR2,LOOP;沒有找到則繼續(xù)SJMP$;停機ORG0評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅
39、有少量指令寫錯,可酌情扣1-3分。28、若內部RAM的(20H) =a,外部RAM (1300H) =b,請編程實現y=a2+b2+5 (設y<65536),并將結果保存到片內RAM的30H和31H單元(31H單元存放結果的高解:8位,30H單元存放結果的低8位)ORG0MOVA, 20H航MOVB,AMULAB;求#DJNZ R2, LOOPSJMP $END;沒有加完則循環(huán);停機評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫 對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。31、若內部RAM的(20H) =a, (21H)
40、 =b,請編程實現y=a2+b2 (設y<65536),并將結果保存到片外RAM的2000H和0 0 1 H 單元(2001 H單元存放結果的高8位,2 0 0 0 H單元存放結果的低8位。解:ORG0MOVDPTR,#2000H;結果單元低8位地址送DPTRMOVA, 20HMa的值MOVB,AMULAB;求 a2MOVXDPTR, A;存事低8位MOVA,BINCDPTR;指向結果單元高8位MOVXDPTR, A;存結果高8位DECDPL;指向結果單元低8位MOVA,21H;取1A的值MOVB,AMULAB;求$MOVRO, A;暫存b2的低8位MOVXA,?DPTR;取結果低8位A
41、DDA, RO;求低8位的和MOVX?DPTR, A;存結果低8位INCDPTR;指向結果單元高8位MOVXA,?DPTR;取結果高8位ADDCA,B;加上b2的高8位和低8位求和的進位MOVX?DPTR, A;存結果高8位SJMP$;停機END評分辦法:不要求寫出程序的注釋,也不要求使用子程序。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫對少量指令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分32、將內部RAM40H為起始地址的32個連續(xù)單元中的十六進制數轉換成ASCII碼存入外部RAM3000H開始的存儲單元中。解:ORG0MOVRO, AMOVXA, DPTRADD
42、A, RO;求乂之+5 丫的低8位和MOVXDPTR,A;存乂之+5 丫的低8位和INCDPTR;指向結果單元高8位MOVXA, DPTR;取結果單元高8位ADDCA,B;求乂之+5 丫的高8位和(注意加上低8位的進MOVXDPTR,A位);存才+5 丫的高8位和SJMP$;停機ENDMUL AB;求5 丫對少量指32字節(jié)評分辦法:不要求寫出程序的注釋。程序設計思路正確可得5分,指令完全寫對可得10分。若僅寫令,可酌情給1-3分;若僅有少量指令寫錯,可酌情扣1-3分。30、設內部RAM 20H單元為數據塊的起始地址,數據塊長度為32字節(jié)。請將整個數據塊求和(共的數據求和,設和小于 65536)
43、,并把和存入外部RAM 1000H和1001H的單元中(和的高8位存入1001H 單元)。解:ORG0MOVRO, #20H數據塊首地址送ROMOVR2, #32數據塊長度送R2CLRA累加器清零MOVDPTR,#1000H指向和的低8位MOVXDPTR, A和的低8位清零INCDPTR指向和的高8位MOVX?DPTR, A和的高8位清零DECDPL指向和的低8位LOOP: MOVA, R0取數據MOVRl, A暫存在R1MOVXA, DPTR取和的低8位ADDA,R1求和MOVX?DPTR, A存和的低8位INCDPTR指向和的高8位MOVXA, DPTR取和的高8位ADDCA, #0將和的
44、低8位的進位加到高8位中MOVX?DPTR, A存和的高8位DECDPL指向和的低8位INCRO數據塊指針加1MOVRO,#2OH;數據區(qū)首地址送ROMOVR2,#10H;數據塊長度送R2MOV40H, #OFFH;結果單元送入最大值LOOP: MOVA, R0;取數據CLRC;清進位SUBBA, 40H;利用減法判斷該數據是否比最小值單元的數?。縅NCNEXT;如果沒有借位說明待比較數據比最小值單元的值大則轉移MOVA, R0;取最小值MOV40H, A;存最小值NEXT: INCRO;修改地址指針DJNZR2,LOOP;沒有比較完則繼續(xù)比較。SJMP$;停機END評分辦法:不要求寫出程序的
45、注釋。程序設計思路正確可得5分,指令完全寫對可得 10分。若僅寫 對少量指令,可酌情給1 - 3分;若僅有少量指令寫錯,可酌情扣1-3 分。34、比較兩個ASCII碼字符串是否相等。字符串長度在內部RAM 2FH單元,兩字符串的首地址分別為 30H、40Ho如果兩個字符串相等,置C:Y =1,否則,置CY =0。解:ORG0MOVRO, #30H;第一個字符串首地址送 ROMOVR1,#4OH;第一個字符串首地址送 R1MOVR2,2FH;取字符串長度LOOP: MOVA, R0;取第一個字符串的字符CLRCSUBBA, R1;比較兩個字符是否相等JNZSTOP;結果不為零說明兩個字符串不相等INCRO;修改地址指針I(yè)NCR1DJNZR2,LOOP;沒有比較完則繼續(xù)SETBC;比較完,置兩字符串相等標志SJMP$;停機STOP: CLRC;兩字符串不相等,清進位標志SJMP$;停機END評分辦法:不要求寫出程序的注釋。程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國海綿鉗行業(yè)市場現狀供需分析及投資評估規(guī)劃分析研究報告
- 2025年網絡分析儀項目立項申請報告
- 2025年航空障礙燈項目立項申請報告模板
- 2025年中國塊白灰市場調查研究報告
- 2025年智能家居生態(tài)鏈構建關鍵要素及用戶接受度調研報告
- 2025年山地生態(tài)修復項目生態(tài)系統(tǒng)服務功能評估報告:四川大熊貓棲息地研究
- 2025年文化產業(yè)專項資金申請項目元宇宙技術應用報告
- 互聯網醫(yī)療平臺2025年在線問診平臺與患者健康促進效果評價報告
- 2025年食品行業(yè)食品安全追溯體系在食品安全追溯服務模式中的應用報告
- 2025年金融科技投資策略報告:金融科技企業(yè)的投資策略與市場分析
- 2型糖尿病中西醫(yī)結合診療指南(2025年)解讀課件
- 浙江大學專職輔導員招聘真題2024
- 2022萬能試驗機驗收規(guī)范
- 西部計劃考試考題及答案
- 《低鉀血癥病人護理》課件
- 消防水池防水合同
- 2025年供港活牛供宰與屠宰設備采購合同
- 2024綠城地產代建項目合作協議范本9篇
- 2024上海市招聘社區(qū)工作者考試題及參考答案
- 企業(yè)貸款知識培訓
- 教科版三年級下冊科學全冊同步練習(一課一練)
評論
0/150
提交評論