第四章匯編語言程序設(shè)計_第1頁
第四章匯編語言程序設(shè)計_第2頁
第四章匯編語言程序設(shè)計_第3頁
第四章匯編語言程序設(shè)計_第4頁
第四章匯編語言程序設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章匯編語言程序設(shè)計1、編程將片內(nèi)40HH60H單元中的內(nèi)容送到以3000H為首的存儲區(qū)內(nèi)答:MOVR, 1 #40 HMOVR, 2 #21 H MOVDPT, R#3000HL1:MOVA, R1MOVXDP, TRAINCR1INCDPTRDJNZR, 2 L12、編程計算下列算式的程序(1) 23H+45H+ABH+03H=MOV, A#23HADDA, #45HADDA, #0ABHXCHAB;溢出處理ADDC, A#00HXCHA, BADDA #03H; A中為結(jié)果低位,B中為高位(2) CDH+15H-38H-46H=MOV, A#0CDHADDA, #15HSUBBA, #

2、38HSUBBA, #46H(3) 1234H+8347H=MOV, A#34HADDA, #47 HMOV30, HAMOV, A#12HADDC, A#83HM0V31 A; 30H存結(jié)果低位,31H存結(jié)果高位(4) AB123H-43ADCH=CLRCMOV, A#23HSUBBA, DCHM0V30, HAMOV, A#0B1HSUBBA, #3AHM0V31, HAMOV, A#OAHSUBBA, , #04HMOV32HA; 30H為低位,32H為高位3、設(shè)有兩個4位BCD馬,分別存放在23H 22H單元和33H 32H單元中,求他們 的和,并送入43H、42H單元中(低位在低字節(jié)

3、,高位在高字節(jié))。答:MOVA22HADDA, 32HMOV42, HAMOV, A23HADDC, A33HMOV43, HA4、略5、編程計算片內(nèi)RAMS 50H-59H單元中數(shù)的平均值,結(jié)果存放在5AH中。答:MOVR, 0#8MOVR, 1#50HMOV, A#00HL1:ADDA, R1INCR1DJNZR, 0 L1MOV, B#8DIVABMOV5A, HA6、編寫計算下式的程序。設(shè)乘積和平方結(jié)果均小于 255o a、b值分別存在片 外3001H和3002H單元中,結(jié)果存于片外3000H單元中。25 3abY a b ,a b(1)ab ,a bMOVDPT, R#3001HMO

4、VX, A DPTRMOV30H A; a暫存30H單元INCDPLMOVX, ADPTRCJNEA30H, L1 ;是否 a=bMOV, A #25SJMPSAVEL1:JNCL2MOV, B30HMU LABSJMPSAVEL2:MOVB, A11/15MOV, A30HDIVABSAVE:MOVDP, TR#3000H MOVXDP,101010(a b)210,(ab)2Y (a b)22,(ab)2(a b)210,(a妨2MOVDPT, R#3001HMOVX, A DPTRMOV30, HAINCDPTRMOVX, A DPTRADDA, 30HMOV, BAMULA; B (a

5、 + b)2MOV31, HACJNEA, #10, L1SJMPSAVEL1 :JCL2CLRCSUBBA, #10SJMPSAVEL2:ADDA, #10SAVE:MOVDP, TR#3000HMOVCDP, TAR7、設(shè)有兩個長度均為15的數(shù)組,分別存放在以儲 200H和210H為首地址的存區(qū)中,試編程求其對應(yīng)項之和,結(jié)果存放到以答:220H為首地址的存儲區(qū)中。MOVDP, H#02HMOVR, 1 #15MOVR, 2#00H;數(shù)組1首地址低位MOVR, 3#10H;數(shù)組2首地址低位MOVR, 4 #20H;和首地址低位L1:MOVDP, LR2MOVX, A DPTRMOVR, 1

