第8章 典型子程序设计

上传人:suij****uang 文档编号:152177650 上传时间:2022-09-14 格式:DOCX 页数:23 大小:689.25KB
收藏 版权申诉 举报 下载
第8章 典型子程序设计_第1页
第1页 / 共23页
第8章 典型子程序设计_第2页
第2页 / 共23页
第8章 典型子程序设计_第3页
第3页 / 共23页
资源描述:

《第8章 典型子程序设计》由会员分享,可在线阅读,更多相关《第8章 典型子程序设计(23页珍藏版)》请在装配图网上搜索。

1、第8章典型子程序设计实验实验1多字节加法程序设计实验一. 实验目的1 .学习多节加法程序的设计方法;2. 了解顺序结构程序设计的一般要求。二. 实验设备及器件1. PC机一台2. QTH仿真器一台三. 实验内容1. 顺序结构也称简单结构,是程序设计的基础。所说的简单结构是指在整个程序中没 有分支,从程序的第一条指令开始顺序执行到最后一条指令结束。虽然程序结构简单,但程 序的内容不一定简单。要学会合理选用指令、工作寄存器,节省内存。2. 有两个加数Datal、Data2存放于内部RAM 30H、31H、32H、33H单元,Datal的 低字节#34 H占用30H单元、高字节#92H占用31H单元

2、,Data2的低字节#0EAH占用32H、 高字节#87H占用33H单元。编写一段程序,完成二数相加,和Result存放在30H、31H、 32H单元,低字节放在30H单元,进位位在32H单元。四. 实验要求1. 在QTH2003软件仿真环境下编写、运行实验程序;2. 内部RAM 30H33H单元的初值即两个加数Data1、Data2的存放,不用MOV数据 传送指令,用临时修改内部RAM区数值的方法。五. 实验步骤1. 在QTH2003软件仿真环境下输入参考程序清单,建立新项目进行软件仿真;2. 在Memory-1窗口上单击选项卡Data,将内部RAM 30H33H单元内容由原来的“00” 修

3、改成“34 92 EA 87”(注意:修改RAM数据时输入法必须是“中文(中国)”),如图 8-1-1所示;图8-1-1内部RAM初值设置图8-1-2程序运行结束内部RAM的值3. 填写实验数据表表8-1-1程序运行前后相关内部RAM与REG的值调试程序状态相关内存单元值R0R130H31H32H33H运行前运行后六. 预习要求1. 预习教材相关章节,掌握多字节加法程序的设计方法;2. 写出预习报告。七. 参考程序1. 实验参考程序框图如图8-1-3所示。图8-1-3参考程序框图2.实验内容2参考程序ORG0000HSJMPSTARTORG0030HSTART:MOVR0,#30H;将加数Da

4、ta1和 Data2地址送给R0和R1MOVR1,#32HMOVA,R0;将加数Data1低字节送AADDA,R1;Data1与Data2低字节相加MOVR0,A;和低字节存放于30HINCR0INCR1MOVA,R0;Data1高字节送AADDCA,R1;Data1与Data2高字节相加MOVR0,A;将和高字节存放于31HINCR0MOVA,#00H;清AADDCA,#00H;求Data1与Data2和的高字节进位值MOVR0,A;高字节和的进位值存放在32HHERE:SJMPHERE;停PC指针END八. 实验报告要求1. 按上述步骤写出实验报告;2. 写出完成实验要求的程序清单。实验2

5、数据块传送程序设计实验一. 实验目的1. 掌握循环结构程序的设计方法;2. 掌握存放地址有重叠区的数据块传送方法法。二. 实验设备及器件1. PC机一台2. QTH仿真器一台三. 实验内容1. 在内部RAM 30H单元开始的26个单元存放着英语字母表,编写一段程序,将这 26个字母放到35H单元开始的连续26个单元里。四. 实验要求1. 掌握循环程序设计的四个主要部分,弄清每部分应完成的任务;2. 了解循环程序结构程序的特点;3. 理解循环结程序流程图图8-2-1中“初始化部分”、“循环处理部分”、“循环控制部 分”和“结束处理部分”,在整个循环程序中所起的作用;4. 在QTH 2003仿真软

