实验三简单程序调试

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

实验三简单程序调试

一、实验目的

初步掌握汇编语言程序设计及调试的方法

二、实验仪器

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

1009 09 INC R1

100A E6 MOV 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 , ;屏蔽高四位

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 ;加进位

MOV 20H,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、思考有符号数的求补方法。

相关主题
相关文档
最新文档