版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
四、程序分析及編程1.設(A)=04H,(CY)=1,寫出以下各條指令的結(jié)果。RLA;〔A〕=08HRRA;〔A〕=02HRLCA;〔A〕=09HRRCA;〔A〕=82H2.設(A)=7AH,(R0)=30H,(30H)=A5H,(CY)=1,寫出以下各條指令的結(jié)果。MOVA,R0(A)=30H(R0)=30HXCHA,R0(A)=30H(R0)=30HXCHDA,@R0(A)=A5H(R0)=30H(30H)=30HADDA,#30H(A)=D5H(CY)=1ADDCA,30H(A)=06H(CY)=1SUBBA,#30H(A)=D5H(CY)=13.以下程序段的功能是什么? PUSH A PUSH B POP A POP B答:交換A、B的內(nèi)容4.程序執(zhí)行前有A=02H,SP=52H,〔51H〕=FFH,(52H)=FFH。下述程序執(zhí)行后:請問:A=〔〕,SP=〔〕,〔51H〕=〔〕,〔52H〕=〔〕,PC=〔〕。 POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,@A+DPTR PUSH A MOV A,B INC A MOVC A,@A+DPTR PUSH A RET ORG 4000H DB 10H,80H,30H,50H,30H,50H 答:〔A〕=50H,〔SP〕=50H,(51H)=30H,(52H)=50H,〔PC〕=5030H5.假定A=83H,〔R0〕=17H,〔17H〕=34H,執(zhí)行以下指令后,A的內(nèi)容為〔〕。: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 答:0CBH6.如果DPTR=507BH,SP=32H,〔30H〕=50H,〔31H〕=5FH,〔32H〕=3CH,那么執(zhí)行以下指令后那么:DPH=〔〕,DPL=〔〕,SP=〔〕: POP DPH POP DPL POP SP 答:DPH=3CH,DPL=5FH,SP=4FH7.假定,SP=60H,A=30H,B=70H,執(zhí)行以下指令后,SP的內(nèi)容為〔〕,61H單元的內(nèi)容為〔〕,62H單元的內(nèi)容為〔〕。 PUSH A PUSH B 答:62H,30H,70H8.計算下面子程序中指令的偏移量和程序執(zhí)行的時間〔晶振頻率為12MHz〕。 MOV R3,#15H ;1個機器周期 DL1:MOV R4,#255 ;1個機器周期 DL2:MOV P1,R3 ;2個機器周期 DJNZ R4,DL2 ;2個機器周期 DJNZ R3,DL1 ;2個機器周期 RET ;2個機器周期答:15348us析:〔〔2+2〕×255+1+2〕×15+1+2=15348us9.假定A=83H,〔R0〕=17H,〔17H〕=34H,執(zhí)行以下指令后,A的內(nèi)容為〔〕。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 答:0CBH10.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,那么執(zhí)行以下指令后:DPH內(nèi)容為〔〕,DPL內(nèi)容為〔〕,SP內(nèi)容為〔〕。POP DPH;POP DPL;POP SP;答:(DPH)=3CH,〔DPL〕=5FH,〔SP〕=50H11.假設外部數(shù)據(jù)存儲器2000H單元的內(nèi)容為80H,執(zhí)行以下指令后,累加器A中的內(nèi)容為〔〕。 MOV P2,#20H MOV R0,#00H MOVX A,@R0答:累加器A中的內(nèi)容為〔80H〕12.閱讀以下程序段并答復以下問題。(1〕.該程序執(zhí)行何種操作?(2〕.初值〔60H〕=23H,〔61H〕=61H,運行程序后62H內(nèi)容〔〕CLRCMOVA,#9AHSUBBA,60HADDA,61HDAAMOV62H,A答:1〕、該程序是單字節(jié)BCD碼運算,是將〔61H〕—〔60H〕→62H2〕、〔62H〕=38H13.試編寫1個程序,將內(nèi)部RAM中45H單元的高4位清0,低4位置1。答:MOV A,45H ANL A,#0FH ORL A,#0FH MOV 45H,A14.試編寫程序,查找在內(nèi)部RAM的30H~50H單元中是否有0AAH這一數(shù)據(jù)。假設有,那么將51H單元置為“01H〞;假設未找到,那么將51H單元置為“00H〞。答:START: MOV R0,#30H MOV R2,#20H LOOP: MOV A,@R0 CJNE A,#0AAH,NEXT MOV 51H,#01H LJMP EXIT NEXT: INC R0 DJNZ R2,LOOP MOV 51H,#00H EXIT: RET15.編寫程序,要求使用T0,采用方式2定時,在P1.0輸出周期為400μs,占空比為10:1的矩形脈沖。解:根據(jù)題意,從P1.0輸出的矩形脈沖的上下電平的時間為10:1,那么上下電平的時間分別為363.63μs和36.37μs。如果系統(tǒng)采用6MHz晶振的話,,因此上下電平輸出取整,那么約為364μs和36μs。編寫程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: MOV TMOD,#02H ;定時器/計數(shù)器T0為定時方式2 MOV TL0,#4AH ;定時364μs初值賦值 SETB TR0 ;啟動T0,開始計數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷 SETB P1.0WAIT: AJMP WAITIT0P: CLR EACLR P1.0 ;關中斷 MOV R0,#9DLY: DJNZ R0,DLY ;延時26μs MOV TL0,#4AH ;定時364μs初值賦值 SETB P1.0 SETB EA RETI16.設在外部RAM中有三個連續(xù)單元2001H,2023H,2023H,其中2001H和2023H單元中分別存放兩個8位無符號二進制數(shù),比擬這兩個數(shù)的大小,然后將大數(shù)送到2023H單元。COMPARE:MOVDPTR,#2001HMOVXA,@DPTRMOVR0,AINCDPTRMOVXA,@DPTRSUBBA,R0JNCLOOPMOVA,R0INCDPTRMOVX@DPTR,ARETLOOP:INCDPTRMOVX@DPTR,ARET17.將內(nèi)部RAM40H開始的10個單元,搬移到50H開始的10個單元中。MOVR0,#40HMOVR1,#50HMOVR2,#10LOOP1:MOVA,@R0MOV@R1,AINCR0INCR1DJNZR2,LOOP1RET18.設單片機晶振頻率為6MHz,使用定時器0,以工作方式2,在P1.5引腳輸出一個周期為200us連續(xù)方波?解:MOVTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBTR0LOOP:JBCTF0,LOOP1AJMPLOOPLOOP1:CPLP1.019.編寫一段程序,功能要求為:當P1.0引腳的電平正跳變時,對P1.1的輸入脈沖進行計數(shù);當P1.2引腳的電平負跳變時,停止計數(shù),并將計數(shù)值寫入R0、R1(高位存R1,低位存R0)。答:將P1.1的輸入脈沖接入INT0,即使用T0計數(shù)器完成對P1.1口的脈沖計數(shù)。編寫程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: JNB P1.0,MAINMOV TMOD,#05H ;定時器/計數(shù)器T0為計數(shù)方式1 SETB TR0 ;啟動T0,開始計數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷WAIT: JB P1.2,WAIT CLR EA CLR TR0 MOV R1,TH0 MOV R0,TL0 AJMP $IT0P: INC R2 RETI20.試編寫一個程序〔例如將05H和06H拼為56H〕,設原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū)2001H單元和2023H單元中,按順序拼裝后的單字節(jié)數(shù)放入2023H。答:編程思路:首先讀取2001H的值,保存在存放器A中,將存放器A的高四位和低四位互換,再屏蔽掉低四位然后將存放器A的值保存到30H中,然后再讀取2023H的值,保存在存放器A中,屏蔽掉高四位,然后將存放器A的值與30H進行或運算,將運算后的結(jié)果保存在2023H中。 ORG0000HMAIN:MOVDPTR,#2001H ;設置數(shù)據(jù)指針的初值 MOVX A,@DPTR ;讀取2001H的值 SWAP A ANL A,#0F0H ;屏蔽掉低四位 MOV 30H,A ;保存A INC DPTR ;指針指向下一個 MOVX A,@DPTR ;讀取2023H的值 ANL A,#0FH ;屏蔽掉高四位 ORL A,30H ;進行拼裝 MOVX @DPTR,A ;保存到2023H END21.編寫程序,將外部數(shù)據(jù)存儲器中的4000H—40FFH單元全部清零。解:此題主要考察了對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了。 ORG 0000HMAIN:MOV A,#0 ;送預置數(shù)給A MOV R0,#0FFH ;設置循環(huán)次數(shù) MOV DPTR,#4000H ;設置數(shù)據(jù)指針的初值LOOP:MOVX @DPTR,A ;當前單元清零 INC DPTR ;指向下一個單元 DJNZR0,LOOP ;是否結(jié)束 END22.編寫程序,采用8255A的C口按位置位/復位控制字,將PC7置0,PC4置1,〔8255A各端口的地址為7FFCH-7FFFH〕。解:此題主要考察對8255A的C口的操作。其方式控制字的高位為0時,低四位對C口進行置位。由題目我們得到了方式控制字的地址為7FFFH。 ORG 0000H MAIN: MOV DPTR,#7FFFH ;控制字存放器地址送DPTR MOV A,#0EH ;將PC7置0 MOVX@DPTR,A MOV A,#09H ;將PC4置1 MOVX@DPTR,A END23.試編寫邏輯運算程序,功能為:F=X(Y+Z);F=XYZ其中FXYZ均為位變量,依次存在以30H為首址的位尋址區(qū)中。解〔1〕:FBIT30HXBIT31HYBIT32HZBIT33HLOG1:MOVC,Y;Y→CORLC,Z;(Y+Z)→CANLC,X;X(Y+Z)→CMOVF,C;X(Y+Z)→FRET;解〔2〕:LOG2:MOVC,Y;Y→CANLC,Z;YZ→CANLC,/X;XYZ→CCPLC;XYZ→CMOVF,C;XYZ→FRET;24.試編寫程序,統(tǒng)計內(nèi)RAM30H~50H單元中FFH的個數(shù),并將統(tǒng)計結(jié)果存51H。解:編程如下:LOKF:MOV51H,#0;計數(shù)器清零MOVR0,#30H;置數(shù)據(jù)區(qū)首址LOP:MOVA,@R0;讀數(shù)據(jù)CPLA;取反JNZLP1;判FFH,非FFH,轉(zhuǎn)INC51H;FFH,計數(shù)LP1:INCRO;指向下一數(shù)據(jù)CJNER0,#51H,LOP;判循環(huán)RET25.試編寫程序,找出外RAM2000H~200FH數(shù)據(jù)區(qū)中的最小值,并放入R2中。解:編程如下:SECH:MOVDPTR,#2000H;置外RAM數(shù)據(jù)區(qū)首址MOVR2,#OFH;置外RAM數(shù)據(jù)區(qū)長度〔N-1〕MOVXA,@DPTR;讀第一個數(shù)據(jù)MOVB,A;假設第一個數(shù)據(jù)為最小值SLOP:INCDPTR;指向下一個數(shù)據(jù)MOVXA,@DPTR;讀下一個數(shù)據(jù)CJNEA,B,SLP1;新數(shù)據(jù)與最小值比擬SLP1:JNCSLP2;新數(shù)據(jù)≥最小值,判斷循環(huán)MOVB,A;新數(shù)據(jù)<最小值,新數(shù)據(jù)→BSLP2:DJNZR2,SLOP;判循環(huán)結(jié)束否?MOVR2,B;最小值→R2RET26.ROM中存有0~100的平方表,首地址為TABDS,試根據(jù)累加器A(≤100)中的數(shù)值查找對應的平方值,存入內(nèi)RAM31H30H(雙字節(jié))。解:編程如下:DSQR:MOVDPTR,#TABDS;置ROM平方表首地址ADDA,Acc;A×2→AMOVCA,@A+DPTR;讀平方值高8位MOV31H,A;平方值高8位→31HINCA;指向平方值低8位MOVCA,@A+DPTR;讀平方值低8位MOV30H,A;平方值低8位→30HRETTABDS:DW0,0,0,1,0,4,0,9,0,16,0,25,…,27H,10H;0~100平方表〔雙字節(jié)〕27.試編程實現(xiàn)3字節(jié)無符號數(shù)加法:R7R6R5+R4R3R2→@R0(3個連續(xù)單元)。解:編程如下:ADD3:MOVA,R5ADDA,R2;低位加MOV@R0,A;存低位和INCR0;修改存儲單元MOVA,R6;ADDCA,R3;中位加MOV@R0,A;存中位和INCR0;修改存儲單元MOVA,R7;ADDCA,R7;高位加MOV@R0,A;存高位和RET28.試編寫程序,將外部RAM2000H~20FH數(shù)據(jù)塊,傳送到3000H~30FFH區(qū)域。解:編程如下:DMOV:MOVDPTR,#2000H;置源數(shù)據(jù)區(qū)首址MOVR2,#00H;置數(shù)據(jù)長度〔256個〕DLOP:MOVXA,@DPTR;讀數(shù)據(jù)MOVDPH,#30H;置目的數(shù)據(jù)區(qū)高8位地址MOVX@DPTR,A;存數(shù)據(jù)MOVDPH,#20H;置源數(shù)據(jù)區(qū)高8位地址INCDPTR;修改源數(shù)據(jù)區(qū)地址DJNZR2,DLOP;判循環(huán)結(jié)束否?RET29.從內(nèi)RAM20H單元開始存有一組帶符號數(shù)〔補碼〕,其個數(shù)已存放在1FH單元。要求統(tǒng)計其中大于0,等于0和小于0的數(shù)的個數(shù),并把統(tǒng)計結(jié)果分別存入ONE,TWO,THREE3個單元。解:編程如下:ONEEQU30HTWOEQU31HTHREEEQU32HSTOR:MOVR0,#20H;置數(shù)據(jù)區(qū)首址SLOP:MOVA,@R0;讀數(shù)據(jù)JZLP1;數(shù)據(jù)=0,轉(zhuǎn)JBAcc.7,LP2;數(shù)據(jù)<0,轉(zhuǎn)INCONE;數(shù)據(jù)>0,ONE單元加1LP0:INCRO;指向下一數(shù)據(jù)DJNZ1FH,SLOP;判統(tǒng)計結(jié)束否?未結(jié)束循環(huán)RET;統(tǒng)計結(jié)束,TWO單元加1LP1:INCTWO;數(shù)據(jù)=0,TWO單元加1SJMPLPO;返回循環(huán)體LP2:INCTHREE;數(shù)據(jù)<0,THREE單元加1SJMPLPO;返回循環(huán)體30.設在內(nèi)部數(shù)據(jù)存儲器中存放有20個字節(jié)數(shù)據(jù),其起始地址為M。試編寫程序,找出數(shù)0AH的存放地址,并送入N單元。假設OAH不存在,那么將N單元清零。解:程序如下:MEQU30HNEQU2FHSECH:MOVR0,#MMOVR1,#20LOOP:CJNE@R0,#0AH,LP1MOVN,R0RETLP1:INCR0DJNZR1,LOOPMOVN,#0RET31.試編寫程序,求出內(nèi)RAM20H單元中“1〞的個數(shù),并將結(jié)果存入21H單元。解:編程如下:LOK1:MOV21H,#OMOVR2,#08HMOVA,20HLOP:RLCAJNCLP1JNC21HLP1:DJNER2,LOPRET32.試編寫統(tǒng)計數(shù)據(jù)區(qū)長度的程序,設數(shù)據(jù)區(qū)從內(nèi)RAM30H開始,該數(shù)據(jù)區(qū)以0結(jié)束,統(tǒng)計結(jié)果送入2FH中。解:編程如下:ADUP:MOV2FH,#0MOVR0,#30HALOP:MOVA,@R0JNZLP1RETLP1:INC2FHINCR0SJMPALOP33.從內(nèi)RAM30H單元開始存放著一組無符號數(shù),其個數(shù)存在21H單元中。試編寫程序,找出其中最小的數(shù),并將其存入20H單元中。解:編程如下:SECH:MOVRO,#3OHMOV20H,#FFHSLOP:MOVA,@R0CJNEA,20H,NEXTNEXT:JNCSLP1MOV20H,ASLP1:INCR0DJNZ21H,SLOP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級《短文兩篇》課件
- 文化創(chuàng)意產(chǎn)業(yè)扶貧-洞察分析
- 虛擬現(xiàn)實康復訓練-第2篇-洞察分析
- 微整形手術(shù)風險與倫理探討-洞察分析
- 勤儉節(jié)約好少年事跡(6篇)
- 冬季雨雪的應急預案(5篇)
- 《差異量數(shù)》課件
- 企業(yè)實驗室內(nèi)訓師的安全管理職責
- 幼兒教育行業(yè)親子活動分享
- 船舶行業(yè)會計工作總結(jié)
- 五年級數(shù)學(小數(shù)乘除法)計算題專項練習及答案
- 《機電概念設計基礎》課件-運行時行為
- 2024-2030年中國奶粉行業(yè)營銷策略及未來5發(fā)展趨勢報告
- 職業(yè)生涯規(guī)劃-體驗式學習知到智慧樹章節(jié)測試答案2024年秋華僑大學
- 2024年度?;钒踩芾韱T聘用合同2篇
- 2024年社區(qū)工作者考試試題庫
- 交響音樂賞析智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學
- 藥品招商流程
- 100道遞等式計算(能巧算得要巧算)
- 【2019年整理】園林景觀設計費取費標準
- 完整word版,ETS5使用教程
評論
0/150
提交評論