第四章汇编语言程序设计_第1页
第四章汇编语言程序设计_第2页
第四章汇编语言程序设计_第3页
第四章汇编语言程序设计_第4页
第四章汇编语言程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章汇编语言程序设计1、编程将片内40HH60H单元中的内容送到以3000H为首的存储区内答: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中为结果低位,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存结果低位,31H存结果高位(4) AB123H-43ADCH=CLRCMOV, A#23HSUBBA, DCHM0V30, HAMOV, A#0B1HSUBBA, #3AHM0V31, HAMOV, A#OAHSUBBA, , #04HMOV32HA; 30H为低位,32H为高位3、设有两个4位BCD马,分别存放在23H 22H单元和33H 32H单元中,求他们 的和,并送入43H、42H单元中(低位在低字节

3、,高位在高字节)。答:MOVA22HADDA, 32HMOV42, HAMOV, A23HADDC, A33HMOV43, HA4、略5、编程计算片内RAMS 50H-59H单元中数的平均值,结果存放在5AH中。答:MOVR, 0#8MOVR, 1#50HMOV, A#00HL1:ADDA, R1INCR1DJNZR, 0 L1MOV, B#8DIVABMOV5A, HA6、编写计算下式的程序。设乘积和平方结果均小于 255o a、b值分别存在片 外3001H和3002H单元中,结果存于片外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、设有两个长度均为15的数组,分别存放在以储 200H和210H为首地址的存区中,试编程求其对应项之和,结果存放到以答:220H为首地址的存储区中。MOVDP, H#02HMOVR, 1 #15MOVR, 2#00H;数组1首地址低位MOVR, 3#10H;数组2首地址低位MOVR, 4 #20H;和首地址低位L1:MOVDP, LR2MOVX, A DPTRMOVR, 1

6、AMOVDP, L R3MOVX, A DPTRADDA, R1MOVDP, L R4MOVXDT, PRAINCR2INCR3INCR4DJNZR, 1 L1SJMP$8设有100个无符号数,连续存放在以2000H为首地址的存储区中,试编 程统计正 数、负数和零的个数。答:MdV30H#00H;正数计数器MOV31H#OOH;负数计数器MOV32H#OOH;零计数器 MOVDPT, R#2000HMOVR, 1#100L4:MOVXA, DPTRINCDPTRCJNEA, #0, L1INC32HSJMPL2L1 :JCL3INC30HSJMPL2L3JNC31HL2:DJNZR1, L4S

7、JMP$9、将片外数据存储器地址为1000H- 1030H的数据块,全部搬迁到片内RAM 30HH 60H中,并将原数据块区域全部清零。答: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连续单元中的高4位 二进 制数,合并成一个字节,装入累加器 A中。已知R0指向低地址,并要求该 单元高四位放在A中高四位。答:MOVX, AR 1AN LA, #0F0H

8、SWAPAMOVR, 2 AMOVX, AR0AN LA, #0F0HORLA, R2存放到11、试编程把以2040H为首地址的连续50个单元的无符号数按降序排列, 以3000H为首地址的存储区中。答:MOVR, 2 #50MOVR, 3#20HMOVR4#40H;源地址MOVR, 5#30HM0VR6#00H;目的地址SEND:MOVDPHR3;SEND 将 2040H 数据块移入 3000H 存储区MOVDP, LR4MOVX, ADPTRINCDPTRMOVR, 3DPHMOVR, 4DPLMOVDP, HR5MOVDP, LR6MOVXDP, TRAINCDPTRMOVR, 5DPHM

9、OVR, 6DPLDJNZR, 2 SENDMOVR2 #49;重复次数CMP1:MOVDP, TR#3000HMOVR, 3 #49;比较次数CMP2:MOVX, ADPTRMOV, BAINCDPTRMOVX, ADPTRCJNEA, B, L1L1:JCNOMOVEMOV30, HACLRCMOV, A DPL SUBBA, #01H MOVDP, LAMOV, A30H MOVXDP, TRAINCDPTRMOV, ABMOVXDP, TRANOMOVE:DJNZ, R3CMP; 2 50 个数重复一遍?DJNZR, 2 CMP; 1 排序结束?LJMP$12、试编一查表程序,从首地址

10、为2000H,长度为100的数据块中找出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、设在200Hs204H单元中,存放5个压缩BCD码,编程将他们转换成ASCII 码,存放到以205H单元为首地址的存储区。答: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、有一无符号数据块长度在30H单元中,其首地址为31H单元,求出数据

12、块中 最大值,并存入40H中。答:MOVR, 0#31 HMOVR, 1 30HMOV40, H#00HLOOP:MOV, AR0CJNEA, 40H, L1SJMPAGAINL1:JNCL2SJMPAGAINL2:MOV40H, AAGAINJNCRODJNZR, 1 LOOPSJMP$15、 略16、在以2000H为首地址的存储区内,存放20个用ASCII码表示的09之 间的 数,试编程,将它们转换成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、试编程实现下列逻辑表达式功能。设 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仆子程序。;单片机时钟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、用程序实现c=a2+b2。设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、 如何实现将内存单元40Hs60H的数逐个对应传到片外2540H- 2560H单 元 中?答:MOVR, 0#40HMOVDPT, R#2540HMOVR, 2#21HL1:MOVA, R0MOVXDP, TRAINCROINCDPTRDJNZR, 2 L1SJMP$23、参考21题24、参考21题25、参考实验程序26、参考实验程序第五章定时/计数器1、89s51单片机内部有几个定时/计数