6、AMOVDP, L R3MOVX, A DPTRADDA, R1MOVDP, L R4MOVXDT, PRAINCR2INCR3INCR4DJNZR, 1 L1SJMP$8設(shè)有100個無符號數(shù),連續(xù)存放在以2000H為首地址的存儲區(qū)中,試編 程統(tǒng)計正 數(shù)、負(fù)數(shù)和零的個數(shù)。答:MdV30H#00H;正數(shù)計數(shù)器MOV31H#OOH;負(fù)數(shù)計數(shù)器MOV32H#OOH;零計數(shù)器 MOVDPT, R#2000HMOVR, 1#100L4:MOVXA, DPTRINCDPTRCJNEA, #0, L1INC32HSJMPL2L1 :JCL3INC30HSJMPL2L3JNC31HL2:DJNZR1, L4S

7、JMP$9、將片外數(shù)據(jù)存儲器地址為1000H- 1030H的數(shù)據(jù)塊,全部搬遷到片內(nèi)RAM 30HH 60H中,并將原數(shù)據(jù)塊區(qū)域全部清零。答:MOV RO, #30HMOV R2, #31HMOV DPTR, #1000H LP:MOVX A, DPTRMOVR, 0 AAND A, #00HMOVXDP, TRA INC R0INC DPTRDJNZ R2, LPSJMP$10、試編寫一子程序,是R1、R0指向的兩個片外RAM連續(xù)單元中的高4位 二進(jìn) 制數(shù),合并成一個字節(jié),裝入累加器 A中。已知R0指向低地址,并要求該 單元高四位放在A中高四位。答:MOVX, AR 1AN LA, #0F0H

8、SWAPAMOVR, 2 AMOVX, AR0AN LA, #0F0HORLA, R2存放到11、試編程把以2040H為首地址的連續(xù)50個單元的無符號數(shù)按降序排列, 以3000H為首地址的存儲區(qū)中。答:MOVR, 2 #50MOVR, 3#20HMOVR4#40H;源地址MOVR, 5#30HM0VR6#00H;目的地址SEND:MOVDPHR3;SEND 將 2040H 數(shù)據(jù)塊移入 3000H 存儲區(qū)MOVDP, LR4MOVX, ADPTRINCDPTRMOVR, 3DPHMOVR, 4DPLMOVDP, HR5MOVDP, LR6MOVXDP, TRAINCDPTRMOVR, 5DPHM

9、OVR, 6DPLDJNZR, 2 SENDMOVR2 #49;重復(fù)次數(shù)CMP1:MOVDP, TR#3000HMOVR, 3 #49;比較次數(shù)CMP2:MOVX, ADPTRMOV, BAINCDPTRMOVX, ADPTRCJNEA, B, L1L1:JCNOMOVEMOV30, HACLRCMOV, A DPL SUBBA, #01H MOVDP, LAMOV, A30H MOVXDP, TRAINCDPTRMOV, ABMOVXDP, TRANOMOVE:DJNZ, R3CMP; 2 50 個數(shù)重復(fù)一遍?DJNZR, 2 CMP; 1 排序結(jié)束?LJMP$12、試編一查表程序,從首地址

10、為2000H,長度為100的數(shù)據(jù)塊中找出ASCII碼為A,將其地址送到20A0H和20A1H單元中。答:MOVDPTR#2000HMOVR, 2#1 00GO_ON:MOV, XADPTRCJNEA, #41H, IFENDMOV, A DPHMOV, B DPLMOVDPT, R#20A0HMOVXDP, TRAINCDPTRXCHA, BMOVXDP, TRA SJMPOVERIFENDJNCDPTRDJNZR, 2 GO_ONOVER:SJMPOVER13、設(shè)在200Hs204H單元中,存放5個壓縮BCD碼,編程將他們轉(zhuǎn)換成ASCII 碼,存放到以205H單元為首地址的存儲區(qū)。答:MOV

