微机原理及接口技术

发布时间 : 星期六 文章微机原理及接口技术更新完毕开始阅读

设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。

当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据, 当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据。 程序流程图:

三、实验要求

1、利用实验箱开发软件调试程序。编辑(EDIT)、宏汇编(MASM)、链

接(LINK)、调试执行(Debug)

2、分析功能。分析说明例子程序的功能。 3、调试执行。

四.实验步骤

1. 编写实验程序,经编译、链接无误后装入系统。

2. 用E命令在以SI为起始地址的单元中填入16个数。

3. 运行程序,待程序运行停止。

4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数

据相同。

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

五.程序清单

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK 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 JNE A2

A3: MOV AX,4C00H

INT 21H

CODE ENDS END START

实验三 循环程序设计

一、实验目的

掌握循环程序设计的方法。 二、实验内容

1. 计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)

项大于200为止。

2. 求某数据区内负数的个数 设数据区的第一单元存放区内单元数据

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

三、实验步骤

1.(1)编写实验程序,编译、链接无误后装入系统。

(2)运行程序,待程序运行停止。

(3)运算结果存储在寄存器DX中,查看结果是否正确。

(4)可以改变N(N+1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产生数据溢出。 2.(1)按实验流程编写实验程序。 (2)编译、链接无误后装入系统。 (3)键入E3000,输入数据如下: 3000=06 (数据个数) 3001=12 3002=88 3003=82

3004=90 3005=22 3006=33

(4)先运行程序,待程序运行停止。 (5)查看3007内存单元或寄存器BL中的内容,结果应为03。 (6)可以进行反复测试来验证程序的正确性

四.程序清单

1. STACK1 SEGMENT STACK

DW 64 DUP(?) STACK1 ENDS CODE SEGMENT

ASSUME CS:CODE START: MOV DX,0001H MOV BL,02H A1: MOV AL,BL INC BL

MUL BL ADD DX,AX

CMP AX,00C8H JNA A1 MOV AH,4CH INT 21H CODE ENDS

END START 2. SSTACK SEGMENT STACK

DW 64 DUP(?) SSTACK ENDS CODE SEGMENT

ASSUME CS:CODE

START: MOV DI, 3000H ;数据区首地址 MOV CL, [DI] ;取数据个数 XOR CH, CH MOV BL, CH

INC DI ;指向第一个数据 A1: MOV AL, [DI]

TEST AL, 80H ;检查数据首位是否为 1 JE A2

INC BL ;负数个数加 1 A2: INC DI LOOP A1

MOV [DI], BL ;保存结果 MOV AX,4C00H

INT 21H ;程序终止 CODE ENDS END START

实验四 8259 中断控制实验

一、实验目的

1.掌握8259 中断控制器的工作原理。 2.学习8259 的应用编程方法。

3.掌握8259 级联方式的使用方法。

二、实验设备

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

三、实验内容及步骤

1.8259单中断实验

单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。 实验程序清单: SSTACK SEGMENT

STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT

ASSUME CS:CODE START: PUSH DS MOV AX, 0000H MOV DS, AX MOV AX,

联系合同范文客服:xxxxx#qq.com(#替换为@)