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

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理及應(yīng)用編程題題庫(kù)參考答案六、編程(每題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)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若

2、僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。2、將存放在內(nèi)部ram 30h-35h單元的壓縮型bcd碼轉(zhuǎn)換成相應(yīng)的ascii碼,依次存放到外部ram 2100h開(kāi)始的單元區(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 $

3、end評(píng)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。3、內(nèi)部ram 20h和30h開(kāi)始的單元分別存放著16個(gè)16進(jìn)制數(shù),請(qǐng)將對(duì)應(yīng)單元的內(nèi)容相加(不考慮溢出),并將和存入外部ram 2000h開(kāi)始的單元中。解: 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 m

4、ovx dptr,a inc r0 inc r1 inc dptr djnz r2,loop sjmp $ end評(píng)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 4、請(qǐng)編寫(xiě)多字節(jié)無(wú)符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部ram 20h開(kāi)始的8個(gè)單元中,減數(shù)存放在內(nèi)部ram 30h開(kāi)始的8個(gè)單元,請(qǐng)將差存放到外部ram 2000h開(kāi)始的8個(gè)單元中,借位存放到ov標(biāo)志中。注意:所有數(shù)據(jù)均按照從低字節(jié)到高字節(jié)的順序存放。 org 0 ljmp start org 30h start: mov r0,

5、#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)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。5、內(nèi)部ram 40h和41h單元中存放著2個(gè)0-9的ascii碼(高位字節(jié)在前),請(qǐng)將其轉(zhuǎn)換為壓縮bcd碼(高位在前)并存入外部ram 2000h單元中。解:

6、 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)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。6、將存放在內(nèi)部ram 20h-2fh單元的壓縮型bcd碼(高位在前)轉(zhuǎn)換成相應(yīng)的ascii碼,依次存放到外部ram 1000h開(kāi)始的單元區(qū)中。 org 0h ljmp start

7、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)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò)

8、,可酌情扣1-3分。7、內(nèi)部ram 30h和38h開(kāi)始的單元分別存放著8個(gè)壓縮bcd碼,請(qǐng)將對(duì)應(yīng)單元的內(nèi)容相加(不考慮溢出),并將和存入外部ram 1000h開(kāi)始的單元中。解: 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)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。

9、若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。8、請(qǐng)編寫(xiě)多字節(jié)無(wú)符號(hào)數(shù)加法程序。被加數(shù)存放在內(nèi)部ram 20h開(kāi)始的8個(gè)單元中,加數(shù)存放在內(nèi)部ram 30h開(kāi)始的8個(gè)單元,請(qǐng)將和存放到外部ram 2000h開(kāi)始的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 r

10、1 inc dptr djnz r2,loop mov f0,c sjmp $ end評(píng)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。9、兩個(gè)8字節(jié)壓縮bcd碼分別存放在內(nèi)部ram 30h和40h開(kāi)始的連續(xù)單元中(低位字節(jié)在前),請(qǐng)將二者求和(不考慮溢出情況),并將和存入外部ram 1000h開(kāi)始的單元中。 解: org 0mov r0,#30h mov r1,#40h mov dptr,#1000h mov r2,#8 clr c loop: mov a,r0 addc a,r1 da

11、 a movx dptr,a inc r0 inc r1 inc dptr djnz r2,loop sjmp $ end評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫(xiě)出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。10、將存放在內(nèi)部ram 20h-2fh單元的十六進(jìn)制數(shù)轉(zhuǎn)換成ascii碼,依次存放到外部ram 2000h開(kāi)始的單元中。解: 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

12、,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ì)于僅寫(xiě)出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在

13、少量錯(cuò)誤,可酌情扣1-3分。11、內(nèi)部ram 30h和外部ram 2200h開(kāi)始的單元分別存放著兩個(gè)8字節(jié)十六進(jìn)制數(shù)(低位字節(jié)存放在前),請(qǐng)將二者相加(不考慮溢出情況),并將和存入內(nèi)部ram 40h開(kāi)始的單元中。解: 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ì)于僅寫(xiě)出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存

14、在少量錯(cuò)誤,可酌情扣1-3分。12、請(qǐng)編寫(xiě)多字節(jié)無(wú)符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部ram 30h開(kāi)始的8個(gè)單元中,減數(shù)存放在內(nèi)部ram 38h開(kāi)始的8個(gè)單元,請(qǐng)將差存放到外部ram 1000h開(kāi)始的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,loo

15、p mov c,f0 sjmp $評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分;對(duì)于僅寫(xiě)出部分指令的學(xué)生可酌情給14分;程序編制正確可得滿分,若存在少量錯(cuò)誤,可酌情扣1-3分。 13、請(qǐng)編寫(xiě)多字節(jié)無(wú)符號(hào)數(shù)減法程序。被減數(shù)存放在內(nèi)部ram 20h開(kāi)始的16個(gè)單元中,減數(shù)存放在內(nèi)部ram 30h開(kāi)始的16個(gè)單元,請(qǐng)將差存放到外部ram 2000h開(kāi)始的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