11、R, 2#05HMOVR, 3#02HMOVR, 4#00HMOVR, 5#02HMOVR, 6#05HCHLP:MOVDP, HR3MOVDP, LR4MOVX, A DPTRINCDPTRMOVR, 3 DPHMOVR, 4 DPLMOV, BASWAPAAN LA, #0FHORLA, #30HMOVDP, HR5MOVDP, L R6MOVXDP, TRAINCDPTRMOV, ABAN LA, #0FHORLA, #30HMOVXDP, TRAMOVR, 5 DPHMOVR, 6 DPLDJNZR, 2CHLP14、有一無符號數(shù)據(jù)塊長度在30H單元中,其首地址為31H單元,求出數(shù)據(jù)

12、塊中 最大值,并存入40H中。答:MOVR, 0#31 HMOVR, 1 30HMOV40, H#00HLOOP:MOV, AR0CJNEA, 40H, L1SJMPAGAINL1:JNCL2SJMPAGAINL2:MOV40H, AAGAINJNCRODJNZR, 1 LOOPSJMP$15、 略16、在以2000H為首地址的存儲區(qū)內(nèi),存放20個用ASCII碼表示的09之 間的 數(shù),試編程,將它們轉(zhuǎn)換成BCD碼,并以壓縮BCD碼的形式存在3000H- 3009H 單元中。答:MOVR, 2#1 0MOVR, 3#20HM0VR4 #00HM0VR5 #30HM0VR6 #00HLP:M0VD

13、P, R3MOVDPL R4MOVX, DPTRAN LA #0FHSWAPAXCHABINCDPTR MOVXADPTRAN LA #0FHORLABINCDPTRMOVR3 DPHMOVR4 DPLMOVDPHR5MOVDPLR6MOVXDPTRINCDPTRMOVR5 DPHMOVR6 DPLDJNZR2 LPSJMP$17、試編程實現(xiàn)下列邏輯表達(dá)式功能。設(shè) P1.7P1.0為8個變量的輸入端, 而其中P1.7又作為變量的輸出端。;輸入端定義X0EQUP1.0X1EQUP1.1X2EQUP1.2X3EQUP1.3X4EQUP1.4X5EQUP1.5X6EQUP1.6X7EQUP1.7(1

14、)丫 XoXi 元 X3X4X5X6X:MOVC X0ANLC X1ANLC /X2ORLC X3 MOVOOH CMOVC X4ANLC X5ANLC X6ORLC /X7ORLC OOH MOVP1.7C(2) Y X0X1X2X3X4 X5X6X7MOVC XOANLC X1CPLCMOVOOH CMOVC X2ANLC X3ANLC X4CPLCMOVO1H CMOVC X5ANLC X6ANLC X7CPLCORLC O1HCPLCORLC OOHMOVP1.7C1&略19、 略20、 試編寫延時1s、1min仆子程序。;單片機(jī)時鐘fosc=12MH乙計算為近似值;1 s延時子程序D

15、LY_1S:MOVRO#1OL3:MOVR 1 #200L2:MOVR2 #250L1QJNZR2 L1DJNZR1 L2DJNZRO L3RET;延時1 minDLY_1M:MOVR, 3#60L4:LCALLDLY_1SDJNZR, 3 L4RET;延時1hDLY_1H:MOVR, 4#60 L5:LCALLDLY_1 M DJNZR, 4 L5RET21、用程序?qū)崿F(xiàn)c=a2+b2。設(shè)a、b均小于10, a存在31H單元中,b存在32H單 元中,c存33H單元。答:ORG1000HSR: MOV, A31HACALLSQRMOVR, 1AMOV, A32HACALLSQRADDA, R1M

16、OV33, HASJMP$;求平方子程序如下(采用查平方表的方法)SQRJNCAMOVC, AA+PCRET1 , 4, 9, 1636, 49, 64, 81TABLE:DB0,DB25 , END22、 如何實現(xiàn)將內(nèi)存單元40Hs60H的數(shù)逐個對應(yīng)傳到片外2540H- 2560H單 元 中?答:MOVR, 0#40HMOVDPT, R#2540HMOVR, 2#21HL1:MOVA, R0MOVXDP, TRAINCROINCDPTRDJNZR, 2 L1SJMP$23、參考21題24、參考21題25、參考實驗程序26、參考實驗程序第五章定時/計數(shù)器1、89s51單片機(jī)內(nèi)部有幾個定時/計數(shù)

