搜档网
当前位置:搜档网 › 实验三简单程序调试

实验三简单程序调试

实验三简单程序调试
实验三简单程序调试

实验三 简单程序调试

一、实验目的

初步掌握汇编语言程序设计及调试的方法 二、实验仪器

1、 DVCC-598JH 单片开发机一台;

2、 WD-5 型直流稳压源一台。 三、实验预习

1、认真阅读实验指导书有关内容,明确实验目的、内容和操作步骤;

2、对实验中的程序进行手工汇编;

3、复习实验中相关指令的功能;

4、复习顺序结构程序设计思想。 四、实验内容

程序一: BCD 码数的加法运算

设有两个4位压缩的BCD 码数,一个数存放在片内RAM31H (千位、百位) 和30H (十位、个位)单元,另一个数高位存在 33H 单元,低位存在32H 单元, 求两数之和,其结果存30H 和31H 单元。

参考程序:

地址

目标程序 源程序

ORG 1000H

1000 7830 MOV R0,

#30H

1002 7932 MOV R1,

#32H

1004 E6 MOV A , @R0 1005 27 ADD A , @R1 1006 D4 DA

A

1007 F6 MOV @R0, A

1008

08

INC R0

100909INC R1

100A E6MOV A,@R0

100B 37 ADDC A ,

@R1

100C D4 DA A

100D F6 MOV @R0,

A 100E

80FE

SJMP $

END

程序二: 拆字程序

设有一个 8 位二进制数存放在片内 RAM40H 单元,将其拆为两个 4 位二进

制数,高 4 位存于 41H 单元,

低 4 位存于 42H 单元。

参考程序:

ORG

1000H

START :

MOV A , 40H ; 取数

ANL A , #0FH ;屏蔽高四位

MOV

42H , A ; 存低四位数

MOV

A , 40H ; 重新取数

SWAP

A ;高低四位互换

ANL

A , #0FH ;屏蔽低四位

MOV

41H , A ; 存高四位数

SJMP

$

END

程序三: 负数求补程序

已知一个16位二进制负数存放在R1R0中,试求其补码,并将结果存在R3R2 中。

提示:二进制负数的求补方法可归纳为“求反加 1”。即可利用CPL 指令实 现求反,而 16 位加 1,则应是低 8位先加 1 ,高8位再加上低位的进行位。 注意, 这里不能用 INC 指令,因 INC 指令不影响标志位。

参考程序:

ORG 1000H START : MOV

A , R0 ;读低 8 位

CPL

A

;取反

ADD A ,#01H;加1

MOV R2,A;存低8 位

MOV A ,R1;读高8 位

CPL A;取反

ADDC A ,#00H;加进位

MOV20H,R1;高8位一位寻址区

MOV

C,

07H;

符号位-C

MOV

ACC.7 ,

C;恢复符号

MOV R3,A;存高8 位

SJMP$

END

五、实验步骤

1、认真阅读实验参考程序并分析程序运行后的理论结果;

2、输入程序并检查输入是否正确;

3、根据已知条件输入程序执行前的原始数据;

4、执行程序,检查并记录结果;

六、练习

1、试编写计算6655H+11FFH 的程序。

提示:被加数和加数是16 位数,需分两步完成计算,首先将两数的低位相加,若有进位,保存在C Y中;然后再将两数的高8位连同进位位相加,结果存入

50H、51H 单元中。

2、编写程序,将片内41H 和42H 单元的两个4 位二进制数进行组合,存放于40H单元。41H单元的数作为低4位,42H单元的数作为高4位。

七、实验报告

1 、整理记录结果,并与理论结果进行比较;

2、调试过程及体会;

3、思考BCD 码相减的实现方法;

4、思考有符号数的求补方法。

相关主题