17、器,他们有哪些专用寄存器组成? 答:89s51单片机内部有两个16位定时/计数器,为定时器0 (TO)和定时 器 1( T1)o在定时器/计数器的16位的计数器是由两个8位的专用寄存器TH0、 TLO, TH1、TL1 组成。2、89S51单片机的定时/计数器有哪几种工作方式,各有什么特点?答:定时器/ 计数器有四种工作方式:方式0,方式1,方式2,方式30其中,方式3只适用 于TOo以TO为例:方式0, 16位寄存器只用了 13位,TLO的高三位未用。由THO 的8位和TLO的低5位组成一个13位计数器;方式1,和方式0的工作相同,唯 一的差别是THO和TLO组成一个16位计数器;方式2,把

18、TLO配置成一个可 以自动恢复初值的8位计数器,THO作为常数缓冲器。THO由软件预置值。当 TLO产生溢出时,一方面使溢出标志TFO置1,同时 把THO中的8位数据重新装 入TLO中;方式3,将使TLO和THO成为两个 相互独立的8位计数器,TLO利 用T。本身的一些控制,它的操作与方式。和方式1类似。而THO被规定为只用作 定时器功能,对机器周期计数,并借 用了 T1的控制位TR1和TF1。在这种情况下 THO控制了 T1的中断。这时T1还可以设置为方式用于任何不需要中断控制 的场合,或者用作串行口的波特率发生器。3、定时/计数器用作定时方式时,其定时时间与哪些因素有关?作为计数时,对外

19、界计数频率有何限制?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号 12分频后提供。定时时间与时钟频率和定时初值有关。定时/计数器作计数时,由于确认1次负跳变要花2个机器周期,即24个振荡 周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24 o 4、当定时器TO用作方式3时,由于TR1位已被TO占用,如何控制定时器T1的 开启和关闭?答:定时器TO用作方式3时,由于TR1位已被TO占用,此时通过控制位C/T切换 其定时或计数器工作方式。当设置好工作方式时,定时器T1自动开始运行,若要停 止,只需送入一个置定时器T1为方式3的方式字。5、已知89s51单片机系统

20、时钟频率为24MHz请利用定时器TO和P1.2输 出矩形 脉冲。矩形波高电平宽度50 P s,低电平宽度350 P So答:ORG1OOOHMOV TMO, D#O2H ;设置工作方式MOV THO # 09CH设置定时器初值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单片机中,已知时钟频率为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、设系统时钟为24MHz试用定时器TO做外部计数器,编程实现每计到1000个脉冲,是T1开始2ms定时,定时时间到后,T0又开始计数,循环往 复。答:MOVTMO国15H;T1定时方式1, T0计数方式1L1:MOVTH, 0 #0FCHMOVTL, 0#18HSETBTROJNBTFO, $CLRTRO C

22、LRTFO MOVTH, 1 # H MOVTL, 1 # H SETBTR1 JNBTF1, $ CLRTR1CLRTF1 LJMPL1 8、略第六章80C51的串行接口 1、什么是串行异步通信?他有哪些特点?有哪几种帧格式?答:串行通信即所传输数据的各位按顺序一位一位的发送或接收。串行通信分为同步和异步两种方式。在异步通信中数据或字符是一帧一帧地传送的。帧定义为一个字符的完 整的通信格式,通常也称为帧格式。它的主要特点:由于异步通信每传送一帧有固定的格式,通信双方只需 按约定的 帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此 外它还能利用校验 位检测错误。帧格式的一般形式是先用

23、一个起始位“0”表示字符的开始,然后是数据位,其 后是奇偶校验位,最后是停止位,用以表示字符结束。2、某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波 特率。答:设每个字符由1个起始位、8个数据位、1个可编程位和1个结束位组成, 其传送波特率为:11bX 3600/60s=660bps3、80C51单片机的串行口由哪些基本功能部件组成?答:80C51单片机的串行口基本功能部件主要有:两个数据缓冲寄存器SBUF一个串行口控制寄存器SCON一个输入移位寄存器。4、80C51单片机的串行口有几种工作方式?几种帧格式?如何设置不同方式的波 特率?答:80C51单片机的串行口有四

24、种工作方式,由串行口控制寄存器中的SM0SM1控制。80c51单片机的串行通信有8位、10位、11位三种帧格式。波特率设置: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用作串行口波特率发生器时,常采用工作方式2?答:在串行通信中,收发双方对发送

25、或接收的数据速率(即波特率)要有一定的约定。串口有四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,有定时器T1的溢出率控制。定时器T1用作串行口波特率发生器时,因为工作方式2是自动重装载方式,因而定时器T1作波特率发生器常采用工作方式2.6、已知定时器T1设置成方式2,用作波特率发生器,系统时钟频率为24MHz求可能 产生的最高和最低的波特率是多少?答:最高波特率: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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论