指出下列程序的结果 ORG 1000H MUL AB mov a 30h30H,A mov a 30h31H,B SJMP $

【图文】课后习题3、4_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
课后习题3、4
上传于||文档简介
&&三、四章答案
大小:222.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
单片机原理与应用技术 重点程序(高惠芳)
下载积分:2000
内容提示:单片机原理与应用技术 重点程序(高惠芳)
文档格式:PPT|
浏览次数:0|
上传日期: 02:17:47|
文档星级:
该用户还上传了这些文档
单片机原理与应用技术 重点程序(高惠芳)
官方公共微信【图文】汇编指令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
上传于||文档简介
大小:276.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢4章练习-工作总结范文网
全站搜索:
您现在的位置:&>&&>&金融考试
[例题1] 已知片内RAM 30H~3FH单元中存放 了16个二进制无符号数,编制程序求它们的累 加和,并将其和数存放在R4, R5中。 解: 每次求和的过程相同,可以用循环程序实 现。 16 个二进制无符号数求和,循环程序的循 环次数应为16次(存放在R2中),它们的和放 在R4, R5中(R4存高8位,R5存低8位)。程序 流程图如下图所示。
程序如下:START: ORG 1000H MOV R0, #30H MOV R2, #10H ; 设置循环次数(16) MOV R4, #00H ; 和高位单元R4清0 MOV R5, #00H ; 和低位单元R5清0 MOV A, R5 ; 和低8位的内容送A ADD A, @R0; 将@R0与R5的内容相加并产生进位Cy MOV R5, A ; 低8位的结果送R5 CLR A ; A清 0 ADDC A, R4 ; 将R4的内容和Cy相加 MOV R4, A ; 高8位的结果送R4 INC R0 ; 地址递增(加1) DJNZ R2, LOOP ; 若循环次数减 1 不为 0 ,则转到 LOOP 处循 否则,循环结束 SJMP $ ENDLOOP:环; [例题2] 编制程序实现c=a2+b2,(a, b均为1位十进制数)。 解:计算某数的平方可采用查表的方法实现,并编写成子程序。只要两次调用子程 序,并求和就可得运算结果。设a, b分别存放于片内RAM的30H, 31H两个单元中,结 果c存放于片内RAM的40H单 元。程序流程图如右图所示。 主程序如下: ORG 1000H SR: MOV A, 30H ; 将30H中的内容a送入A ACALL SQR ; 转求平方子程序SQR处执行 MOV R1, A ; 将a2结果送R1 MOV A, 31H ; 将31H中的内容b送入A ACALL SQR ; 转求平方子程序SQR处执行 ADD A, R1 ; a2+b2结果送A MOV 40H, A ; 结果送40H单元中 SJMP $ ; 程序执行完,“原地踏步” 求平方子程序如下(采用查平方表的方法): SQR: INC A MOVC A, @A+PC RET TABLE: DB 0, 1, 4, 9, 16 DB 25, 36, 49, 64, 81 END [例题3] 求符号函数的值。已知片内RAM的 40H单元内有一自变 量X,编制程序按如下条件求函数Y的值,并将其存入片内RAM 的41H单元中。Y=1 0 -1X&0 X=0 X&0解:此题有三个条件,所以有三个分支程序。这是一个三分支归一的条件转移问题。 X是有符号数,判断符号位是0还是1可 利用JB或JNB指令。判断X是否等于0则直接 可以使用累加器A的判0指令。 程序流程图如右图所示。 ORG 1000H START: MOV A, 40H JZ COMP ; 将X送入A中 ; 若A为0,转至COMP处JNB ACC.7, POST ; 若A第7位不为1(X为正数),则程序转到POST处,否则(X为负数)程序往下执行 MOV A, #0FFH ; 将?1(补码)送入A中SJMP COMPPOST: MOV A, #01H; 程序转到COMP处; 将+1送入A中 ; 结果存入YCOMP: MOV 41H, ASJMP $END; 程序执行完,“原地踏步” 散转程序设计[例题4] 编制程序用单片机实现四则运算。 解: 在单片机的键盘上设置“ +、-、×、÷”四个运 算按键。其键值存放在寄存器 R2 中,当( R2 )= 00H 时 做 加 法 运 算 , 当 ( R2 ) = 01H 时 做 减 法 运 算
上一篇: 下一篇:
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
下面是一段89c51程序,二进制转十进制的子程序,请解释下每条语句的意思BIN2SJZ: MOV A,40H
MOV B,#100 DIV AB MOV A,B MOV B,#10 DIV AB MOV 30H,A
MOV 31H,B MOV A,41H
MOV B,#100 DIV AB MOV A,B MOV B,#10 DIV AB MOV 32H,A
MOV 33H,B RET
BIN2SJZ: MOV A,40H;40H单元中的数送到寄存器A中
MOV B,#100;寄存器B赋值为100 DIV AB:A/B结果放在A(商)B(余数)除100的作用是想得到百位数;这里似乎丢了一句或者根本不用写,因为百位数没保存 MOV A,B;余数(包含十位个位)送到A中 MOV B,#10;B赋值10 DIV AB;A/B MOV 30H,A;A中的商(十位数)送30H单元
MOV 31H,B;B中的余数(个位数)送31H单元;下面的和上面一样,只是这次得到的是41H单元中的数,变为十进制后十位存32H,个位存33H MOV A,41H
MOV B,#100 DIV AB, MOV A,B MOV B,#10 DIV AB MOV 32H,A
MOV 33H,B RET
为您推荐:
扫描下载二维码

我要回帖

更多关于 ljmp ajmp sjmp的区别 的文章

 

随机推荐