17、器,他們有哪些專用寄存器組成? 答:89s51單片機(jī)內(nèi)部有兩個16位定時/計數(shù)器,為定時器0 (TO)和定時 器 1( T1)o在定時器/計數(shù)器的16位的計數(shù)器是由兩個8位的專用寄存器TH0、 TLO, TH1、TL1 組成。2、89S51單片機(jī)的定時/計數(shù)器有哪幾種工作方式,各有什么特點?答:定時器/ 計數(shù)器有四種工作方式:方式0,方式1,方式2,方式30其中,方式3只適用 于TOo以TO為例:方式0, 16位寄存器只用了 13位,TLO的高三位未用。由THO 的8位和TLO的低5位組成一個13位計數(shù)器;方式1,和方式0的工作相同,唯 一的差別是THO和TLO組成一個16位計數(shù)器;方式2,把

18、TLO配置成一個可 以自動恢復(fù)初值的8位計數(shù)器,THO作為常數(shù)緩沖器。THO由軟件預(yù)置值。當(dāng) TLO產(chǎn)生溢出時,一方面使溢出標(biāo)志TFO置1,同時 把THO中的8位數(shù)據(jù)重新裝 入TLO中;方式3,將使TLO和THO成為兩個 相互獨立的8位計數(shù)器,TLO利 用T。本身的一些控制,它的操作與方式。和方式1類似。而THO被規(guī)定為只用作 定時器功能,對機(jī)器周期計數(shù),并借 用了 T1的控制位TR1和TF1。在這種情況下 THO控制了 T1的中斷。這時T1還可以設(shè)置為方式用于任何不需要中斷控制 的場合,或者用作串行口的波特率發(fā)生器。3、定時/計數(shù)器用作定時方式時,其定時時間與哪些因素有關(guān)?作為計數(shù)時,對外

19、界計數(shù)頻率有何限制?答:定時/計數(shù)器作定時時,其計數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時鐘信號 12分頻后提供。定時時間與時鐘頻率和定時初值有關(guān)。定時/計數(shù)器作計數(shù)時,由于確認(rèn)1次負(fù)跳變要花2個機(jī)器周期,即24個振蕩 周期,因此外部輸入的計數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24 o 4、當(dāng)定時器TO用作方式3時,由于TR1位已被TO占用,如何控制定時器T1的 開啟和關(guān)閉?答:定時器TO用作方式3時,由于TR1位已被TO占用,此時通過控制位C/T切換 其定時或計數(shù)器工作方式。當(dāng)設(shè)置好工作方式時,定時器T1自動開始運(yùn)行,若要停 止,只需送入一個置定時器T1為方式3的方式字。5、已知89s51單片機(jī)系統(tǒng)

20、時鐘頻率為24MHz請利用定時器TO和P1.2輸 出矩形 脈沖。矩形波高電平寬度50 P s,低電平寬度350 P So答:ORG1OOOHMOV TMO, D#O2H ;設(shè)置工作方式MOV THO # 09CH設(shè)置定時器初值MOV TLO, #O9CHSETB TRO啟動定時器LOOP: SETBP1.2; P1.0 輸出高電平 MOVR, 0#07HDEL JBC TFO, REP定時是否到? AJMP DEL15 /REP: SETBP1.2; P1.0 輸出低電平DJNZR, 0 DELAJMP LOOPEND6、在89s51單片機(jī)中,已知時鐘頻率為12MHz請編程使P1.0和P1.1