6、件环境,完成实验程序的编写与仿真运行;五. 实验步骤1. 在QTH2003软件仿真环境下,输入参考程序,建立新的仿真项目,运行实验程序, 完成上述功能;2 .对内部RAM 30H49H进行初始化。(1)方法1直接修改内部RAM值(注意:修改RAM数据时输入法必须是“中文(中国)”):打开 内部RAM (Memory窗口 Data选项卡)存储区,选中30H-49H将初值“00”修改成“4142 43 445A”,如图8-2-2所示。运行参考程序1,得到图8-2-3所示的内部RAM 35H4EH 单元值。图8-2-2内部RAM初始值图8-2-3参考程序1运行结果(2)方法2用片内数据传送指令:用片

7、内数据传送指令也可以完成对内部RAM 30H4EH单元初 始化。运行参考程序2,得到图8-2-4、图8-2-5。图8-2-2与图8-2-4,图8-2-3与图8-2-5所示的内部RAM值完全相同。.HTff 邮- 4TB20tLSI二叵区,.QTK- OTBZtDl.&Sl咽归 境回1SQU m凹阻回 站四冷地)sn(w)帝的 凸咨事|门二杉.二 日了 甘匚底君* 一 四粤 it 艺!凰-2 gl二=J Sl; d, t.= I-尚; /= J - :-巨 3 较 11 占咨口 弋匚:汇=土,“二 - 出巳无宣.- 琪竺*曲? Irr 1) !回0 aJ kh4 BOftiSncwi.)三切诲游

