第五章-汇编语言程序设计.doc

上传人:marr****208 文档编号:145015824 上传时间:2020-09-15 格式:DOC 页数:12 大小:75KB
返回 下载 相关 举报
第五章-汇编语言程序设计.doc_第1页
第1页 / 共12页
第五章-汇编语言程序设计.doc_第2页
第2页 / 共12页
第五章-汇编语言程序设计.doc_第3页
第3页 / 共12页
第五章-汇编语言程序设计.doc_第4页
第4页 / 共12页
第五章-汇编语言程序设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

1、第五章 汇编语言程序设计 51 编程将片内40H一60H单元中内容送到以3000H为首的存特区中。答 :按题 目 要求编程如下 : MOV Rl,#40HMOV R0,#20HMOV DPTR,#3000HLI: MOV A,RlMOVX DPTR,AINC R1INC DPTRDJNZ R0,Ll52 编写计算下列算式的程序。23H+45H+ABH+03H=CDH十l5H-38H-46H=1234H+8347H=ABl23H-43ADCH=答:按题目要求编程如下:MOV A,#23H ADD A,#45H ADD A,#0ABH XCH A,B ;相加后有溢出处理 ADDC A,#00H X

2、CH A ,B ADD A,#3H ;结果A中是低位,B中是高位 MOV A,#0CDHADD A,#15H SUBB A,#t38HSUBB A,#46H MOV A,#34H ADD A,#047H MOV 40H,AMOV A,#12H ADDC A ,# 83HMOV 4lH ,A ;结果40H中是低位,41H中是高位 CLR C MOV A,#23H SUBB A,#0DCH MOV 40H,A MOV A,#0B1H SUBB A,03AH MOV 41H,A MOV A,#0AH SUBB A,#04H MOV 42H,A ;结果40中是低位,42H中是高位 53 编程计算片由R

3、AM区5OH57H八个单元中数的算术平均值,结果存放在5AH中。答:在本题计算中要求8个单元的和小于255。按题目要求编程如下: MOV R0,#50H MOV R1,#8 MOV A,#0LI: ADD A,R0 INC R0 DJNZ R1,L1 MOV B,#8 DIV AB MOV 5AH,A 54 编写计算下列的程序,设乘积和平方结果均小于255。a,b值分别存在300H和3002H单元中,结果存于片外3000H单元中。 25 ,a=b Y=a*b , ab(a+b) 2+10 , (a+b)210答:按题目要求编程 MOV DPTR,#3001H MOVX A,DPTR ;取a值

4、MOV 30H,A ;a值暂存储在30H JNC DPL MOVX A,DPTR ;取 b值CJNE A,30H,L1 ; a=b?MOV A,#25SJMP EEL1:JNC L2MOV B,30HMUL ABSJMP EEL2:MOV B,AMOV A,30HDIV ABEE:MOV DPTR,#3001HMOVX DPTR,A MOV DPTR,#3001HMOVX A,DPTRMOV 30HINC DPLMOVX A,DPTRADD A,30HMOV B,AMUL ABMOV 31H,ACJNE A,#10,L1SJMP EEL1:JC L2CLR CSUBB A,#10SJMP EE

5、L2:ADD A,#10MOV DPTR,#3000HMOVX DPTR,A 55 设有两个长度均为15的教组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放列以2200H为首的存储区中。答:在本题中假设两数之和不超过255。按题目要求编程如下:MOV DPTR,#2000HMOV Rl,#15LI: MOV DPH,#20HMOVX A,DPTRMOV R2,AMOV DPH,#2lHMOVX A,DPTRADD A,R2MOV DPH,#22HMOVX DPTR,AINC DPLDJNZ Rl,LlSJMP $ 56 设 有100个有符号教,连续存放在以2

6、000H为首地址的存储区中试编程统计其中正数、负数、零的个数。答:在本题中设正数、负数、零分别存放在30H、31H、32H单元中。按题目要求编程如下MOV 30H,#0MOV 31H,#0MOV 32H,#0MOV DPTR,#2000H ;设数据区首地址MOV Rl,#tl00 ;设数据区长度L4:MOVX A,DPTRINC DPTRCJNE A,#0,L1INC 32HSJMP L2LI:JC L3INC 30HSJMP L2L3:INC 31HL2:DJNZ R1,L4SJMP $ 57 请将片外教据存储器地址为1000H1030H的教据块,全部搬迁到片内RAM30H60H中,并将原教

7、据块区域全部清0。答:按题目要求编程如下MOV DPTR,#1000HMOV Rl,#30HMOV R0,#30HLI :MOVX A,DPTRMOV R0,AMOV A,#0MOVX DPTR,AINC DPLINC R0DJNZ R1,L158 试编写一子程序,使间寄存器Rl所指向的两个片外RAM连续单元中的高4往二进制数,合并为一个字节装入累加器A中。 己知Rl指向低地址,并要求该单元高4位放在A的低4位中。答:按题目要求编程如下MOVX A,Rl ;将低字节读入ANL A,#0F0H ;保留高4位SWAP A ;交换到低4位MOV B,A ;暂存INC R1 ;改变地址MOVX A,R

8、l ;将高字节读入ANL A,#0F0H ;保留高4位ORL A,B ;组合成新字节RET ;返回59 试编程把以2040H为首地址的连续50个单元中的无符号数按降存排列,存放到以3000H为首地址的存储区中。答:该程序采用冒泡(下沉)法,也可用别的方法;排列前首先将数据搬到目的存储单元。按题目要求编程如下: MOV R2,#50 ;排序字节数 MOV R3,#20H ;源地址暂存人R3、R4MOV R4,#40H ;目的地址暂存人R5、R6MOV R5,#30H MOV R6,#00HSEND_LP: MOV DPH,R3 MOV DPL,R4 MOVX A,DPTR INC DPTR MO

9、V R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX DPTR, A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,SEND_LP MOV R2,#49;重复次数CMP_LP1: MOV DPTR,¥3000H ;起始地址MOV R3,#49 ;比较次数CMP_LP2; MOVX A,DPTR MOV B,A INC DPTR MOVX A,DPTR CJNE A,B,Ll ;相邻两个数比较 LI: JC NO_CHAGE ;A小,不交换转NO_CHAGE MOV 30H,A ;准备交换 CLR C MOV A,DPL S

10、UBB A,#0lH MOV DPL,A MOV A,30H MOVX DPTR,A INC DPTR MOV A,B MOVX DPTR,ANO_CHAGE: DJNZ R3,CMP_LP2 ;50个数重复一遍? DJNZ R2,CMP_LPl ;排序结束? LJMP $ 510 试编一查表程序,从首地址为2000H和长度为100的数据块中找出ASCII吗A,将其地址送列20A0H和20AlH单元中。答:按题目要求编程如下: MOV DPTR,#2000H ;数据块首地址 MOV R2,100 ;查找长度 GO_ON: MOVX A,DPTR ;取一个数 CJNE A,#A,IFEND ;是否等于A? MOV A,DPH ;是,将地址存人指定单元 MOV B,DPL MOV DPTR,#20A0H MOVX DPTR,A INC DPTR XCH A,B MOVX DPTR,A RETIFEND: INC DPTR ;不是,下一个 DJNZ R2,GO_ON ;末查找完,继续 R

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

当前位置:首页 > 高等教育 > 其它相关文档

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