16、: 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分,指令完全寫(xiě)對(duì)可得10分。不要求使用偽指令。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 14、將存放在內(nèi)部ram 20h-3fh單元的壓縮bcd碼轉(zhuǎn)換成ascii碼,依次存放到外部ram 2300h開(kāi)始的單元中。(注:每個(gè)

17、單元均先轉(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 sjm

18、p $ end評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。不要求使用偽指令。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 15、將存放在內(nèi)部ram 30h-35h單元的十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ascii碼,依次存放到外部ram 1100h開(kāi)始的單元區(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,

19、#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)換完

20、則繼續(xù) sjmp $tab: db 0123456789abcdef end評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 16、內(nèi)部ram 30h開(kāi)始的單元中存放著16個(gè)0-9的ascii碼(高位字節(jié)在前),請(qǐng)將其轉(zhuǎn)換為壓縮bcd碼(高位在前)并存入外部ram 1000h開(kāi)始的單元中。解: 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碼 swa

21、p 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分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。17、設(shè)有兩個(gè)長(zhǎng)度為16字節(jié)的數(shù)組,分別存放在外部ram 0200h和0300h為首址的存儲(chǔ)區(qū)域中,試編寫(xiě)程序求其對(duì)應(yīng)項(xiàng)之和(不考慮溢出的情況),結(jié)果存放在以0400h

22、為首址的外部ram中。解: 參考程序清單如下: org 0 mov r2,#16 ; 數(shù)組長(zhǎng)度為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,l

23、oop ; 未加完則循環(huán) end評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(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

24、next ; 沒(méi)有進(jìn)位則轉(zhuǎn)移 inc r3 ; 和的高8位存儲(chǔ)單元內(nèi)容加1 next: inc r0 ; 指向下一個(gè)單元 djnz r2,loop ; 沒(méi)加完則循環(huán),和在r3和a中 mov 51h,a ; 存低8位結(jié)果 mov 50h,r3 ; 存高8位結(jié)果 sjmp $ end評(píng)分辦法:程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 19、有一個(gè)長(zhǎng)度為16字節(jié)的ascii碼字符串存放在外部ram 1000h為首址的存儲(chǔ)區(qū)域中,字符串中的每一個(gè)字符均不相同,試編寫(xiě)程序查找字符串中是否存在ascii碼“9”。如果在字符

25、串中存在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ì)思

26、路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 20、有兩個(gè)8字節(jié)的16進(jìn)制數(shù)a和b,它們分別存放在內(nèi)部ram中30h37h和40h47h的單元中(高位字節(jié)在前)。請(qǐng)編程求a-b,并將差存入30h開(kāi)始的內(nèi)部ram單元中(高位字節(jié)在前)。若差小于零則將f0標(biāo)志位置“1”,否則清零。 解:設(shè)計(jì)思路:從16進(jìn)制數(shù)的最低位字節(jié)(37h和47h)開(kāi)始相應(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

27、 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分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(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 ; 變

28、量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)分辦法:不要求寫(xiě)出程序的注釋和使用偽指令。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若

29、僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。22、設(shè)外部ram 2000h單元為數(shù)據(jù)塊的起始地址,數(shù)據(jù)塊長(zhǎng)度為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

30、a,30h jnc lp ; 沒(méi)有借位則說(shuō)明結(jié)果單元的數(shù)小,不用更換最小值 movx a,dptr mov 30h,a ; 更換最小值 lp: inc dptr ; 指向下一個(gè)數(shù) djnz r2,loop ; 沒(méi)有比較完則繼續(xù)循環(huán) sjmp $ ; 停機(jī) end評(píng)分辦法:不要求寫(xiě)出程序的注釋。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。23、若外部ram的(1000h)=x,(1001h)=y,請(qǐng)編程實(shí)現(xiàn)z=2x+y*y+5(設(shè)z<65536),并將結(jié)果保存到片內(nèi)ram的30h和31h單元(31h單元存放結(jié)果

31、的高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)分辦法:不要求寫(xiě)出程序的注釋和使用偽指令。程序設(shè)計(jì)思路正確可得5分,指令完全寫(xiě)對(duì)可得10分。若僅寫(xiě)對(duì)少量指令,可酌情給1-3分;若僅有少量指令寫(xiě)錯(cuò),可酌情扣1-3分。 24、設(shè)外部ram 1000h單元為數(shù)據(jù)塊的起始地址,數(shù)據(jù)塊長(zhǎng)度為60字節(jié),試

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論