第四章汇编语言程序设计

上传人:枫** 文档编号:507986716 上传时间:2022-09-29 格式:DOCX 页数:25 大小:55.62KB
返回 下载 相关 举报
第四章汇编语言程序设计_第1页
第1页 / 共25页
第四章汇编语言程序设计_第2页
第2页 / 共25页
第四章汇编语言程序设计_第3页
第3页 / 共25页
第四章汇编语言程序设计_第4页
第4页 / 共25页
第四章汇编语言程序设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第四章汇编语言程序设计》由会员分享,可在线阅读,更多相关《第四章汇编语言程序设计(25页珍藏版)》请在金锄头文库上搜索。

1、第四章 汇编语言程序设计1、编程将片内40H60H单元中的内容送到以3000H为首的存储区内。答:MOVR1,#40HMOVR2,#21HMOVDPTR,#3000HL1:MOVA,R1MOVXDPTR,AINCR1INCDPTRDJNZR2,L12、编程计算下列算式的程序(1)23H+45H+ABH+03H=MOVA,#23HADDA,#45HADDA,#0ABHXCHA,B;溢出处理ADDCA,#00HXCHA,BADDA,#03H;A中为结果低位,B中为高位(2)CDH+15H-38H-46H=MOVA,#0CDHADDA,#15HSUBBA,#38HSUBBA,#46H(3)1234H

2、+8347H=MOVA,#34HADDA,#47HMOV30H,AMOVA,#12HADDCA,#83HMOV31,A;30H存结果低位,31H存结果高位(4)AB123H-43ADCH=CLRCMOVA,#23HSUBBA,DCHMOV30H,AMOVA,#0B1HSUBBA,#3AHMOV31H,AMOVA,#0AHSUBBA,#04HMOV32H,A;30H为低位,32H为高位3、设有两个4位BCD码,分别存放在23H、22H单元和33H、32H单元中,求他们的和,并送入43H、42H单元中(低位在低字节,高位在高字节)。答:MOVA,22HADDA,32HMOV42H,AMOVA,23

3、HADDCA,33HMOV43H,A4、略5、编程计算片内RAM区50H59H单元中数的平均值,结果存放在5AH中。答:MOVR0,#8MOVR1,#50HMOVA,#00HL1:ADDA,R1INCR1DJNZR0,L1MOVB,#8DIVABMOV5AH,A6、编写计算下式的程序。设乘积和平方结果均小于255。a 、b值分别存在片外3001H和3002H单元中,结果存于片外3000H单元中。(1) MOVDPTR,#3001HMOVXA,DPTRMOV30H,A;a暂存30H单元INCDPLMOVXA,DPTRCJNEA,30H,L1;是否a=bMOVA,#25SJMPSAVEL1:JNC

4、L2MOVB,30HMULABSJMPSAVEL2:MOVB,AMOVA,30HDIVABSAVE:MOVDPTR,#3000HMOVXDPRT,A(2) MOVDPTR,#3001HMOVXA,DPTRMOV30H,AINCDPTRMOVXA,DPTRADDA,30HMOVB,AMULAB; (ab)2MOV31H,ACJNEA,#10,L1SJMPSAVEL1:JCL2CLRCSUBBA,#10SJMPSAVEL2:ADDA,#10SAVE:MOVDPTR,#3000HMOVCDPTR,A7、设有两个长度均为15的数组,分别存放在以200H和210H为首地址的存储区中,试编程求其对应项之和

5、,结果存放到以220H为首地址的存储区中。答:MOVDPH,#02HMOVR1,#15MOVR2,#00H; 数组1首地址低位MOVR3,#10H; 数组2首地址低位MOVR4,#20H; 和首地址低位L1:MOVDPL,R2MOVXA,DPTRMOVR1,AMOVDPL,R3MOVXA,DPTRADDA,R1MOVDPL,R4MOVXDTPR,AINCR2INCR3INCR4DJNZR1,L1SJMP$8、设有100个无符号数,连续存放在以2000H为首地址的存储区中,试编程统计正数、负数和零的个数。答:MOV30H,#00H;正数计数器MOV31H,#00H;负数计数器MOV32H,#00