21、分 別輸出 周期為2ms和500一的方波。答:選擇方式2,用定時器T1MOVTMO, D#20HMOVTH, 1#06HMOVTL, 1 #06HSETBTR1L1:MOVR2, #04HL2:JNBTF1, $CLRTF1,CPLP1.1DJNZR, 2 L2CPLP1.0LJMPL17、設(shè)系統(tǒng)時鐘為24MHz試用定時器TO做外部計數(shù)器,編程實現(xiàn)每計到1000個脈沖,是T1開始2ms定時,定時時間到后,T0又開始計數(shù),循環(huán)往 復(fù)。答:MOVTMO國15H;T1定時方式1, T0計數(shù)方式1L1:MOVTH, 0 #0FCHMOVTL, 0#18HSETBTROJNBTFO, $CLRTRO C

22、LRTFO MOVTH, 1 # H MOVTL, 1 # H SETBTR1 JNBTF1, $ CLRTR1CLRTF1 LJMPL1 8、略第六章80C51的串行接口 1、什么是串行異步通信?他有哪些特點?有哪幾種幀格式?答:串行通信即所傳輸數(shù)據(jù)的各位按順序一位一位的發(fā)送或接收。串行通信分為同步和異步兩種方式。在異步通信中數(shù)據(jù)或字符是一幀一幀地傳送的。幀定義為一個字符的完 整的通信格式,通常也稱為幀格式。它的主要特點:由于異步通信每傳送一幀有固定的格式,通信雙方只需 按約定的 幀格式來發(fā)送和接收數(shù)據(jù),所以硬件結(jié)構(gòu)比同步通信方式簡單;此 外它還能利用校驗 位檢測錯誤。幀格式的一般形式是先用

23、一個起始位“0”表示字符的開始,然后是數(shù)據(jù)位,其 后是奇偶校驗位,最后是停止位,用以表示字符結(jié)束。2、某異步通信接口按方式3傳送,已知其每分鐘傳送3600個字符,計算其傳送波 特率。答:設(shè)每個字符由1個起始位、8個數(shù)據(jù)位、1個可編程位和1個結(jié)束位組成, 其傳送波特率為:11bX 3600/60s=660bps3、80C51單片機(jī)的串行口由哪些基本功能部件組成?答:80C51單片機(jī)的串行口基本功能部件主要有:兩個數(shù)據(jù)緩沖寄存器SBUF一個串行口控制寄存器SCON一個輸入移位寄存器。4、80C51單片機(jī)的串行口有幾種工作方式?幾種幀格式?如何設(shè)置不同方式的波 特率?答:80C51單片機(jī)的串行口有四

24、種工作方式,由串行口控制寄存器中的SM0SM1控制。80c51單片機(jī)的串行通信有8位、10位、11位三種幀格式。波特率設(shè)置:4種工作方式波特率的計算方法不同,其中方式0和方式2的波特 率是固定的,方式1和方式3的波特率是可變的,均由定時器T1的 溢出率控制。 具體計算如下:19/方式0:波特率固定為時鐘頻率的 1/12,不受SMOD勺影響。(SMO為 波特率倍增位)方式1的波特率=2SMOD/3定時器T1的溢出率方式2的波特率=2SMOD/6緣fosc方式3的波特率=2SMOD/3定時器T1的溢出率5、為什么定時器T1用作串行口波特率發(fā)生器時,常采用工作方式2?答:在串行通信中,收發(fā)雙方對發(fā)送

25、或接收的數(shù)據(jù)速率(即波特率)要有一定的約定。串口有四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,有定時器T1的溢出率控制。定時器T1用作串行口波特率發(fā)生器時,因為工作方式2是自動重裝載方式,因而定時器T1作波特率發(fā)生器常采用工作方式2.6、已知定時器T1設(shè)置成方式2,用作波特率發(fā)生器,系統(tǒng)時鐘頻率為24MHz求可能 產(chǎn)生的最高和最低的波特率是多少?答:最高波特率:TH1=0FFH TL1=0FFH波特率最高=2/32 X 24M/ (12X( 256-255) bps=0.125Mbps 最低波特率:TH1=00H TL 仁 00H波特率最低=1/32 X24M/(12X( 256

溫馨提示

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

評論

0/150

提交評論