单片机--双字节除法程序设计

  1. 实验目的和任务

目的:熟悉51单片机的指令系统。

任务:掌握多字节算术程序的设计方法。

  1. 实验内容

被除数存在R0和R1中(R0为高8位),除数存在R2和R3中(R2为高8位),商保存在R4和R5中(R4为高8位),余数存在R6和R7中(R6为高8位)。

  1. 实验过程和结果

①根据上述实验内容,编写汇编语言源程序,并加上相应注释,注意扩展名为“*.asm”,将其保存。

②运行Keil uVision 开发环境,按照“模块化单片机教学实验平台配套的实验指导书1.2.3 节”介绍的方法建立工程simlab2.uV2,CPU 为AT89S51,不用包含启动文件STARTUP.A51。

③编写好的源程序加入工程simlab2.uV2,并设置工程simlab2.uV2 属性,将其晶振频率设置为12MHz,选择输出可执行文件,仿真方式为“Use Simulator”。

④构造(Build)工程simlab2.uV2。如果输入有误进行修改,直至构造正确,生成可执行程序simlab2.hex 为止。

⑤运行程序,并用存储器观察窗口,观察工作寄存器R0~R7 的值。

                                     

  1. 实验心得

通过本次实验对单片机汇编语言的指令系统的助记符的使用更加熟悉,也加深了对指令功能的理解,也能够通过对流程图的理解自己编写程序,经过编译不断改正自己的错误,从而提升自己的能力。

  1. 附录(代码)

ORG 0000H     定义程序开始的起始地址

MOV R1,#0AH

MOV R0,#24H

MOV R3,#24H

MOV R2,#05H

MOV R7,#00H

MOV R6,#00H    将立即数传送到寄存器

MOV B,#15H      将立即数传送到B

MOV 41H,#00H     将立即数送到41H直接寻址

MOV 40H,#00H     将立即数送到40H直接寻址

DIVD11: CLR C     进位标志清零

             MOV A,R1     将R1中内容传送到A

            RLC A      经过进位标志位的累加器循环左移

           MOV R1,A   将累加器内容传送到寄存器R1

          RLC A      经过进位标志位的累加器循环左移

          MOV A,R2     将R2中内容传送到A

          RLC A         经过进位标志位的累加器循环左移

          MOV R2,A     将累加器内容传送到寄存器R2

          MOV A,R7      将R7中内容传送到A

          RLC A      经过进位标志位的累加器循环左移

          MOV R7,A      将累加器内容传送到寄存器R7

          RLC A       经过进位标志位的累加器循环左移

          MOV R6,A   将累加器内容传送到寄存器R6

          MOV A,R7    将R7中内容传送到A

          SUBB A,R3    累加器A内容减去寄存器R3内容

          MOV 40H,A    将A中内容传送到40H

          MOV A,R6    将R6中内容传送到A

          SUBB A,R2   累加器A内容减去寄存器R2内容

          MOV 41H,A    将A中内容传送到41H

          JB f0,DIVD

          JC DIVD22

 DIVD: MOV R7,40H    将40H中内容传送到R7

          MOV R6,41H     将41H中内容传送到R6

          INC R5       寄存器增1

DIVD22:DJNZ B,DIVD11

       CLR C      进位标志清零

       END     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜航一直在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值