8、降H汕副蚊任共|砒何,其莅件七吊照冒昨可回 衲可剧引TLow;C:;V:L: :(.?.I. -.: i: FtHktJtUH STflUJ0给UHWc6:5PKIl共芹.,-. I-q 的=:件dt汕脚宝件卖切man-3仔 =-F!- J =园画|口叫囹E:g.K.丁 TR0 眼H nawn 甄乳A I! IIfiQTHZCOlJiSMi 观.35 F - 2: :. :H.:1SSEU4Z | JWL:151 O0BI UI.1号胡丈|昭顼二AIS EE zJ 眦;OffiO 00 0D 00 DQ 00 00 如 00 00 0D 00 00 00 00 A 0。41至43弱45电42幻

9、前45廿的州必- 其勒 4 O E JF 丸| 51 J2 =53 W 55 56 V 胸 59 v 12|口小1由|:、5.H11J_lT我行冏用别IJ同.血.ttdmL1叽 r8-2-5参考程序2运行结果8-2-4参考程序2初始化内部RAM图六. 预习要求1. 预习教材相关章节,掌握循环程序设计方法;2. 写出预习报告。七. 参考程序1.参考程序流程图如图8-2-6所示;图8-2-1循环结程序流程图图8-2-6数据块传送流程图2.参考程序;数据块传送参考程序1ORG0000HSJMPSTART;源数据块与目标数据块地址有重叠区时,应该先ORG0030H;从没重叠地址区开始传送START:

10、MOVR0,#49H;源数据块最后一个单兀地址49H送R0MOVR1,#4EH;目标数据块最后一个单兀地址4EH送R1MOVR7,#26;传送数据个数26送R7,即计数器R7置初值LOOP: MOVA,R0;源数据块数据送AMOVR1,A;A中数据送目标单兀DECR0;源数据块地址减1DECR1;目标数据块地址减1DJNZR7,LOOP;计数器不为0,继续传送HERE: SJMPENDHERE;停 PC;数据块传送参考程序2ORG0000HSJMPSTARTORG0030H;为源数据块置初值START:MOVR7,#26;计数器R7置初值26MOVR0,#30H;源数据块首地址30H送R0MO

11、VA,#41H;源数据块第一个数据送ALOOP:MOVR0,A;A中数据送R0指向的地址INCR0;地址加1INCA;数据加1DJNZR7,LOOP;计数器不为0,继续赋值MOVR0,#49H;源数据块最后一个单兀地址49H送R0,MOVR1,#4EH;目标数据块最后一个单兀地址4EH送R1,MOVR7,#26;传送数据个数26送R7,即计数器R7置初值LOOP1:MOVA,R0;源数据块数据送AMOVR1,A;A中数据送目标单兀;DECR0;源数据块地址减1DECR1;目标数据块地址减1DJNZR7,LOOP1;计数器不为0,继续传送HERE:SJMPHERE;停PCEND八. 实验报告要求

12、1. 按照上述步骤写出实验报告;2. 写出完成实验要求的程序清单。实验3数码转换程序设计实验一. 实验目的1. 掌握分支结构程序的设计方法;2. 掌握数制转换的规律。二. 实验设备及器件1. PC机一台2. QTH仿真器一台三. 实验内容1.在内部RAM 30H开始的10个单元存放着10个ASCII表示的数,编写一段程序, 将这10个数中的十六进制数找出来,并译成十六进制数,存放在内部RAM 40H开始的单 元内。四. 实验要求1 .掌握分支结构程序设计的特点;2. 明确由不同转移条件形成的分支所能寻址的范围;3. 在QTH 2003仿真软件环境下,完成实验程序的编写与仿真运行;4. 对内部R

13、AM 30H起始单元的初始化,采用直接修改内部数据存储区Data和用数据 传送、查表指令两种方法完成;5. 比较两种方法的优缺点;6. 内部 RAM 存储数据为 “29 2F 30 35 39 3B 40 41 46 47 ”。五. 实验步骤1. 在QTH2003软件仿真环境下,输入参考程序,建立新的仿真项目,运行实验程序, 完成上述功能;2. 对内部RAM 30H39H进行初始化。(1)直接修改RAM存出区(修改RAM数据时输入法必须是“中文(中国)”):.m swaas - g皿的l isi二叵X.皿 熟顷炽-o却颂 risiX斐伴e wiB查者凹 或目p疵i$ (Q)留口也1割如)dG

14、|l:I原尝涌做四毋11 J1 U * =L占目A-:*-.! - .:-T :7 ; . I S Q?削电 f # 口 IE 园臂微炉导甫t ! =i占a.sft aITS瓦Mr0tl u0u aoOT0n IEKO01OtG啊H?5JHPSTfiKTJI:OtG谢+ 皿毗MURTpUfl+mu州料图+mu+ LOOP;mun皿p ii#ifi Mllfilh Ml脸削s吧回p州图卿 趴JU2C0倒卮海皿21A U冥注ASSEliILT CIBFLCTEL5I BTHMUnU tcDD3DDDDDCOOQODDDCOii如ODKi0000a网F3035393lB*414fi4.7OOQQDu

