- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题3-1 作业中出现的主要问题: MOV DPTR1,#1000H MOV DPTR2,#2500H MOVX A,@DPTR1 MOVX @DPTR2,A MOV DPTR,#1000H MOV R1,#2500H MOVX A,@DPTR MOVX @R1,A 立即数缺少#号的、自己创造指令的等等 习题3-4 MOV A,35H ;取x CJNE A,#11,NEXT1 ;与11比较,不等于11,转NEXT1 NEXT1:JNC NEXT2 ;大于等于11,转NEXT2 CJNE A,#5,NEXT3 ;小于11,再与5比较,不等于5转NEXT3 NEXT3:JNC NEXT4 ; 无借位(大于等于5),转NEXT4 MOV A,#-1 ;小于5 AJMP NEXT5 NEXT4:MOV A,#0 ;5到10之间 AJMP NEXT5 NEXT2: ADD A,#1 ;大于10 NEXT5:MOV 36H,A SJMP $ END 习题3-4:方法2 X EQU 35H Y EQU 36H ORG 0000H AJMP START ORG 0100H START:MOV A,X CLR C SUBB A,#05H JNC NEXT MOV Y,#0FFH(-1) AJMP DONE NEXT:MOV A,X CLR C SUBB A,#0BH JNC NEXT1 MOV Y,#00H AJMP DONE NEXT1:MOV A,X INC A MOV Y,A DONE:SJMP DONE END 补充:符号函数 MOV A,35H JZ DONE JNB ACC.7,POSI MOV A,#-1(0FFH) SJMP DONE POSI: MOV A,#1 DONE: MOV 36H,A SJMP $ END 不少同学把3-4抄成这个程序? 习题3-6 R0中的8位二进制数转换成ASCII码,存放到片内RAM的30H开始单元。 如何分离出R0的每一位 右移,最低位移入CY中,RLC A MOV R1,#30H MOV R7,#8 MOV A,R0 NEXT: RLC A JC ONE MOV @R1,#30H JMP EXIT ONE: MOV @R1,#31H EXIT: INC R1 DJNZ R7,NEXT SJMP $ ENDR0: 30H 31H 31H 30H … … 36H 30H 37H 31H 习题3-6:方法2 $INCLUDE(C8051F020.INC) X EQU 30H Y EQU 20H ORG 0000H AJMP START ORG 0100H START:MOV DPTR,#TAB MOV SP,#3FH MOV R1,#X MOV Y,#00H MOV A,R0 LOOP:MOV B,#02H DIV AB PUSH ACC MOV A,B MOVC A,@A+DPTR MOV @R1,A POP ACC INC R1 INC Y JNB Y.3,LOOP SJMP $ TAB?:DB ‘0’,’1’ END 习题3-11 用汇编语言编程求两个无符号数据块中最大值的乘积。数据块的首地址分别为片内RAM的60H和70H,每个数据块的第一个字节用来存放数据块的长度。结果存入片内RAM的5FH和5EH单元中,要求求数据块中的最大值用子程序实现。 求最大值的程序参照P84例3.9,注意区别 例3.9数据在片外RAM 例3.9不是子程序结构 SJMP $改成RET 要有子程序名(首行指令语句的标号) 习题3-11 主程序 MOV R0,#60H ACALL MAX MOV B,A;第一个数据块最大值 MOV R0,#70H ACALL MAX MUL AB;两数据块最大值相乘 MOV 5FH,B MOV 5EH,A SJMP $ 子程序: MAX: MOV A,@R0;数据块长度 DEC A MOV R7,A INC R0 MOV A,@R0;第一个数据 LOOP: CLR C MOV B,A INC R0 MOV A,@R0 SUBB A,B;比较,也可以用CJNE JNC NEXT MOV A,B SJMP NEXT1 NEXT
文档评论(0)