《單片機(jī)》編程題題庫答案.doc_第1頁
《單片機(jī)》編程題題庫答案.doc_第2頁
《單片機(jī)》編程題題庫答案.doc_第3頁
《單片機(jī)》編程題題庫答案.doc_第4頁
《單片機(jī)》編程題題庫答案.doc_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

單片機(jī)原理及應(yīng)用編程題題庫參考答案六、編程(每題10分)1、 內(nèi)部RAM 30H和31H單元中存放著2個(gè)0-9的ASCII碼(高位字節(jié)在前),請(qǐng)將其轉(zhuǎn)換為壓縮BCD碼(高位在前)并存入外部RAM 2300H單元中。解: ORG 0H LJMP START ORG 30HSTART: MOV A,30H ANL A,#0FH SWAP A MOV R0,A MOV A,31H ANL A,#0FH ORL A,R0 MOV DPTR,#2300H MOVX DPTR,A END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。2、將存放在內(nèi)部RAM 30H-35H單元的壓縮型BCD碼轉(zhuǎn)換成相應(yīng)的ASCII碼,依次存放到外部RAM 2100H開始的單元區(qū)中。 ORG 0H LJMP START ORG 30H START:MOV R0,#30H MOV R2,#06H MOV DPTR,#2100H LOOP:MOV A,R0 SWAP A ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。3、內(nèi)部RAM 20H和30H開始的單元分別存放著16個(gè)16進(jìn)制數(shù),請(qǐng)將對(duì)應(yīng)單元的內(nèi)容相加(不考慮溢出),并將和存入外部RAM 2000H開始的單元中。解: ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R2,#08H ;每個(gè)單元存放2個(gè)16進(jìn)制數(shù),故16個(gè)16進(jìn)制數(shù)占用8個(gè)單元 LOOP: MOV A,R0 ADD A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 4、請(qǐng)編寫多字節(jié)無符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部RAM 20H開始的8個(gè)單元中,減數(shù)存放在內(nèi)部RAM 30H開始的8個(gè)單元,請(qǐng)將差存放到外部RAM 2000H開始的8個(gè)單元中,借位存放到OV標(biāo)志中。注意:所有數(shù)據(jù)均按照從低字節(jié)到高字節(jié)的順序存放。 ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R2,#08HCLR C LOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV OV,C SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。5、內(nèi)部RAM 40H和41H單元中存放著2個(gè)0-9的ASCII碼(高位字節(jié)在前),請(qǐng)將其轉(zhuǎn)換為壓縮BCD碼(高位在前)并存入外部RAM 2000H單元中。解: ORG 0H LJMP START ORG 30HSTART: MOV A,40H ANL A,#0FH SWAP A MOV R0,A MOV A,41H ANL A,#0FH ORL A,R0 MOV DPTR,#2000H MOVX DPTR,A END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。6、將存放在內(nèi)部RAM 20H-2FH單元的壓縮型BCD碼(高位在前)轉(zhuǎn)換成相應(yīng)的ASCII碼,依次存放到外部RAM 1000H開始的單元區(qū)中。 ORG 0H LJMP START ORG 30H START: MOV R0,#20H MOV R2,#10H MOV DPTR,#1000H LOOP: MOV A,R0 SWAP A ANL A,#0FH ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。7、內(nèi)部RAM 30H和38H開始的單元分別存放著8個(gè)壓縮BCD碼,請(qǐng)將對(duì)應(yīng)單元的內(nèi)容相加(不考慮溢出),并將和存入外部RAM 1000H開始的單元中。解: ORG 0 LJMP START ORG 30H START: MOV R0,#30H MOV R1,#38H MOV DPTR,#1000H MOV R2,#08 LOOP: MOV A,R0 ADD A,R1 DA A MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。8、請(qǐng)編寫多字節(jié)無符號(hào)數(shù)加法程序。被加數(shù)存放在內(nèi)部RAM 20H開始的8個(gè)單元中,加數(shù)存放在內(nèi)部RAM 30H開始的8個(gè)單元,請(qǐng)將和存放到外部RAM 2000H開始的8個(gè)單元中,進(jìn)位存放到F0標(biāo)志中。注意:所有數(shù)據(jù)均按照從低字節(jié)到高字節(jié)的順序存放。 ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R2,#08HCLR C LOOP: MOV A,R0 ADDC A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV F0,C SJMP $ END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。9、兩個(gè)8字節(jié)壓縮BCD碼分別存放在內(nèi)部RAM 30H和40H開始的連續(xù)單元中(低位字節(jié)在前),請(qǐng)將二者求和(不考慮溢出情況),并將和存入外部RAM 1000H開始的單元中。 解: ORG 0MOV R0,#30H MOV R1,#40H MOV DPTR,#1000H MOV R2,#8 CLR C LOOP: MOV A,R0 ADDC A,R1 DA A MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。10、將存放在內(nèi)部RAM 20H-2FH單元的十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼,依次存放到外部RAM 2000H開始的單元中。解: MOV R0,#20H MOV R2,#16 MOV DPTR,#2000H MOV R3, DPH MOV R4, DPL LOOP: MOV A,R0 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV DPH,R3 MOV DPL,R4 MOVX DPTR,A INC DPTR MOV R3,DPH MOV R4,DPL MOV A,R0 SWAP A ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV DPH,R3 MOV DPL,R4 MOVX DPTR,A INC DPTR MOV R3,DPH MOV R4,DPL INC R0 DJNZ R2,LOOP SJMP $ TAB: DB 0123456789ABCDEF END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。11、內(nèi)部RAM 30H和外部RAM 2200H開始的單元分別存放著兩個(gè)8字節(jié)十六進(jìn)制數(shù)(低位字節(jié)存放在前),請(qǐng)將二者相加(不考慮溢出情況),并將和存入內(nèi)部RAM 40H開始的單元中。解: ORG 0MOV R0,#30H MOV R1,#40H MOV DPTR,#2200H MOV R2,#8 CLR C LOOP: MOVX A,DPTR ADDC A,R0 MOV R1,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。12、請(qǐng)編寫多字節(jié)無符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部RAM 30H開始的8個(gè)單元中,減數(shù)存放在內(nèi)部RAM 38H開始的8個(gè)單元,請(qǐng)將差存放到外部RAM 1000H開始的8個(gè)單元中,借位存放到F0標(biāo)志中。注意:所有數(shù)據(jù)均按照從低字節(jié)到高字節(jié)的順序存放。解: ORG 0 LJMP START ORG 30HSTART: MOV R0,#30H MOV R1,#38H MOV DPTR,#1000H MOV R2,#8 CLR CLOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV C,F0 SJMP $評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。 13、請(qǐng)編寫多字節(jié)無符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部RAM 20H開始的16個(gè)單元中,減數(shù)存放在內(nèi)部RAM 30H開始的16個(gè)單元,請(qǐng)將差存放到外部RAM 2000H開始的16個(gè)單元中,借位存放到OV標(biāo)志中。注意:所有數(shù)據(jù)均按照從低字節(jié)到高字節(jié)的順序存放。解: ADDR1 EQU 20H ADDR2 EQU 30H LEN EQU 16 ADDR3 EQU 2000H ORG 0 LJMP START ORG 30H START: MOV R0,#ADDR1 MOV R1,#ADDR2 MOV DPTR,#ADDR3 MOV R2,#LEN CLR C LOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV OV,C SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。不要求使用偽指令。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 14、將存放在內(nèi)部RAM 20H-3FH單元的壓縮BCD碼轉(zhuǎn)換成ASCII碼,依次存放到外部RAM 2300H開始的單元中。(注:每個(gè)單元均先轉(zhuǎn)換高四位)解: LEN EQU 20H ADDR1 EQU 20H ADDR2 EQU 2300H ORG 0 LJMP START ORG 30H START: MOV R0,#ADDR1 MOV DPTR,#ADDR2 MOV R2,#LEN LOOP: MOV A,R0 ANL A,#0F0H SWAP A ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。不要求使用偽指令。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 15、將存放在內(nèi)部RAM 30H-35H單元的十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ASCII碼,依次存放到外部RAM 1100H開始的單元區(qū)中。(注:每個(gè)字節(jié)轉(zhuǎn)換時(shí)先轉(zhuǎn)換高四位)解: ORG 0 MOV R0,#30H MOV DPTR,#1100H MOV R2,#6LOOP: MOV A,R0 ; 取需要轉(zhuǎn)換的數(shù) ANL A,#0F0H ; 屏蔽低4位 SWAP A PUSH DPH PUSH DPL ; 保護(hù)目的地址 MOV DPTR,#TAB MOVC A,A+DPTR ; 查表得ASCII碼 POP DPL POP DPH ; 恢復(fù)目的地址 MOVX DPTR,A ; 存轉(zhuǎn)換后的ASCII碼 INC DPTR ; 修改目的地址指針 MOV A,R0 ; 取需要轉(zhuǎn)換的數(shù) ANL A,#0FH ; 屏蔽高4位 PUSH DPH PUSH DPL ; 保護(hù)目的地址 MOV DPTR,#TAB MOVC A,A+DPTR ; 查表得ASCII碼 POP DPL POP DPH ; 恢復(fù)目的地址 MOVX DPTR,A INC DPTR ; 修改目的地址指針 INC R0 ; 修改源地址指針 DJNZ R2,LOOP ; 未轉(zhuǎn)換完則繼續(xù) SJMP $TAB: DB 0123456789ABCDEF END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 16、內(nèi)部RAM 30H開始的單元中存放著16個(gè)0-9的ASCII碼(高位字節(jié)在前),請(qǐng)將其轉(zhuǎn)換為壓縮BCD碼(高位在前)并存入外部RAM 1000H開始的單元中。解: ORG 0 MOV R0,#30H MOV DPTR,#1000H MOV R2,#8 ; 16個(gè)ASCII碼轉(zhuǎn)換為8個(gè)壓縮BCD碼LOOP: MOV A,R0 ANL A,#0FH ; 屏蔽高4位得到BCD碼 SWAP A MOV R1,A INC R0 ; 指向下一個(gè)ASCII碼 MOV A,R0 ANL A,#0FH ; 屏蔽高4位得到BCD碼 ORL A,R1 ; 合成壓縮BCD碼 MOVX DPTR,A ; 存壓縮BCD碼 INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。17、設(shè)有兩個(gè)長度為16字節(jié)的數(shù)組,分別存放在外部RAM 0200H和0300H為首址的存儲(chǔ)區(qū)域中,試編寫程序求其對(duì)應(yīng)項(xiàng)之和(不考慮溢出的情況),結(jié)果存放在以0400H為首址的外部RAM中。解: 參考程序清單如下: ORG 0 MOV R2,#16 ; 數(shù)組長度為16個(gè)字節(jié) MOV R3,#02H ; 數(shù)組1的首地址高8位 MOV R4,#03H ; 數(shù)組2的首地址高8位 MOV R5,#04H ; 和數(shù)組的首地址高8位 MOV DPL,#0 ; 數(shù)據(jù)指針低8位清零LOOP: MOV DPH,R3 MOVX A,DPTR ; 取被加數(shù) MOV R1,A ; 存被加數(shù) MOV DPH,R4 MOVX A,DPTR ; 取加數(shù) ADD A,R1 ; 求和 MOV DPH,R5 MOVX DPTR,A ; 存和 INC DPL ; 指向下一字節(jié) DJNZ R2,LOOP ; 未加完則循環(huán) END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 18、編程求內(nèi)部RAM中40H4FH共16個(gè)單元中的內(nèi)容的和(結(jié)果為2字節(jié)),并將和放入50H和51H單元中(高8位在50H)。解: 參考程序清單如下:ORG 0 LJMP START ORG 30H START: MOV R0,#40H ; 數(shù)據(jù)區(qū)首地址送R0 MOV R2,#16 ; 單元數(shù)送R2 MOV R3,#0 ; 和的高8位清零CLR A ; 和的低8位清零 LOOP: CLR CADD A,R0 ; 求和 JNC NEXT ; 沒有進(jìn)位則轉(zhuǎn)移 INC R3 ; 和的高8位存儲(chǔ)單元內(nèi)容加1 NEXT: INC R0 ; 指向下一個(gè)單元 DJNZ R2,LOOP ; 沒加完則循環(huán),和在R3和A中 MOV 51H,A ; 存低8位結(jié)果 MOV 50H,R3 ; 存高8位結(jié)果 SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 19、有一個(gè)長度為16字節(jié)的ASCII碼字符串存放在外部RAM 1000H為首址的存儲(chǔ)區(qū)域中,字符串中的每一個(gè)字符均不相同,試編寫程序查找字符串中是否存在ASCII碼“9”。如果在字符串中存在ASCII碼“9”,則將其存儲(chǔ)單元的地址存放到內(nèi)部RAM 30H和31H單元中(高8位地址在30H單元中),同時(shí)將OV標(biāo)志位清零。否則,將30H和31H單元的內(nèi)容清零,并將OV標(biāo)志位置“1”。 解: ORG 0 MOV SP,#60H MOV DPTR,#1000H MOV R2,#16 LOOP: MOVX A,DPTR CJNE A,#39H,EXIT MOV 30H,DPH MOV 31H,DPL CLR OV SJMP $ EXIT: INC DPTR DJNZ R2,LOOP MOV 30H,#0 MOV 31H,#0 SETB OV SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 20、有兩個(gè)8字節(jié)的16進(jìn)制數(shù)a和b,它們分別存放在內(nèi)部RAM中30H37H和40H47H的單元中(高位字節(jié)在前)。請(qǐng)編程求a-b,并將差存入30H開始的內(nèi)部RAM單元中(高位字節(jié)在前)。若差小于零則將F0標(biāo)志位置“1”,否則清零。 解:設(shè)計(jì)思路:從16進(jìn)制數(shù)的最低位字節(jié)(37H和47H)開始相應(yīng)字節(jié)帶借位相減,然后修改地址指針在對(duì)次低位字節(jié)進(jìn)行相減,一共循環(huán)8次完成兩個(gè)8字節(jié)16進(jìn)制數(shù)的相減。最后將Cy標(biāo)志的內(nèi)容傳送給F0標(biāo)志位即可。 ORG 0 MOV R0,#37H MOV R1,#47H MOV R2,#8 CLR C LOOP: MOV A,R0 SUBB A,R1 MOV R0,A DEC R0 DEC R1 DJNZ R2,LOOP MOV F0,C SJMP $ END評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 21、若外部RAM的(3000H)=X,(3001H)=Y,編程實(shí)現(xiàn)Z=X*X+2Y,并將結(jié)果存到片內(nèi)RAM的40H單元(設(shè)Z256 )。解: X EQU 3000H Y EQU 3001H Z EQU 40H ORG 0 MOV DPTR,#X ; 變量X的地址送DPTR MOVX A,DPTR ; 取變量X MOV B,A ; 變量X的值送給B寄存器 MUL AB ; 求X*X,根據(jù)題意知積為1字節(jié)(在A中) MOV R0,A ; X*X的結(jié)果存入R0中 INC DPTR ; 指向變量Y MOVX A,DPTR ; 取變量Y MOV B,#2 MUL AB ; 求2*Y,根據(jù)題意知積為1字節(jié)(在A中) ADD A,R0 ; 求X*X+2*Y MOV Z,A ; 和存入40H單元 SJMP $ ; 停機(jī) END評(píng)分辦法:不要求寫出程序的注釋和使用偽指令。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。22、設(shè)外部RAM 2000H單元為數(shù)據(jù)塊的起始地址,數(shù)據(jù)塊長度為10,試編程求數(shù)據(jù)塊中的最小值,存入內(nèi)部RAM 30H單元。解:設(shè)計(jì)思路:將數(shù)據(jù)塊的第1個(gè)數(shù)據(jù)放入結(jié)果單元,然后依次與剩余的9個(gè)數(shù)據(jù)進(jìn)行比較。如果新的數(shù)據(jù)比結(jié)果單元中的數(shù)據(jù)還小則將該數(shù)據(jù)存入結(jié)果單元,9次比較完成則結(jié)果單元中的數(shù)據(jù)就是最小值。 ORG 0 MOV DPTR,#2000H MOVX A,DPTR ;取數(shù)據(jù)塊的第一個(gè)數(shù) MOV 30H,A ;存入結(jié)果單元 MOV R2,#9 ; 共比較9次 INC DPTR ;指向第2個(gè)數(shù) LOOP: CLR C MOVX A,DPTR SUBB A,30H JNC LP ; 沒有借位則說明結(jié)果單元的數(shù)小,不用更換最小值 MOVX A,DPTR MOV 30H,A ; 更換最小值 LP: INC DPTR ; 指向下一個(gè)數(shù) DJNZ R2,LOOP ; 沒有比較完則繼續(xù)循環(huán) SJMP $ ; 停機(jī) END評(píng)分辦法:不要求寫出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。23、若外部RAM的(1000H)=X,(1001H)=Y,請(qǐng)編程實(shí)現(xiàn)Z=2X+Y*Y+5(設(shè)Z65536),并將結(jié)果保存到片內(nèi)RAM的30H和31H單元(31H單元存放結(jié)果的高8位,30H單元存放結(jié)果的低8位)。解: X EQU 1000H ZH EQU 31H ZL EQU 30H ORG 0 MOV ZH,#0 ;結(jié)果單元清零 MOV ZL,#0 MOV DPTR,#1000H MOVX A,DPTR ;取X的值 MOV B,#2 MUL AB ;計(jì)算2X ADD A,ZL MOV ZL,A ;存結(jié)果低8位 MOV A,B ;取乘積高8位 ADD A,ZH MOV ZH,A ;存結(jié)果高8位 INC DPTR ;指向Y MOVX A,DPTR ;取Y MOV B,A MUL AB ;計(jì)算Y*Y ADD A,ZL ;計(jì)算結(jié)果低8位 MOV ZL,A MOV A,B ;取乘積的高8位 ADDC A,ZH ;計(jì)算結(jié)果高8位,注意必須帶進(jìn)位加 MOV ZH,A MOV A,ZL ADD A,#5 ;計(jì)算結(jié)果加5 MOV ZL,A MOV ZH,A ;存結(jié)果低8位 ADDC A,#0 ;將低8位進(jìn)位加到結(jié)果高8位,注意必須帶進(jìn)位加 MOV ZH,A ;存結(jié)果高8位 END評(píng)分辦法:不要求寫出程序的注釋和使用偽指令。程序設(shè)計(jì)思路正確可得5分,指令完全寫對(duì)可得10分。若僅寫對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫錯(cuò),可酌情扣1-3分。 24、設(shè)外部RAM 1000H單元為數(shù)據(jù)塊的起始地址,數(shù)據(jù)塊長度為60字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論