6、H;零计数器MOVDPTR,#2000HMOVR1,#100L4:MOVXA,DPTRINCDPTRCJNEA,#0,L1INC32HSJMPL2L1:JCL3INC30HSJMPL2L3:INC31HL2:DJNZR1,L4SJMP$9、将片外数据存储器地址为1000H1030H的数据块,全部搬迁到片内RAM 30H60H中,并将原数据块区域全部清零。答:MOV R0,#30HMOV R2,#31HMOV DPTR ,#1000HLP:MOVX A,DPTRMOV R0,AAND A,#00HMOVX DPTR,AINC R0INC DPTRDJNZ R2,LPSJMP$10、试编写一子程序

7、,是R1、R0指向的两个片外RAM连续单元中的高4位二进制数,合并成一个字节,装入累加器A中。已知R0指向低地址,并要求该单元高四位放在A中高四位。答:MOVXA,R1ANLA,#0F0HSWAPAMOVR2,AMOVXA,R0ANLA,#0F0HORLA,R211、试编程把以2040H为首地址的连续50个单元的无符号数按降序排列,存放到以3000H为首地址的存储区中。答:MOVR2,#50MOVR3,#20HMOVR4,#40H;源地址MOVR5,#30HMOVR6,#00H;目的地址SEND:MOVDPH,R3;SEND将2040H数据块移入3000H存储区MOVDPL,R4MOVXA,D

8、PTRINCDPTRMOVR3,DPHMOVR4,DPLMOVDPH,R5MOVDPL,R6MOVXDPTR,AINCDPTRMOVR5,DPHMOVR6,DPLDJNZR2,SENDMOVR2,#49;重复次数CMP1:MOVDPTR,#3000HMOVR3,#49;比较次数CMP2:MOVXA,DPTRMOVB,AINCDPTRMOVXA,DPTRCJNEA,B,L1L1:JCNOMOVEMOV30H,ACLRCMOVA,DPLSUBBA,#01HMOVDPL,AMOVA,30HMOVXDPTR,AINCDPTRMOVA,BMOVXDPTR,ANOMOVE:DJNZR3,CMP2;50个数

9、重复一遍?DJNZR2,CMP1;排序结束?LJMP$12、试编一查表程序,从首地址为2000H,长度为100的数据块中找出ASCII码为A,将其地址送到20A0H和20A1H单元中。答:MOVDPTR,#2000HMOVR2,#100GO_ON:MOVXA,DPTRCJNEA,#41H,IFENDMOVA,DPHMOVB,DPLMOVDPTR,#20A0HMOVXDPTR,AINCDPTRXCHA,BMOVXDPTR,ASJMPOVERIFEND:INCDPTRDJNZR2,GO_ONOVER:SJMPOVER13、设在200H204H单元中,存放5个压缩BCD码,编程将他们转换成ASCII

10、码,存放到以205H单元为首地址的存储区。答:MOVR2,#05HMOVR3,#02HMOVR4,#00HMOVR5,#02HMOVR6,#05HCHLP:MOVDPH,R3MOVDPL,R4MOVXA,DPTRINCDPTRMOVR3,DPHMOVR4,DPLMOVB,ASWAPAANLA,#0FHORLA,#30HMOVDPH,R5MOVDPL,R6MOVXDPTR,AINCDPTRMOVA,BANLA,#0FHORLA,#30HMOVXDPTR,AMOVR5,DPHMOVR6,DPLDJNZR2,CHLP14、有一无符号数据块长度在30H单元中,其首地址为31H单元,求出数据块中最大值,

11、并存入40H中。答:MOVR0,#31HMOVR1,30HMOV40H,#00HLOOP:MOVA,R0CJNEA,40H,L1SJMPAGAINL1:JNCL2SJMPAGAINL2:MOV40H,AAGAIN:INCR0DJNZR1,LOOPSJMP$15、略16、在以2000H为首地址的存储区内,存放20个用ASCII码表示的09之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式存在3000H3009H单元中。答:MOVR2,#10MOVR3,#20HMOVR4,#00HMOVR5,#30HMOVR6,#00HLP:MOVDPH,R3MOVDPL,R4MOVXA,DPTRANLA,#0FHSWAPAXCHA,BINCDPTRMOVXA,DPTRANLA,#0FHORLA,BINCDPTRMOVR3,DPHMOVR4,DPLMOVDPH,R5MOVDPL,R6MOVXDPTR,AINCDPTRMOVR5,DPHMOVR6,D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号