微型计算机原理数据运算实验,微机原理实验---运算类编程实验.doc

微机原理实验---运算类编程实验

深 圳 大 学 实 验 报 告 课程名称: 微机计算机技术 实验项目名称: 运算类编程实验 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人: 学号: 座机电话号码00班级: 班 实验时间: 2011年5月5日 实验报告提交时间: 2011年5月17日 教务处制

实验目的

掌握使用运算类指令编程及调试方法。

掌握运算类指令对各状态标志位影响及其测试方法。

学习使用软件监视变量的方法。

实验设备

PC机一台,TD-PITE实验装置。

实验要求

计算X+Y Z,将结果Z存入某存储单元。

计算X-Y Z, 其中X、Y、Z为BCD码。

实现十进制数的乘法运算,被乘数与乘数均以BCD码的形式存放在内存中,乘数为1位,被乘数为5位,结果为6位。

方法与步骤

1、计算X+Y Z

本实验是双精度的加法运算,编程是可利用累加器AX,先求出低16位的和,并将运算结果存入低地址的存储单元,然后求高16位的和,将结果存入高地址存储单元中。由于低16位运算后可能向高位产生进位,因此高16位运算时用ADC指令,这样在低16位相加运算有进位时,高位相加会加上CF中的1.

实验程序如下:

STACK SEGMENT STACK DW 64 DUP STACK ENDS

PUBLIC XH,XL,YH,YL,ZH,ZL

DATA SEGMENT

XLDW ?

XHDW ?

YLDW ?

YHDW ?

ZLDW ?

ZHDW DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA MOV DS,AX MOV AX,XL ADD AX,YL MOV ZL,AX MOV AX,XH ADD AX,YH MOV ZH,AX JMP START MOV AH,4CH INT 21H

CODE ENDS

END START

2、计算X-Y Z

实验代码如下:

STACK SEGMENT STACK DW 64 DUP STACK ENDS

PUBLIC X,Y,Z

DATA SEGMENT

XDW ?

YDW ?

ZDW ?

DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF MOV CX,0002H MOV SI,OFFSET X MOV DI,OFFSET Z

A1: MOV AL,[SI]

SBB AL,[SI+02H] DAS PUSHF AND AL,0FH POPF MOV [DI],AL INC DI INC SI LOOP A1 JMP START

CODE ENDS

END START

3、乘法运算

实验:

五、实验过程

(1)加法运算

1、编写程序,编译、链接无误后装入系统

2、程序装载完成后,点击‘变量区’至变量监视窗口

3、点击,将变量XH,XL,YH,YL,ZH,ZL添加到变量监 视窗口,修改XH,XL,YH,YL的值,如右图: 4、在JMP START语句行设置断点,运行程序 5、当程序遇到断点后停止运行,查看变量监视窗口,如

下图所示:

6、多次次改变XH、XL、YH、YL的值,观察其变化,验证程序的功能。如下图示:

(2)减法运算

1、输入程序,编译。链接无误后装入系统

2、切换至变量监视窗口,将X,Y,Z添加入其中,并未X,Y赋值,

如右图所示:

3、在JMP START 语句行设置断点,运行程序

4、当程序遇到断点后停止运行,查看变量监视窗口,如下图所示:

5、多次次改变X、Y的值,观察其变化,验证程序的功能。如下图示:

(3)乘法运算

1、输入程序,编译。链接无误后装入系统

2、查看寄存器窗口获得CS的值,使用U命令得到数据段

段地址DS,然后通过E命令为被乘数和乘数赋值,如右图:

3、运行程序,然后再停止运行

4、通过D 命令查看计算的结果,如下图所示:

5、多次测试几组数据,验证程序的正确性,如下图:

实验结论与心得:

正确实现的加、减、乘的运算类编程,进一步掌握了使用运算类指令编程及调试方法。及对各状态标志位影响及其测试方法。同时增强了对使用软件监视变量方法的了解。这个实验加减法比较简单,乘法部分花了不少时间,请教同学师兄等最后实现了实验的要求。

指导教师批阅意见:

成绩评定: 指导教师签字: 年 月 日备注:

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微机原理与汇编语言-实验报告(中北大学大数据学院)(前4个实验都可以直接运行,后面的几个需要用到proteus,这个要自己根据自己的情况搞,咱就不能保证在你电脑上能不能运行了) 实验一 简单程序设计 1. 编制一个简单的运算程序,并且调试完成。 2. 编制一个计算x=a2+b2 3. 验证上述结果的正确 实验二 循环、分支程序设计 1. 编制一个统计数组中正负数个数及均值的程序,并且调试完成得到正确的结果。 2. 设计计算Y=1+2+3+....,直到累加和刚好大于10000的程序并且调试完成。 3. 对给定数组中的所有元素,按从大到小的顺序排序,并且加以验证。 实验三 系统功能调用实验 1.编制一个具有屏幕提示和键盘输入的程序,键盘输入一个人名,在屏幕上显示“Hello 人名!”; 2.通过键盘输入一串包含大小写字母和数字的字符串,统计其中大写、小写字母和数字字符的个数,并将结果显示在屏幕上。 实验四 8255并行接口实验 1.将8255一个端口接8个发光二极管,用不同工作方式控制其逐次点亮发光二极管。 2.将8255另一个端口接开关,用不同工作方式,编程将开关信息在发光二极管上显示出来。 3.验证上述操作的正确性,对实验结果进行解释 实验五 键盘、LED实验 1.在实验箱上,连接小键盘和LED显示器。 2.编程将键盘输入的数字,显示在显示器上,在按键时,原来显示的数字左移一位,新按的键值显示在最右端。 3.考虑两个键组合时的输入方法 4.对实验结果进行说明 实验六 中断实验 1.连接实验箱上的数码管,通过消抖开关作为中断源。 2.编写程序,完成在中断服务程序中记录中断次数,在主程序中显示按键次数。 3.将消抖开关换成一般开关,用同样的程序,再测试,仔细观察,发现了什么,为什么? 实验七 定时/计数器实验 1.使用计数器对消抖开关的按动次数进行计数,显示当前的计数值。 2.对实验箱中系统时钟进行计数,改变计数初值(两个初值要相差很大),观察有什么不同。 3.8253的初值用0和1,观察结果,并加以分析。 4.分析实验结果,并对实验结果进行说明。 实验八 综合实验 1.将实验箱设计成一个电子表,该表能分时(或按键切换)显示年月日、时分秒; 2.设置按键,通过按键可以修正日期和时间,在修正日期、时间时,电子表仍然可以继续工作。 3.AD实验,用显示器显示当前AD的输入电压值,要求精确到小数点后2位数(选做)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值