微机原理课程设计---编程计算2数组的代数和

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京信息科技大学

信息管理学院

实验报告

课程名称微机原理课程设计

实验项目实验1-(2) 编程计算2数组的代数和

实验仪器PC、TDN86/88教学实验系统、Wmd86联机软件

专业

班级/学号

学生姓名

实验日期

实验地点

成绩

指导教师

一、实验目的

1.掌握分支程序和循环程序结合应用的设计、调试方法。

二、实验内容

设有数组Xi 和Yi 。Xi 数组中有X1 ,…,Xl0;Yi 数组中有Y1 ,…,Y10。试编制程序计算 Z1= X1 +Y1 Z5 = X5 +Y5 Z8= X8—Y8

Z2= X2 +Y2 Z6 = X6— Y6 Z9= X9 + Y9

Z3= X3 —Y3 Z7 = X7 —Y7 Z10=X10+Y10

Z4= X4 —Y4

结果存入z 数组。

三、流程图

否 否 是

是 开始

各取下标指向元素,存入寄存器

逻辑尺为0

元素相加,存入空数

组,指向下一个元素

元素相减,存入空数

组,指向下一个元素

CX=0

结束

把两组数存入两个

数组

四、实验过程

DATA SEGMENT

BUF1 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH ;存入第一组数

BUF2 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH ;存入第二组数

BUF3 DB 10 DUP(?) ;设置空数组

LOGIC DW 00ECH ;设置逻辑尺

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX,DATA ;初始化数据段

MOV DS,AX

MOV CL,0AH ;设置数组长度

MOV SI,0H ;设置下标

A1: MOV AL,BUF1[SI] ;取下标对应数组一元素

MOV BL,BUF2[SI] ;取下标对应数组二元素

ROR LOGIC,1H ;逻辑尺循环右移一位

JC A3 ;判断是否为加法,不是则跳转到A3,加法则继续执行

ADD AL,BL ;两数组元素相加

MOV BUF3[SI],AL ;相加结果存到新数组

INC SI ;下标向后移一位

LOOP A1 ;循环执行A1

JMP STOP ;终止控制

A3: SUB AL,BL ;两数组元素相减

MOV BUF3[SI],AL ;相减结果存到新数组

INC SI ;下标向后移一位

LOOP A1 ;循环执行A1

STOP: JMP STOP ;终止控制

CODE ENDS

END START

五、实现结果及分析

运行程序,然后在调试区键入D0200:0000,即可查看结果。经验证结果正确。

六、实验总结:

通过这次试验,我对数据在内存中的存放形式又有了更深的了解,汇编语言虽然编写起来不如C语言方便,但是执行速度快,可以直观地看到数据的处理顺序和形式。

相关文档
最新文档