15、-wnuddoooaonoooodaonodwoooovJ,I硒 , :EW、.” -”圄 E:-d 3段云陆ERELE COOLHEI 151 01TWL 01T tc心虹与-田,du G cIrs卸丁THOL妙gQ-TH2001W剥&圈盯3踱! E0030iQIM00QDDO皿QDCflODDO叫DD00汽0031292F:jQ353?IB4H414J7她的U0cowonosmmofaonocuonooooonoo寸| I 卜讣厘:声:i 111_lT-.4.741图8-3-1内部RAM初始值图8-3-2参考程序1运行结果it1/: l.ll 331 c.r. k. . CtlB- (TE

16、fDl.ISI亚IXr1,:; F响国油目RW 留知|I 神:gagAriflJWfZtftJiOTlflTGWILI UiFLHl 015 QU2W.QiJ L. ijffl图8-3-4参考程序2运行结果图8-3-5参考程序1流程图打开内部RAM (Memory窗口 Data选项卡)存储区,选中30H39H单元将其初值“ 00 ” 修改成“29 2F 30 35 39 3B 40 41 46 47 ”,如图8-3-1所示。运行参考程序1得到图8-3-2所 示的内部RAM 30H39H单元的值。(2)用片内数据传送指令、查表指令对内部RAM 30H39H单元初始化:运行参考程序2,得到图8-3

17、-3、图8-3-4所示数据。图8-3-1与图8-3-3,图8-3-2与图 8-3-4所示的内部RAM值完全相同。-::芯 E: T:: 队:-拦::-:m二:-有苗日叫骐斑加利州1 富d | g叮|S鼠T四寺时矛IF ! zl ML二 泓二硼|匮邸:。颂 DO DO DD OD OD OD iD QD QD 00QD3J 粉理 3D 35 3P 强 4口 41 46 47 QD 00皿41 to to网m皿at!皿ao on oo an皿成 :土 . :.: Dtla .图8-3-3参考程序2初始化内部RAM图六. 预习要求1. 预习教材相关章节, 掌握分支结构程序设计方法;2. 复习数制转换

18、相关知 识;3. 写出预习报告。七. 参考程序1. 参考程序1流程图如图8-3-5 所 示 ;ORG0000HSJMPSTARTORG0030HSTART:MOVR7,#10;计数器置初值MOVR1,#40H;存放有效数据首地址40H送R1MOVR0,#30H;源数据块首地址30H送R0LOOP:MOVA,R0;(R0)指向的地址存放的数据送ACJNEA,#30H,NEQ1;(A)30H,转到 NEQ1SJMPY1_ASCII;(A)=30H,转到 Y1_ASCIINEQ1:JCNEXT;C=1, (A)30H,(A)39H,转到 NEQ2SJMPY1_ASCII;(A)=39H,转到 Y1_

19、ASCIINEQ2:JCY1_ASCII;C=1,(A)39H,(A)N41H,转到 NEQ3SJMPY2_ASCII;(A)=41H,转到 Y2_ASCIINEQ3:JCNEXT;C=1, (A)41H,(A)N46H,转到 NEQ4SJMPY2_ASCII;(A)=46H,转到 Y2_ASCIINEQ4:JCY2_ASCII;C=1,( A)46H,转到 NEXTY1_ASCII:CLRC;清CSUBBA,#30H;(A)-30H,转换成16进制数MOVR1,A;A中数据存放在R1指向的地址单兀INCR1;地址加1SJMPNEXT;下一个数Y2_ASCII:CLRC;清CSUBBA,#40

20、H;A中数据减40HADDA,#09H;A中数据加09HMOVR1,A;将16进制数存放于R1指向的地址单兀INCR1;地址加1NEXT:INCR0DJNZR7,LOOPEND参考程序2:ORG0000HSJMPSTARTORG0030HSTART:MOVR0,#30H;初始化数据块首地址30H送R0MOVR7,#10;计数器置初值10MOVDPTR,#DAT;数据块数据表MOVR6,#0GO_ON1:MOVA,R6MOVCA,A+DPTR;查表,取数MOVR0,A;表中数据送R0指向的地址INCDPTR;查表指针加1INCR0;地址加1DJNZR7,GO_ON1;计数器不为0,继续查表MOV

21、R7,#10;初始化计数器MOVR1,#40H;有效数据首地址40H送R1MOVR0,#30H;源数据块首地址30H送R0LOOP:MOVA,R0;以下注释同参考实验程序1CJNEA,#30H,NEQ1SJMPY1_ASCIINEQ1:JCNEXTCJNEA,#39H,NEQ2SJMPY1_ASCIINEQ2:JCY1_ASCIICJNEA,#41H,NEQ3SJMPY2_ASCIINEQ3:JCNEXTCJNEA,#46H,NEQ4SJMPY2_ASCIINEQ4:JCY2_ASCIISJMPNEXTY1_ASCII:CLRCSUBBA,#30HMOVR1,AINCR1SJMPNEXTY2_

22、ASCII:CLRCSUBBA,#40HADDA,#09HMOVR1,AINCR1NEXT:INCR0DJNZR7,LOOPDAT:DB29H,2FH,30H,35H,39HDB3BH,40H,41H,46H,47HEND八. 实验报告要求1. 按照上述步骤写出实验报告;2. 写出完成实验要求的程序清单。实验4数制转换程序设计实验一. 实验目的1. 掌握二进制码与BCD码之间转换程序的设计方法;2. 了解二、十进制数的转换规律。二. 实验设备及器件1. PC机一台2. QTH仿真器一台三. 实验内容在计算机中常用二进制编码的BCD码来表示十进制数,由于进制不同,必须进行二一 十进制的转换。一般

23、常用四位二进制数表示一位BCD码,一个字节表示2位BCD码。在内部RAM 30H、31H单元存放着二进制数“3B”、“5C”。编写一段程序将这双字 节二进制数“3B5C”转换成BCD码,并存放在内部RAM 40H开始的连续单元内。四. 实验要求1. 用R4、R5、R6作转换BCD码时的缓冲器,高字节送R4,低字节送R6;2. 明确由不同转移条件形成的分支所能寻址的范围;3. 在QTH 2003仿真软件环境下,完成实验程序的编写与仿真运行;4. 单步运行程序,观察相关内部RAM数值的变化情况。五. 实验步骤1. 在QTH2003软件仿真环境下,输入参考程序,建立新的仿真项目,运行实验程序, 完成

24、上述功能;2. 单步运行参考程序;3. 观察相关存储单元数值的变化;4. 记录实验数据,填写表8-4-1。.蛔 制隅幅-IUFL皿1S4TE 神盹-gMI答弋:坏 2 TH:. -HL: 峭一 |_ 熨-I二 普.-J HJlUL.ri IB 5X11 D:VLEI.15J UfL.UBJ tc liz| J .星就M EfiSii 二瓣 PTE iU:-|Q3D IB 5: DO DO ad DD IT (ID DO QQ DO 00 QO AI Q04n 01 L 9h DO OO 00 CO M 0Q 00 00 OO 00, F : | ii回画置期GSG :-保迁二工丁-三寥凿弟由注

25、中1 1 1熊折出用口 -,Rt OCdOHEW* 、 Z濮过中所向量入口地止二.3 T瑟SXIP SHRT4. ftd 5:将BCDW象腾RLR%版.Oil .Q v S *1 J IhlSW:一1-L.I条:匕争丘 L 猝、W、_M 土I尚.- 9 X,、剧二,虽丁 :&:= S险H: I, D:iliipj, 1 liUFJ.fl JE:AS5QULT 皿皿LSI UH.C6J icli,诵肘I*利可顺N二型;LI DK0 IB 5C 00 Ofl DD 00 DO Ofl DO 0D DO DD U A iMO 00 M OQ Ofl 00 00 00 0Q DO 00 DO 00 O

26、il v|-虹山广j I 邛日_|普三牌-三Z|:-件.3 . .:- ::.图8-4-1内部RAM初始值图8-4-2参考程序运行结果表8-4-1程序运行前后相关RAM值调试程相关内存单元值序状态30H31H40H41H42H运行前运行后六. 预习要求1. 预习教材相关章节,掌握循环结构程序设计方法;2. 复习数制转换相关知识;3. 写出预习报告。七. 参考程序1.参考程序流程图如图8-4-3所示。图 8-4-3参考程序流程图1.头验参考程序ORG0000HSJMPSTART;转到主程序入口地址ORG0030HSTART:MOVR4,#0;将缓冲器R4,R5,R6清0MOVR5,#0MOVR6

27、,#0MOV30H,#3BH;初始化30H 31H单元MOV31H,#5CHMOVR7,#16;计数器R7赋初值MOVR2,30H;高字节地址30H送R2MOVR3,31H;低字节地址31H送R3BIT_BCD: MOVA,R3;R3、R2中存放的16位二进制数左移1位RLCA;低字节最高位值保留在进位位C中MOVR3,AMOVA,R2RLCA;高字节最高位值保留在进位位C中MOVR2,AMOVA,R6ADDCA,R6DAA;(R6)+(R6)+(C),和进行二-十进制调整MOVR6,A;调整后BCD码送R6MOVA,R5ADDCA,R5DAA;(R5)+(R5)+(C),和进行二-十进制调整

28、MOVR5,A;调整后BCD码送R5MOVA,R4ADDCA,R4DAA;(R4)+(R4)+(C),和进行二-十进制调整MOVR4,A;调整后BCD码送R4DJNZR7,BIT_BCD;R7N0,转到 BIT_BCDMOV40H,R4;将转换后的BCD码送如存储区MOV41H,R5MOV42H,R6HERE:SJMPHERE;停PC指针END八. 实验报告要求1. 按照上述步骤写出实验报告;2. 写出完成实验要求的程序清单。实验5寻找最大/最小值程序设计实验一. 实验目的1. 掌握寻找无符号数最大/最小值程序的设计方法。二. 实验设备及器件1. PC 机2. QTH仿真器三. 实验内容1.在

29、外部RAM 0030H开始的10个单元中连续存放着10个无符号数随机数,编写 段程序,将这10个数中的最大或最小值取出,存放在内部RAM 30H单元。四. 实验要求1. 外部RAM数据存储区的数据,通过修改QTH仿真软件的外部数据存储区XData直 接地址单元实现;2. 存储数据自定;3. 本实验要求取最大值;4. 在QTH 2003仿真软件环境下,完成实验程序的编写与仿真运行。五. 实验步骤1.在QTH2003软件仿真环境下,输入参考程序,建立新的仿真项目,运行实验程序, 完成上述功能;2.对外部RAM 0030H0039H进行初始化(注意:修改RAM数据时输入法必须是“中文(中国)”):

30、打开外部RAM (Memory窗口 XData选项卡)存储区,选中0030H-0039H 单元,将其初值“00”修改成“31 52 43 44 5A FE OC 8B 2A 1D”,如图8-5-1 所示;图8-5-1外部RAM初始化结果图8-5-2参考程序运行结果3 .单步运行参考程序,观察A、R1、R2特殊功能寄存器数值的变化情况;4.图8-5-2所示内部RAM 30H数据为实验参考程序运行的结果。六. 预习要求1. 预习教材相关章节,掌握数据查找程序的编写特点;2. 写出预习报告。七. 参考程序1.实验参考程序流程图图8-5-3实验参考程序流程图在图8-5-3实验参考程序流程图中,R1中存

31、放基准值,R2存放每次从外部RAM读出 的结果。1.实验内容1参考程序MAXEQU 30H;定义最大值单元ORG0000HSJMPSTART;避开中断向量入口ORG0030HSTART: CLRA;A清0MOVR1,A;R1 清 0MOVR7,#10;计数器赋初值MOVDPTR,#0030H;数据块首地址LOOP:MOVXA,DPTR;读数据INCDPTR;地址加1MOVR2,A;读出数据存R2MOVA,R1;基准值送ANEXT:CLRC;6青0SUBBA,R2;基准数与读出数比较JNCNEXT;C=0,(A)(R2),转移到 NEXTMOVA,R2;C=1,(A)送 R2MOVR1,A;更换

32、基准值DJNZR7,LOOP;判断搜索次数MOVMAX,R1;搜索结束,保存最大值SJMP$;停PCEND八.实验报告要求1. 按照上述步骤写出实验报告;2. 写出完成实验要求的程序清单。实验6数值排序程序设计一. 实验目的1. 掌握无符号数从大(小)到小(大)排序程序的设计方法。二. 实验设备及器件1. PC机一台2. QTH仿真器一台三. 实验内容1. 在内部RAM 30H开始的连续10个单元内存放着“28 59 74 CE 9D 61 AF 8B 2A 6D”10个无符号数,编写一段程将这些数从大到小排列,存放在内部RAM 30H单元 开始的10个连续单元内。四. 实验要求1. 内部RA

33、M数据存储区的数据,可通过修改QTH仿真软件的内部数据存储区Dat的 直接地址单元实现;也可以利用查表程序来完成;2. 内部RAM存储数据可以自定;3 .本实验要求从大到小排序。3. 在QTH 2003仿真软件环境,完成实验程序的编写与仿真运行。五. 实验步骤1. 在QTH2003软件仿真环境下,输入参考程序,建立新的仿真项目,运行实验程序, 完成上述功能;2. 对内部RAM 30H39H进行初始化(注意:修改RAM数据时输入法必须是“中文 (中国)”):打开外部RAM (Memory窗口 Data选项卡)存储区,选中30H-39H单元,将其初值“00”修改成 “28 59 74 CE 9D

34、61 AF 8B 2A 6D”,如图 8-6-1 所示;QIE- LKFL.ASI-二追 QIE- LKFL.ASI.gurw ss(v:i i(li ffia 岫& ft爵也)智口四 M篷 F三曲三 55(1) L 耳二:.?力_: K- aHS I| Qi H|同赢扃悄9日|tWEjF需幽矗E -曲厄画胃&法性哥顷声! =1或面Idi 值最 03fl h rntjgj应而同神|国町|1.虽示凿式目距t列成EG二也址:DD10皿DU000DDDD。00DODOHi 鼻DD2QDEIDO000DODMCODDDOOi皿骊2B59CT50LAFBB2AflF_I1DffiTA BJFFE(L1S

35、b 位,2RC0CD3H 舞IP START 1E0fL+ lII融0ofeCdOTDI口宙 RT: NCUR1 .葛U曲Ofleso o1mrd.畤叫14 如二KY.NEJT : WU。见明 _L七|-一顼矽,11同|剧:-誓I,.I:如 EhJk5L H iOTL 旧11fl 罪kSSBffiLY DAIKITE 0 YAJOfSiL5L UF1 OBJ tE- Ininn y执H脚:口时阎.QDtsbi 2T. C*L 胡_j膻胃可 ait: do003P W: IF 9。14 6H 61 59 ZA 2B M 00 叩:JR-:代归.U_执H脚:卸时目:L醐叫旧Ld Zi.图8-6-1

36、内部RAM初始化结果图8-6-2参考程序1运行结果3. 单步运行参考程序,观察A、R0、R1特殊功能寄存器及03H39H内存单元数值的 变化情况,如图8-6-2所示;4. 运行参考程序2,可得图8-6-3、图8-6-4,比较图8-6-1与图8-6-3、图8-6-2与图 8-6-4。BEQIH 吱超雎尊-tTFI.13口回冈答蚪旧直亏值项目iei m 超也艘回SD(w)- -J爵5叫舌厄面胃敝2COUNTER EU PHs.a.悟.无肉,1,DSCIBIUHSJI*S1AIT31 f Q31 Q5oig mfl E*5Tr: I13U CNm.NIB,ijiiitTAtni r&二2曾园E目R切

37、B p前一上:如 制is糖-Um.151番女某之圭L T= L软* *1 轻. H盲oS日顽蚯亩丽3 3 5 #匝通.靳古.|告.宜.冉38T 1U.DKi.口 WLi&;SHlrioi但拓 y1叫制 iofNOT: LIMP STIIPHOLE: M北 I,同h 5LLWill, flAFII. fill-,匚I 厂= 1”心也1捌 D iUFI.WIIB assdiilt rarim 1L UFLfflJ to li,打#既ii e 阿,:.|CODOClIdDDIICO 00DDDD0000叩DO aOEfi-S8974CEW-6L IFftfi-1EG000000 DljiOU0000

38、00DOLDJJi00WLDJ0000ODJ门琴.括雁; E: . l.H .j.: j.:.仕一:_ U-:l. Ill.JJ JJv:,: * 给._:1 二:图8-6-4参考程序2运行结果1. 预习教材相关章节,掌握数据排序程序的编写要点;2. 写出预习报告。七.参考程序1. 实验参考程序1流程图如图8-6-5所示。2. 参考程序1DATA_BUFF EQU 50HORG0000HSJMPSTARTORG0030HSTART:MOVR1,#31H;比较值地址(第二个数地址)31H送R1MOVR0,#30H;基准值地址(第一个数地址)30H送R0NEXT:MOVA,R0;R0指向的地址单元

39、内容送ALOOP1:MOVDATA_BUFF,R1;R1指向的地址单元内容送DATA_BUFFCJNEA,DATA_BUFF,NEQ;(A)商DATA_BUFF)转到 NEQSJMPNEXT1;(A)= (DATA_BUFF),不交换,转到 NEXT1NEQ:JNCNEXT1;C=0,即 (A) (DATA_BUFF)不交换,转到NEXT1XCHA,DATA_BUFF;C=1,即(A) (DATA_BUFF)交换MOVR0,A;较大的数为基准值,送R0指向的地址单元MOVR1,DATA_BUFF;较小的数送R1指向的地址单元NEXT1:INCR1;取下一个比较值数据地址CJNER1,#3AH,

40、LOOP1;(R1)3AH(即 R1没指向第11个地址单元),继续CJNER0,#38H,GO_ON;(R0)3AH(即 R0没指向第9个地址单元),继续SJMPSTOP;(R0)=3AH(即 R0已指向第9个地址单元),结束GO_ON:INCR0;取下一个基准值地址MOVA,R0;下一个基准值地址送AMOVR1,A;下一个基准值地址送R1INCR1;R1+1,保证下一轮基准值从相邻的比较值开始比较SJMPNEXT;转到NEXT,进行下一轮比较STOP:SJMPSTOPEND3.实验参考程序2DATA_BUFFCOUNTEREQU 50HEQU 51HORG0000HSJMPSTARTORG0

41、030HSTART:MOVDPTR,#TABLE;数据块存储首地址送DPTRMOVR0,#0;R0 清 0MOVA,R0;A清0MOVR7,#10;计数器R7置初值10MOVR1,#30H;数据块存放首地址30H送R1LOOP:MOVCA,A+DPTR;查表,取数送AMOVR1,A;查表数据存放于R1指定地址INCDPTR;DPTR 加 1MOVA,R0;A清0INCR1;存放地址R1加1DJNZR7,LOOP;数器R7不为0,继续查表MOVR1,#31H;以下部分与参考程序1相同MOVR0,#30H;注释部分请参照参考程序1NEXT:MOVA,R0LOOP1:MOVDATA_BUFF,R1CJNEA,DATA_BUFF,NEQSJMPNEXT1NEQ:JNCNEXT1XCHA,DATA_BUFFMOVR0,AMOVR1,DATA_BUFFNEXT1:INCR1CJNER1,#3AH,LOOP1CJNER0,#38H,GO_ONSJMPSTOPGO_ON:INCR0MOVA,R0MOVR1,AINCR1MOVDATA_BUFF,R0SJMPNEXTSTOP:SJMPSTOPTABLE:DB28H,59H, 74H,0CEH, 9DH, 61H,0AFH, 8BH,2AH,6DHEND八. 实验报告要求1. 按照上述步骤写出实验报告;2. 写出完成实验要求的程序清单。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!