您好,欢迎来到六九路网。
搜索
您的当前位置:首页微机原理实验之分支程序、循环程序设计

微机原理实验之分支程序、循环程序设计

来源:六九路网
微机原理实验之分支程序、循环程序设计

实验三

分支程序、循环程序设计实验

一、实验目的

1.掌握分支程序的结构。

2.掌握分支程序的设计、调试方法。 3.加深对循环结构的理解。

4.掌握循环结构程序设计的方法以及调试方法。

二、实验设备

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

三、实验内容:

设计一数据块间的搬移程序。设计思想: 1 所示。

程序要求把内存中一数据区〔称为源数据块〕

传送

到另一存储区〔称为目的数据块〕 。源数据块和目的数据块在存储中可能有三种情况,如图

图 3-1 源数据块与目的数据块在存储中的位置情况

对于两个数据块别离的情况,如图 而遭到破坏,可有如下结论:

当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图 当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图 参考流程:如图 3-2 所示。

3-1〔 b〕所示。 3-1〔 c〕所示。

3-1〔 a〕,数据的传送从数据块的首地址开始,或从数据

“搬移 〞

块的末地址开始均可。但是对于有重叠的情况,那么要加以分析,否那么重叠局部会因

微机原理实验之分支程序、循环程序设计

实验程序

STACK SEGMENT STACK

DW DUP(?)

STACK ENDS CODE

SEGMENT

ASSUME CS:CODE

START: MOV CX, 0010H

MOV SI, 3100H MOV DI, 3200H CMP SI, DI JA A2 ADD SI, CX ADD DI, CX DEC SI

DEC DI

A1:

MOV AL, [SI]

MOV [DI], AL DEC SI DEC DI DEC CX JNE A1

JMP A3

A2:

MOV AL, [SI]

MOV [DI], AL INC SI

INC DI DEC CX

3-2程序流程图

图 微机原理实验之分支程序、循环程序设计

JNE A2

A3: CODE

JMP A3 ENDS

END START

实验步骤

1. 按流程图编写实验程序,经编译、链接无误后装入系统; 2. 用 E 命令在以 SI 为起始地址的单元中填入 3. 运行程序,然后再停止运行; 4. 通过 D 命令查看

DI 为起始地址的单元中的数据是否与

SI 单元中数据相同;

5. 通过改变 SI、DI 的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。

2. 计算 S= 1+ 2×3+ 3×4+4×5+ +N(N + 1),直到 N(N + 1)项大于 200 为止。

16 个数;

编写实验程序,计算上式的结果,参考流程图如图 3-3 所示。

图 3-3 程序流程图

实验程序

STACK SEGMENT STACK

DW DUP(?)

STACK ENDS

CODE

SEGMENT

ASSUME CS:CODE

START: MOV DX,0001H

MOV BL,02H

A1:

MOV AL,BL

INC BL MUL BL ADD DX,AX

;结果存于 DX 中

微机原理实验之分支程序、循环程序设计

CMP AX,00C8H

;判断 N(N+1) 与 200 的大小

JNA A1

A2:

CODE

JMP A2

ENDS

END START

实验步骤

〔1〕编写实验程序,编译、链接无误后装入系统; 〔2〕运行程序,然后再停止程序运行; 〔3〕运算结果存储在存放器 将产生数据溢出。

DX 中,查看结果是否正确;

〔4〕可以改变 N〔 N+ 1〕的条件来验证程序功能是否正确,但要注意,结果假设大于

FFFFH

2. 求某数据区内负数的个数

设数据区的第一单元存放区内单元数据的个数, 从第二单元开始存放数据, 在区内最后一个单元存放结果。 为统计数据区内负数的个数, 需要逐个判断区内的每一个数据, 然后将所有数据中但凡符号位为 1 的数据的个数累加起来,即得到区内所包含负数的个数。 实验程序流程图如图

3-4 所示。

图 3-4 程序流程图

实验程序

STACK SEGMENT STACK

DW DUP(?)

STACK ENDS

CODE

SEGMENT

ASSUME CS:CODE

START: MOV DI, 3000H

MOV CL, [DI] XOR CH, CH

;数据区首地址

;取数据个数

微机原理实验之分支程序、循环程序设计

MOV BL, CH INC DI

MOV AL, [DI] TEST AL, 80H JE A2 INC BL

;指向第一个数据

A1:

;检查数据首位是否为 1

;负数个数加 1

A2:

INC DI LOOP A1

MOV [DI], BL ;保存结果

A3: JMP A3 CODE

ENDS

END START

实验步骤

( 1〕按实验流程编写实验程序; ( 2〕编译、链接无误后装入系统; ( 3〕键入 E3000 ,输入数据如下:

3000= 06 〔数据个数〕 3001= 12 3002= 88 3003= 82 3004= 90 3005= 22 3006= 33

〔4〕先运行程序,然后停止程序运行; 〔5〕查看 3007 内存单元或存放器

BL 中的内容,结果应为〔6〕可以进行反复测试来验证程序的正确性。

03;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务