资源描述:
《第五章-汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章汇编语言程序设计5·1编程将片内40H一60H单元中内容送到以3000H为首的存特区中。答:按题目要求编程如下:MOVRl,#40HMOVR0,#20HMOVDPTR,#3000HLI:MOVA,@RlMOVX@DPTR,AINCR1INCDPTRDJNZR0,Ll5.2编写计算下列算式的程序。①23H+45H+ABH+03H=②CDH十l5H-38H-46H=③1234H+8347H=④ABl23H-43ADCH=答:按题目要求编程如下:①MOVA,#23HADDA,#45HADDA,#0ABHXCHA,B;相加后有溢出处理A
2、DDCA,#00HXCHA,BADDA,#3H;结果A中是低位,B中是高位②MOVA,#0CDHADDA,#15HSUBBA,#t38HSUBBA,#46H③MOVA,#34HADDA,#047HMOV40H,AMOVA,#12HADDCA,#83HMOV4lH,A;结果40H中是低位,41H中是高位④CLRCMOVA,#23HSUBBA,#0DCHMOV40H,AMOVA,#0B1HSUBBA,03AHMOV41H,AMOVA,#0AHSUBBA,#04HMOV42H,A;结果40中是低位,42H中是高位5·3编程计算片由RAM区5
3、OH~57H八个单元中数的算术平均值,结果存放在5AH中。答:在本题计算中要求8个单元的和小于255。按题目要求编程如下:MOVR0,#50HMOVR1,#8MOVA,#0LI:ADDA,@R0INCR0DJNZR1,L1MOVB,#8DIVABMOV5AH,A5·4编写计算下列的程序,设乘积和平方结果均小于255。a,b值分别存在300H和3002H单元中,结果存于片外3000H单元中。25,a=b①Y=a*b,ab(a+b)2+10,(a+b)2<10②Y=(a+b)2,(a+b)2=10(a+b)2-10,(a+
4、b)2>10答:按题目要求编程①MOVDPTR,#3001HMOVXA,@DPTR;取a值MOV30H,A;a值暂存储在30HJNCDPLMOVXA,@DPTR;取b值CJNEA,30H,L1;a=b?MOVA,#25SJMPEEL1:JNCL2MOVB,30HMULABSJMPEEL2:MOVB,AMOVA,30HDIVABEE:MOVDPTR,#3001HMOVX@DPTR,A②MOVDPTR,#3001HMOVXA,@DPTRMOV30HINCDPLMOVXA,@DPTRADDA,30HMOVB,AMULABMOV31H,ACJ
5、NEA,#10,L1SJMPEEL1:JCL2CLRCSUBBA,#10SJMPEEL2:ADDA,#10MOVDPTR,#3000HMOVX@DPTR,A5.5设有两个长度均为15的教组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放列以2200H为首的存储区中。答:在本题中假设两数之和不超过255。按题目要求编程如下:MOVDPTR,#2000HMOVRl,#15LI:MOVDPH,#20HMOVXA,@DPTRMOVR2,AMOVDPH,#2lHMOVXA,@DPTRADDA,R2MOVDPH,
6、#22HMOVX@DPTR,AINCDPLDJNZRl,LlSJMP$5·6设有100个有符号教,连续存放在以2000H为首地址的存储区中试编程统计其中正数、负数、零的个数。答:在本题中设正数、负数、零分别存放在30H、31H、32H单元中。按题目要求编程如下MOV30H,#0MOV31H,#0MOV32H,#0MOVDPTR,#2000H;设数据区首地址MOVRl,#tl00;设数据区长度L4:MOVXA,@DPTRINCDPTRCJNEA,#0,L1INC32HSJMPL2LI:JCL3INC30HSJMPL2L3:INC31HL
7、2:DJNZR1,L4SJMP$5·7请将片外教据存储器地址为1000H~1030H的教据块,全部搬迁到片内RAM30H~60H中,并将原教据块区域全部清0。答:按题目要求编程如下MOVDPTR,#1000HMOVRl,#30HMOVR0,#30HLI:MOVXA,@DPTRMOV@R0,AMOVA,#0MOVX@DPTR,AINCDPLINCR0DJNZR1,L15·8试编写一子程序,使间寄存器Rl所指向的两个片外RAM连续单元中的高4往二进制数,合并为一个字节装入累加器A中。己知Rl指向低地址,并要求该单元高4位放在A的低4位中。
8、答:按题目要求编程如下MOVXA,@Rl;将低字节读入ANLA,#0F0H;保留高4位SWAPA;交换到低4位MOVB,A;暂存INCR1;改变地址MOVXA,@Rl;将高字节读入ANLA,#0F0H;保留高4位ORLA