单片机 数传指令和算数运算指令 软件实验.doc_第1页
单片机 数传指令和算数运算指令 软件实验.doc_第2页
单片机 数传指令和算数运算指令 软件实验.doc_第3页
单片机 数传指令和算数运算指令 软件实验.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 数传指令和算数运算指令编程设计一、 实验目的1 掌握数据块的传送操作和算术运算指令的应用。2 进一步掌握汇编语言设计和调试方法。3 掌握观察窗口的使用方法。4 学会给存储单元赋初值的方法。二、 实验内容1 数据区传送(1)把内部RAM 40H4FH置初值0A0H0AFH;(2)而后把40H4FH内容传送到外部RAM 9800H980FH中;(3)再把 9800H980FH内容传送到 50H5FH中。 2多字节十进制加法加数放在30H开始的单元中(最低位放在30H,按从小到大的顺序存放),被加数和结果存放在20H开始的单元(最低位在20H中),字节数放在2FH中,最高进位位放在位地址7FH单元中。三、 实验步骤1 分别用单步和连续运行方式,调试上述两个程序;2 在执行第二个程序之前,给被加数和加数单元赋初值;3 在观察窗口中观察结果。四、 实验程序清单数据块传送程序 ORG 0000HMAIN: MOV R0,#40H (R0)=40H 2字节 MOV R2,#10H (R2)=10H 2字节 MOV A,#0A0H (A)=0A0H 2字节 A1循环 序号 R2 R0 A PSW PA1: MOV R0, A 1字节 0 10H 40H 0A0H 00H 00H INC R0 1字节 1 0FH 41H 0A1H 01H 01H INC A 1字节 2 0EH 42H 0A2H 01H 01H DJNZ R2, A1 2字节 3 0DH 43H 0A3H 00H 00H 4 0CH 44H 0A4H 01H 01H 5 0BH 45H 0A5H 00H 00H 6 0AH 46H 0A6H 00H 00H 7 09H 47H 0A7H 01H 01H 8 08H 48H 0A8H 01H 01H 9 07H 49H 0A9H 00H 00H 10 06H 4AH 0AAH 00H 00H 11 05H 4BH 0ABH 01H 01H 12 04H 4CH 0ACH 00H 00H 13 03H 4DH 0ADH 01H 01H 14 02H 4EH 0AEH 01H 01H 15 01H 4FH 0AFH 00H 00H 18 00H 50H 0B0H 01H 01H MOV R0, #40H (R0)=40H 2字节 MOV DPTR, #9800H (DPTR)=9800H 3字节 MOV R2, #10H (R2)=10H 2字节 A2循环序号 R2 DPTR R0 A PSW PA2: MOV A, R0 1字节 0 10H 9800H 40H 0A0H 00H 00H MOVX DPTR, A 1字节 1 0FH 9801H 41H 0A1H 01H 01H INC R0 1字节 2 0EH 9802H 42H 0A2H 01H 01H INC DPTR 1字节 3 0DH 9803H 43H 0A3H 00H 00H DJNZ R2, A2 2字节 4 0CH 9804H 44H 0A4H 01H 01H 5 0BH 9805H 45H 0A5H 00H 00H 6 0AH 9806H 46H 0A6H 00H 00H 7 09H 9807H 47H 0A7H 01H 01H 8 08H 9808H 48H 0A8H 01H 01H 9 07H 9809H 49H 0A9H 00H 00H 10 06H 980AH 4AH 0AAH 00H 00H 11 05H 980BH 4BH 0ABH 01H 01H 12 04H 980CH 4CH 0ACH 00H 00H 13 03H 980DH 4DH 0ADH 01H 01H 14 02H 980EH 4EH 0AEH 01H 01H 15 01H 980FH 4FH 0AFH 00H 00H 16 00H 9810H 50H 0B0H 00H 00H MOV R0, #50H (R0)=50H 2字节 MOV DPTR, #9800H (DPTR)=9800H 3字节 MOV R2, #10H (R2)=10H 2字节 A3循环序号 R2 DPTR R0 A PSW PA3: MOVX A, DPTR 1字节 0 10H 9800H 50H 0A0H 00H 00H MOV R0, A 1字节 1 0FH 9801H 51H 0A1H 01H 01H INC DPTR 1字节 2 0EH 9802H 52H 0A2H 01H 01H INC R0 1字节 3 0DH 9803H 53H 0A3H 00H 00H DJNZ R2, A3 2字节 4 0CH 9804H 54H 0A4H 01H 01H 5 0BH 9805H 55H 0A5H 00H 00H 6 0AH 9806H 56H 0A6H 00H 00H 7 09H 9807H 57H 0A7H 01H 01H 8 08H 9808H 58H 0A8H 01H 01H 9 07H 9809H 59H 0A9H 00H 00H 10 06H 980AH 5AH 0AAH 00H 00H 11 05H 980BH 5BH 0ABH 01H 01H 12 04H 980CH 5CH 0ACH 00H 00H 13 03H 980DH 5DH 0ADH 01H 01H 14 02H 980EH 5EH 0AEH 01H 01H 15 01H 980FH 5FH 0AFH 00H 00H 16 00 9810H 60H 0B0H 00H 00H SJMP $ END 多字节十进制加法 赋值: (30H)=16H (31H)=15H (32H)=12H (33H)=35H (20H)=54H (21H)=06H (22H)=23H (23H)=24H ORG 0000HMAIN: MOV R0, #30H (R0)=30H 2字节 MOV R1, #20H (R1)=20H 2字节 MOV 2FH,#04H (2FH)=04H 3字节CLR C 1字节DA1: MOV A,R0 1字节ADDC A, R1 1字节 DA A 1字节 MOV R1, A 1字节 INC R0 1字节 INC R1 1字节 DJNZ 2FH, DA1 3字节 DA1循环 序号 2FH R0 R1 A PSW P Cy A PSW P Cy A PSW P Cy0 04H 30H 20H 16H 01H 01H 00H 6AH 00H 00H 00H 70H 01H 01H 00H1 03H 31H 21H 15H 01H 01H 00H 1BH 00H 00H 00H 21H 00H 00H 00H2 02H 32H 22H 12H 00H 00H 00H 35H 00H 00H 00H 35H 00H 00H 00H3 01H 33H 23H 35H 00H 00H 00H 59H 00H 00H 00H 59H 00H 00H 00HMOV 7FH, C (2FH)=(Cy)=00H 2字节 SJMP $ END 思考题1 若两个数据块都在外部数据存储器中,如何实现数据块的传送?答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。2 在调试第一个程序时,若不用程序给40H4FH赋初值,而用键盘在CPU DATA区给40H4FH单元预赋初值,如何做?答:在存储器窗口d:0x00处键入d:0x40然后键入所需要的初值。3 若把第二个程序改为无符号数的减法,怎样修改程序?答:将ADDC命令改为SUBB命令,去掉DA命令行4 在第二个程序中,若两数的和存放到从40H开始的单元,如何修改程序?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论