ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:134.81KB ,
资源ID:16001126      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16001126.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机实验报告Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机实验报告Word文档格式.docx

1、 (通过 R0 的进位控制) 3.两个十六位数加法程序: 把第一个十六位无符号数的地八位和高八位分别存于 20H 和 21H 中, 把第二个十六位无 符号数的地八位和高八位分别存于 30H 和 31H 中,对 20H 和 30H 中的两个低八位进行 ADD 加法操作, 结果存于 R4 中; 然后对 21H 和 31H 中的两个高八位进行 ADDC 带进位的加法操作, 结果存于 R3 中.然后将累加器 A 清零,并和#00H 进行 ADDC 带进位的加法操作,结果产生进位数并存于 R2 中,程序结束。三、资源分配1. 字节拆分、合并程序:片内 30H 单位存放原 BCD 码,31H 和 32H

2、存放拆分后的两个 ASCII 码,33H 存放合并后的 BCD 码。2. 数据块填充程序:R0 作为计数器,DPTR 作为数据指针,片外RAM空间从 7000H 开始填充。3. 两个十六位数加法程序:20H,21H: 第一个数的低八位和高八位 30H,31H:第二个数的低八位和高八位 R4:加法结果的低八位 R3:加法结果的高八位 R2:加法结果的进位四、流程图 1.字节拆分、合并程序 2.数据块填充程序 3.两个十六进制数相加程序五、源代码 (含文件头说明、语句行注释)1.字节拆分、合并程序File name:Description: 1字节BCD码转换为2字节ASCII 2字节ASCII码

3、转化为1字节BCD码Source used: 30H: BCD data 31H, 32H:ASCII data 31H, 32H -33H ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV SP, #40H ;赋堆栈指针 MOV 30H, #49H ;30H单元赋值 MOV R0, #32H ;R0指针赋值 MOV R0, #0 ;32H单元清零 MOV A, 30H XCHD A, R0 ;拆分字节 ORL 32H, #30H ;转换为ASCII SWAP A ORL A, #30H ; MOV 31H, A ;结果存于31H单元 MOV A, 31H ;从31

4、H单元取值 ANL A, #0FH ;转换为BCD SWAP A MOV 33H, A ;结果存于33H单元MOV A, 32H ;从32H单元取值 ORL 33H, A ;合并字节 HERE: SJMP HERE ;踏步 END 将片外RAM 7000H-70FFH单元按一定规律填充 R0: 计数器 DPTR: 片外数据指针 ORG 0000H LJMP MAIN ORG 0100H MOV SP,#40HFILL: CLR A ;A寄存器清零MOV R0, #00H ;设循环计数器 MOV DPTR, #7000H ;设数据指针FILL1: MOVX DPTR, A ;传送到片外RAM I

5、NC A ;A内容加1INC DPTR ;修改数据指针 INC R0 ;修改循环计数器 CJNE R0, #00H, FILL1 ;判断是否结束 SJMP HERE ;原地踏步 ORG 0000H LJMP MAIN CLR C ;进位清零 MOV 20H,#11H ;赋值 MOV 21H,#19H MOV 30H,#90H MOV 31H,#09H MOV R0,#20H ;置数据指针 MOV R1,#30H MOV A,R0 ;取第一个数低位 ADD A,R1 ;两位数低位相加 MOV R4,A ;存“和”低位 ADDC A,#00H ;处理地位相加进位 INC R0 ;修改指针 INC

6、R1取第一个数高位 ADDC A,R1 ;两数高位相加 MOV R3,A ;存“和”高位 CLR A ADDC A,#00H ;处理高位相加进位 MOV R2,A ;最终进位存于R2 SJMP HERE ; END六、程序测试方法与结果测试方法:单步调试观察寄存器变量和片内RAM的存储空间。结果如图:性能分析:该程序能很方便地实现将一个BCD码拆分为两个ASCII码以及将两个ASCII码合并成一个BCD码的功能。利用程序的运行和停止控制来观察最终的寄存器变量和片内RAM的存储空间。从寄存器变量DPTR最后的取值(7100H)来看,该程序能实现片外RAM从7000H到70FFH的数据填充。程序中

7、利用R0从00H到FFH的计数中产生的进位很巧妙地控制了循环的次数。3.两个十六进制数相加手动输入两个加数,运行程序,观察结果是否正确。在调试过程中,跟踪A,R2,R3,R4的值,看是否与预期相同。结果:输入两个十六进制数为1911H和0990H,得出合数为22A1H,进位为0,各项指标均与预期相同,程序正确。七、思考题1 怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly 窗口有何作用?(1)选择Debug下的Start/Stop Debug Session,在界面的左侧会出先程序代码的空间地址内容(2)Disassembly窗口可以显示编译之后的汇

8、编代码2. 字节拆分、合并还有哪些方法,举一例说明(1)字节拆分可以利用与运算ANL,例如将30H单元中的数据从中间拆分,低字节存于31H,高字节存于32H:MOV A, 30H ANL A, #0FH MOV 31H, A MOV A,30H ANL A, #F0HMOV 32H,A (2)合并字节可以利用或运算ORL,例如将31H单元中的数据和32H单元中的数据合并,结果存放于30H中:MOV A,31H SWAP AORL A,32H MOV 30H,A3. 若按递减1规律填充数据块,应如何修改程序?修改后程序如下MOV R0, #FFH ; MOV DPTR, #70FFH ; DEC

9、 A ;A内容减1DEC DPTR ; DEC R0 ; CJNE R0, #FFH, FILL1 ; 4.若从7020H单元开始,连续填充10个字节,应该如何修改程序? MOV SP, #40H MOV R0, #00H ; MOV DPTR, #7020H ; INC DPTR ; CJNE R0, #10H, FILL1 ;5. 若完成双字节BCD码加法,应如何修改程序? ORG 0000H ORG 0100H MOV SP, #40H MOV 20H, #0ABH MOV 21H, #99H MOV 30H, #0CDH MOV 31H, #0EFH MOV A, 20H ADD A, 30H DA A MOV R4, A MOV A, 21H ADDC A, 31H MOV R3, A CLR A ADDC A, #00H MOV R2, A SJMP $ END本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全了解学校相关规定,如若违反,愿意承担其后果。签字: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1