东华大学微机硬件实验报告

东华大学微机硬件实验报告
东华大学微机硬件实验报告

东华大学微机原理实验

班级:电气

姓名:

学号:

东华大学信息学院

硬件实验部分

一、综合设计实验部分

一、设计要求

参考基础实验的实验1~实验5所使用的硬件和例程序,设计一个简单的红绿灯控制系统,用LED1~LED4表示两组红绿灯,每组红灯、绿灯各1只。要现以下功能:

(1) 红绿灯的定时切换(每10秒切换一次)

(2) 设置灯光测试开关K1,当K1打开(高电平)时,LED1~LED4全亮,关闭

时恢复正常切换。

提示:

(1) 定时功能可利用8253实现,利用定时器输出作为中断申请,利用中断处理

切换LED的显示;LED状态可用存保存或用I/O口读取。

(2) 测试功能运行可在主循环过I/O口读取开关状态后判定,或利用中断处理方

式运行。

二、报告要求:

1 外围芯片信号连接原理图(与CPU连接部分可省略)

2 程序的流程图、源代码和源代码行中必要的注释

3 调试中遇到的问题和解决方法

三、程序源代码及流程框图:

assume cs:code

code segment public

org 100h

st: mov dx,04c0h ;74LS244地址

in al,dx ;读输入开关量

mov dx,04d0h ;74LS273地址

out dx,al ;输出至LEd

test al,18h

jne start

jmp st

start: mov dx,04b6h ;控制寄存器

mov ax,36h ;计数器0,方式3

out dx,ax

mov dx,04b0h

mov ax,7Ch

out dx,ax

mov ax,92h

out dx,ax ;计数值927C

mov dx,04b6h

mov ax,0b6h ;计数器2,方式3

out dx,ax

mov dx,04b4h

mov ax,90h

out dx,ax

mov ax,01

out dx,ax

next:

nop

start1: mov dx,04a6h ;控制寄存器地址

mov ax,90h ;设置为A口输入,B口输出,c口输出

out dx,ax

mov dx,04c0h ;74LS244地址

in al,dx ;读输入开关量

test al,18h

je st

start2: mov dx,04a0h ;A口地址

in ax,dx ;输入

mov dx,04a2h ;B口地址

out dx,ax ;输出

mov dx,04a4h ;c口地址

not ax

out dx,ax ;输出

mov dx,04c0h ;74LS244地址

in al,dx ;读输入开关量

test al,18h

je st

jmp start2

jmp next

code ends

end st

四:解决问题及原理图

二、基础实验部分

实验1 存储器读写实验

一、实验设备

微机实验箱、8086CPU模块。

二、实验步骤和要求

1、实验接线:本实验无需接线。

2、编写调试程序

3、运行实验程序,可采取单步、设置断点方式,打开存窗口可看到存区的变化。

三、思考题源程序代码及流程框图

code segment

assume cs:code

org 0100h

start: mov ax,0100h

mov ds,ax ;数据段地址

mov es,ax

mov si,1000h ;偏移地址

mov cx,010h ;循环次数

mov al,0

intram: mov [si],al

inc si

loop intram ;清零

mov si,1000h ;设置断点处

mov cx,10h

mov di,0

fil: mov ax,di

mov [si],al ;RAM区循环置数

inc di

inc si

loop fil

nop ;设置断点处

jmp start

code ends

end start

四、思考题:

1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点

方式运行时执行到第一个断点处,2000H~202FH存单元的数据是什

么?执行到第二个断点处,2000H~200FH存单元的数据是什么?并根

据观察结果和对源程序的判读简述源程序的运行效果。

2 、修改程序,实现从2000H到200FH单元依次赋值00H~0FH的功能。

解决问题:刚开始,没有注意将循环次数改掉,CX依旧弄成了100H,后来弄成010H,正好和要求一样。之后的目标单元置数是正确的,符合要求。

实验2 简单I/O口扩展实验

一、实验设备

微机实验箱、8086CPU模块。

二、实验步骤

1、实验接线:(?表示相互连接)

CS2 ?CS244;CS3?CS273;平推开关的输出K1~K8 ? IN0~IN7(对应连接);O0~O7?LED1~LED8。

2、编辑程序,单步运行,调试程序

3、调试通过后,全速运行程序,观看实验结果。

4、编写实验报告。

三、思考题源程序代码及流程框图

assume cs:code

code segment public

org 100h

start: mov dx,04c0h ;74LS244地址

in al,dx ;读输入开关量

mov dx,04d0h ;74LS273地址

out dx,al ;输出至LED

jmp start

code ends

end start

四、思考题:

将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与例程序相同的功能。

解决问题:这个思考题修改没出什么问题,就是把信号改接的位置换了一下,编程序时,将地址改一下,就成功了。

实验3 8255并行口实验

一、实验设备

微机实验箱、8086CPU模块。

二、实验步骤

1、实验接线

CS2?CS8255;PA0~PA7?平推开关的输出K1~K8;PB0~PB7?发光二极管的输入LED1~LED8。

2、编程并全速或单步运行。

3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于H时,对应的发光二极管点亮,置于L时熄灭。

三、思考题源程序代码及流程框图

assume cs:code

code segment public

org 100h

start: mov dx,04c6h ;控制寄存器地址

mov ax,90h ;设置为A口输入,B口输出

out dx,ax

start1: mov dx,04c0h ;A口地址

in ax,dx ;输入

xor ax,0ffffh

mov dx,04c2h ;B口地址

out dx,ax ;输出

jmp start1

code ends

end start

四、思考题:

1、修改接线CS2?CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。

解决问题:和第二个实验一样,将CS8255的接线地址换一下,没出问题。但我和搭档在之后的取反时弄错了,弄成了00000H,后来实验结果不对,想了一下,发现这个有错误,就改成了0ffffH。结果对了。

实验4 8253定时器/计数器接口实验

一、实验设备

微机实验箱、8086CPU模块、示波器。

二、实验步骤

1、实验连线:

CS1?CS8253 OUT0?8253CLK2 OUT2?LED1 OUT1?LED2

CLK3?8253CLK0,CLK3?8253CLK1

2、编程调试程序

3、全速运行,观察实验结果

三、思考题源程序代码及流程框图assume cs:code

code segment public

org 100h

start:

mov dx,04b6h ;控制寄存器

mov ax,36h ;计数器0,方式3

out dx,ax

mov dx,04b0h

mov ax,7Ch

out dx,ax

mov ax,92h

out dx,ax ;计数值927Ch

mov dx,04b6h

mov ax,76h ;计数器1,方式3

out dx,ax

mov dx,04b2h

mov ax,32h

out dx,ax

mov ax,0 ;计数值32h

out dx,ax

mov dx,04b6h

mov ax,0b6h ;计数器2,方式3

out dx,ax

mov dx,04b4h

mov ax,50h

out dx,ax

mov ax,0 ;计数值50h

out dx,ax

next:

nop

jmp next

code ends

end start

四、思考题:

1、为什么说例程序运行时LED1闪烁周期的理论值是0.2秒?在例程序设置

LED2的最大闪烁周期是多少?请分析说明。

2、修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为

4秒(亮2秒,灭2秒),修改程序实现功能。

解决问题:依旧将CS8253的接线地址改一下,没出问题,然后将T2的数值弄成之前的20倍。结果正确。

实验5 8259中断控制器实验

一、实验设备

微机实验箱、8086CPU模块。

二、实验步骤

1、实验接线

CS0 ?CS8259 CS3 ?CS273 O0~O3?LED1~LED4 K1~K3?IR0~

IR2 INT?INT( 8086CPU板) INTA?INTA(8086CPU板)IR3?P+

2、编译调试程序

3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。“且按Pules”键时LED1~LED4全亮。

三、思考题源程序代码及流程框图

assume cs:code

code segment public

org 100h

start: mov cx,0

start1: cli

mov dx,04a0h

mov ax,13h

out dx,ax ;ICW1, ICW4 NEEDED

mov dx,04a2h

mov ax,80h

out dx,ax ;ICW2 中断类型80h

mov ax,01h;01

out dx,ax ;ICW4

mov ax,00h

out dx,ax ;OCW1, 开放所有中断

nop ;以上为8259初始化

mov ax,0

mov ds,ax

mov di,200h ;初始化中断向量表

mov ax,offset int0

mov ds:[di],ax

add di,2

mov ds:[di],100h

add di,2

mov ax,offset int1

mov ds:[di],ax

add di,2

mov ds:[di],100h

add di,2

mov ax,offset int2

mov ds:[di],ax

add di,2

mov ds:[di],100h

add di,2

mov ax,offset int3

mov ds:[di],ax

add di,2 ;上述程序为芯片8259的初始化程序

mov ds:[di],100h ;建议不熟练者不要修改。

main: mov ax,0

sti ;开中断。

waiting: cmp ax,0h

je waiting ;没发生中断,则等待nop

nop

mov dx,04d0h

out dx,ax ;对应LED灯亮

mov cx,0

delay: loop delay ;数字滤波,按键去抖

jmp start1

int0: cli ;关中断。以下类推。

nop ;此两行为IR0的中断服务程序

mov ax,0feh ;用户可修改。

iret ;中断返回,以下类推。

int1: cli

nop ;此两行为IR1的中断服务程序,

mov ax,0fdh ;用户可修改。

iret

int2: cli

nop ;此两行为IR2的中断服务程序,

mov ax,0fbh ;用户可修改。

iret

int3: cli

nop ;此两行为IR3的中断服务程序,

mov ax,0f0h ;用户可修改。

iret

code ends

end start

中断服务流程

四、思考题:

1、说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说

明)。

2、修改接线IR3 P+(实验箱右下角),并修改源程序,使按实验箱右下角“Pules 键时LED1~LED4全亮。

解决问题:将IR3的接线地址换成P+,之后的IR3中断服务程序的ax输入改成0f0H.实验结果刚好如预期。没出问题。

路由器配置_实验四

路由器配置实验 专业:信息安全 班级: 姓名: 学号: 指导教师: 日期:

一、实验概述 1.1 实验目的 1. 根据网络拓扑,了解如何设计静态路由表 2. 对CISCO 路由器配置静态路由 1.2 实验内容 1.2.1 实验要求 本实验为个人实验,实现以下目标: 使用5 台电脑,配置在3 个局域网网段中,需要通过路由器的静态路由表配置,使得这5台电脑能相互通信。 5台电脑的网络结构为:

5台电脑模拟:4台电脑在一个单位的局域网内,1 台电脑在外网。4 台局域网中的电脑又被分到了两个子网中。每个子网最多10 台电脑,外网所在的网络最多100 台电脑。 以上所有电脑、路由器的IP 地址均需从一个网段中(比如:10.10.81.0/24)选取,不得使用其他IP 地址。(注意,这里的81需要根据用户自己的机器编号而变,看自己显示器上的编号是多少,这里就配为多少) 1.2.2 实验拓扑 上图中: 路由器R3 的f0/0 接口与PC1、PC2 处于10.10.81.0~10.10.81.15 网段中 路由器R2 的f0/0 接口与PC3、PC4 处于10.10.81.16~10.10.81.31 网段中 路由器R4 的f0/0 接口与PC5 处于10.10.81.128~10.10.81.255 网段中 10.10.81.0/24 网段剩余的IP 地址段为:10.10.81.32~10.10.81.127,请将这些地址合理分配到R1,R2,R3,R4 的串口S0/0,S0/1,S0/2 上,并配置静态路由,使得这5 台电脑能相互通信。

注意: 1)配置路由器串口的IP地址时,不得使用以上提到的地址段以外的地址。 2)上述拓扑中所有电脑均由路由器模拟,因此,需要在它们的f0/0 接口配置IP 地址、子网掩码,还需要配置静态路由。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机实验报告(1)

《微机实验》报告 实验名称 KeilC的使用与汇编语言上机操作 指导教师刘小英 专业班级中法1201 姓名肖洋学号 U3 联系电话 一、任务要求 1.掌握KeilC环境的使用 1)字节拆分、合并:调试程序,观察相关寄存器和单元的内容。 2)数据块填充:调试程序,观察相关寄存器和单元的内容。 2. 编写两个十六位数的加法程序。 有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八 位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。 二、设计思路 1.字节拆分、合并程序:利用汇编语言中的 XCHD 和 SWAP 两个语句来实现将八位二进制 数拆分为两个四位二进制数并分别存储于不同的存储空间的功能,BCD 码与 30H 相或(加 上 30H)得到 ASCII 码。将两个 ASCII 码和 0FH 相与(高四位清零)得到 BCD 码,利 用 SWAP 语句将高位数放至高四位,将高位数和低位数相或可实现字节的合并。 2.数据块填充程序:将 R0 用作计数器,DPTR 用作片外数据指针,A 作为原始数据来源, 依顺序在片外的存储单元内容填充数据。利用循环语句来减少程序长度,并控制填充单 元个数为片外 100H 个。(通过 R0 的进位控制) 3.两个十六位数加法程序:把第一个十六位无符号数的地八位和高八位分别存于 20H 和 21H 中,把第二个十六位无符号数的地八位和高八位分别存于 30H 和 31H 中,对 20H 和 30H 中的两个低八位进行 ADD 加法操作,结果存于 R4 中;然后对 21H 和 31H 中的两 个高八位进行 ADDC 带进位的加法操作,结果存于 R3 中.然后将累加器 A 清零,并和#00H

微机原理实验指导书-硬件部分(2015)

微机原理实验指导书硬件实验部分 东华大学信息学院 信息与控制实验中心 2015.12

关于微机原理硬件部分实验的说明 ●硬件实验主要分为基础实验和综合设计实验两部分。 基础实验部分每个实验需完成各自的实验报告。报告内容以每项实验的思考题内容为主,不需要抄录实验指导书提供的范例程序。报告内容具体要求为: 1、实验名称、所需设备、实验要求; 2、实验步骤简述 3、思考题解答; 4、有关思考题的程序的流程框图及源程序代码,源程序 需加上必要的注释; 5、思考题的程序在调试中出现的问题及解决过程。 综合设计实验须按照设计要求,利用实验设备提供的软硬件条件设计一个简单的红绿灯模拟系统。要求每小组完成硬件连线设计、连接,软件编程及调试,并提交相关的设计和调试报告。系统运行情况需进行实际运行检查。 ●基础实验必须完成,综合实验部分根据自身能力选做。 ●实验中先完成基础实验部分,再做综合设计实验。 ●硬件实验成绩按考勤情况(5%)、基本实验情况(85%)和综合设 计实验情况(10%)综合评定。

一、实验设备及软件介绍 第1部分硬件系统介绍 1. CPU单元及外围芯片 1)、微处理器:8086 2)、时钟频率:6MHz 3)、存储器 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FC000~FFFFFH,奇地址有效 27C256 系统ROM,地址范围 FC000~FFFFFH,偶地址有效4)、可提供的对8086的基本实验 (1).简单I/O扩展实验 (2).存储器扩展实验 (3).CPLD地址译码实验 (4).8255可编程并口实验 (5).8253定时/计数器实验 (6).A/D0809实验 (7).D/A0832实验 (8).8250可编程串口实验 (9).8279显示器接口实验 (10).8279键盘扩展实验 (11).8259可编程中断控制器实验 (12).8237DMA控制器实验 5)、系统资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程,可完成系统器件,如监控程序 存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器 等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给 用户使用,他们的地址固定,用户不可改变。

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

微机实验报告

微机实验报告 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

第一次实验 实验01 I/O端口地址译码实验 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验原理 1、实验电路如原理图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,…… 当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令 MOV DX,290H OUT DX,AL(或IN AL,DX) Y2输出一个负脉冲,执行下面两条指令: MOV DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲。 (II型机) 2. 接线 II型机: I/O 地址/Y2(290H---297H) 接 D 触发器/CLK I/O 地址/Y4(2A0H---2A7H) 接 D 触发器/CD D 触发器/D 接 D 触发器/SD 接+5V D 触发器/Q 接逻辑笔或L7 I型机: I/O 地址/Y4 接 D 触发器/CLK I/O 地址/Y5 接 D 触发器/CD

…… 三、实验内容 利用负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。 四、实验内容实现分析 分析实验连接图;说明实现该内容的原理;画出流程图。 五、实验程序 DATA SEGMENT OUTPORT1 EQU 290H OUTPORT2 EQU 2A0H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA

东华大学自动控制原理实验一

各位同学请注意: 1.上机实验为1-8周,每次上机请按照第一次的座位坐。 2.请先自习上机内容,实验内容可参考指导书。 3.9号机房座位安排见后面的名单,请按机位号入座,要点名哦。 实验一典型环节的MATLAB仿真 一、实验目的 1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK的使用 MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。

3.在simulink仿真环境下,创建所需要的系统。 以图1-2所示的系统为例,说明基本设计步骤如下:

1)进入线性系统模块库,构建传递函数。点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。 2)改变模块参数。在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。 3)建立其它传递函数模块。按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math ”右边窗口“Gain ”的图标。 4)选取阶跃信号输入函数。用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。 5)选择输出方式。用鼠标点击simulink 下的“Sinks ”,就进入输出方式模块库,通常选用“Scope ”的示波器图标,将其用左键拖至新建的“untitled ”窗口。 6)选择反馈形式。为了形成闭环反馈系统,需选择“Math ” 模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号)。 7)连接各元件,用鼠标划线,构成闭环传递函数。 8)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。 三、实验原理 1.比例环节的传递函数为 221211 ()2100,200Z R G s R K R K Z R =- =-=-== 图1-3所示左侧为其对应的模拟电路右侧即为SIMULINK 的图形。

东华大学11级选课手册

东华大学2011级选课手册 东华大学学分制选课手册一、教学计划简介四年制本科专业教学计划是学校按照四年正常学习年限组织安排专业教学进程和课程教学的重要文件,是同学进行选课的基本依据,学校将根据教学计划和教学情况,确定并公布每学期的实际开设课程。同学在导师的指导下,参照教学计划中课程的建议学习时间,在开设课程范围内自主选择。教学计划总体框架和有关要求如下:1、教学计划理论教学和实践环节两部分组成。理论教学包含通识教育基础、学科基础、专业与专业前沿三部分课程,前两部分课程中有必修和选修课程之分,第三部分课程全为选修。实践环节包含综合实践和实践教学两类课程,全为必修课程。必修课程指学生必须修读的课程,因课程有前修和后续的关系,要求同学在教学计划

规定的学期内修读;选修课程指同学可以自主选读的课程。同学可以在各类选修课程中有目的地选课修读,但各类选修课要修满本专业教学计划规定的学分数。2、学生必须修满所在专业教学计划中规定的总学分数及各类别课程的规定学分后才能顺利毕业,不同类别课程的学分不能互相抵冲。“通识教育”课程包括政治法律、语言文字、自然科学、技术科学、军事体育和人文素质等六方面课程的学习与实践。除完成必修课程的学分外,还应修满大学外语类、计算机类、文化素质类、体育类等类别的选修课程学分。每类课程必须达到最低修读学分要求,例如大学英语学分要求合计为17学分,即大学英语类课程至少修满16学分,同时必须通过东华大学英语学业水平考试Ⅱ,获得1学分,方能取得毕业资格。“学科基础”按一级和二级学科设臵课程和实践环节,进行宽口径专业教育。学科基础必修课为学科大类或专业大类的公共课,学科

2018年东华大学控制工程考研最详细经验帖

2018年东华大学控制工程考研最详细经验帖 在这里我就大体写一下我的复习过程,仅供参考。先介绍一下我自己的情况吧,我本科是江西理工大学,自动化专业。考的是东华大学专硕控制工程。 专业课篇 我们信息学院专业课是三选一,分别是自动控制原理,信号与系统,以及电路。我选择的是自动控制原理,因为这门课程我本科学的比较好,而且作为自动化专业核心课程,再次精研自控还是很有收获的,废话不多说。上干货。 首先参考资料,自控作为控制类的基础课,知识点杂而多,但根据考纲来看是二三四五六章最重要。因此复习时间选择在7月初开始。首先是过一遍基础,把书认真看一遍,每个考纲的知识点做到第一遍是理解的,学校给的参考书是《Modern Control Systems现代控制系统》(第九版)Richard C.Dorf Robert H.Bishop,2002年。《自动控制原理》(下),吴麒,清华大学出版社,1992年《自动控制理论》,胡寿松,科学出版社,1994年。其中英文教材是东华本科上课教材,但我选的是胡寿松的教材,经典且易懂。这部书一定要精读且把例题搞懂。 第二是复习时间规划,首先呢专业课的分值是和数学一样的,因此战略地位和数学也是一样的,只是难度来说比数学简单点,因此简单,就意味着你的分不能太低,低过头了就是谢谢参与了。有些人总以为暑假后也可以来得及,这种错误太低级了,因从我给的建议是从七月开始,每天至少三个小时复习时间。一直到考试前。 第三是复习方法。首先是教材的使用,我的建议是必须看两遍以上,第一遍首先建立自己已经忘记的差不多的知识体系,顺便温故一下知识点,然后做例题,做习题,根据习题的情况复习和巩固自己的知识。第二遍就是重点根据第一遍的自身情况再着重复习。其次是真题了,真题最能看出学校出题的思路和重点,一定要好好做和复习,最少三遍以上。 复试经验:

东华大学微机实验报告答案(软件)

目录 实验一DEBUG的启动及其基本命令的使用实验二内存操作数及寻址方法 实验三汇编语言程序的调试与运行 实验四查表程序设计 实验五系统功能调用 实验六分支程序设计 实验七循环程序设计 实验八子程序设计 实验九综合程序设计 实验心得体会 参考文献

实验一 DEBUG的启动及其基本命令的使用 源程序:(指导书中给出) DA TA SEGMENT STRING1 DB 'Move the cursor backward' STRING2 DB 'Move the cursor backward' MESS1 DB 'Match.',13,10,'$' MESS2 DB 'No Match.',13,10,'$' DA TA ENDS STACK SEGMENT STACK DB 40 DUP (?) STACK ENDS PROGNAM SEGMENT ASSUME CS:PROGNAM,DS:DA TA,ES:DA TA,SS:STACK MAIN PROC FAR START: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SI,STRING1 LEA DI,STRING2 CLD MOV CX,25 REPZ CMPSB JZ MA TCH LEA DX,MESS2 JMP SHORT DISP MATCH: LEA DX,MESS1 DISP: MOV AH,09h INT 21H RET MAIN ENDP PROGNAM ENDS END START 运行结果:

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

东华大学微机系统及原理实验报告

微机系统及应用实验 实验报告 实验一DEBUG的启动及其基本命令的使用 实验内容: 6:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请仿照例程的格式编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 写出在DEBUG状态下编写、运行步骤6所要求的程序过程(要求包含源程序)以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 程序清单: STACK SEGMENT STACK DB 2003H DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START: MOV AX,STACK MOV SS,AX MOV SP,2000H

MOV AX,3000H MOV BX,5000H PUSH AX MOV AX,BX POP BX MOV AH,4CH INT 21H CODE ENDS END START 运行及调试: 进入调试后,运行正常。 进行反汇编调试: 通过追踪指令观察SP、AX、BX变化 可知对SP、AX、BX赋值正确。

将AX入栈后 用显示内存单元内容的命令D观察堆栈段中SP为1FFF,2000的内容 [1FFF]=00 ,[2000]=30 说明已经AX=3000已经放入到堆栈段中。 结果可以看出:AX=5000,BX=3000 结果完成正确! 实验二内存操作数及寻址方法 实验内容: 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序,用masm.exe和link.exe对源程序进行汇编程和连接,用DEBUG 调试程序。 2、用masm和link 对以下程序进行汇编和连接,调试程序在DEBUG调试程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。 程序清单如下: DATA SEGMENT

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理实验指导书-硬件部分(2017)

微机原理实验指导书 硬件实验部分 东华大学信息科学与技术学院信息与控制实验中心 2017.11

关于微机原理硬件部分实验的说明 硬件部分包含5个基本实验和一个综合设计实验。综合设计实验为选作部分。每个实验需完成各自的实验报告。报告内容以每项实验的思考题内容为主,不需要抄录实验指导书提供的范例程序。基本实验的报告内容具体要求为: 1、实验名称、所需设备、实验目的。 2、思考题要求。 3、有提问的思考题分析解答。 4、需要编程的思考题的程序的流程框图 5、思考题的全部源程序代码,源程序需加上必要的注释。 6、思考题的程序在调试中出现的问题及解决过程。 ●实验必须完成基础实验部分,综合设计实验选作。 ●硬件实验成绩按基本实验情况(85%)和选作实验情况(15%)综 合评定。

一、实验设备及软件介绍 第1部分硬件系统介绍 1. CPU单元及外围芯片 1)、微处理器:8086 2)、时钟频率:6MHz 3)、存储器 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FC000~FFFFFH,奇地址有效 27C256 系统ROM,地址范围 FC000~FFFFFH,偶地址有效4)、可提供的对8086的基本实验 (1).简单I/O扩展实验 (2).存储器扩展实验 (4).8255可编程并口实验 (5).8253定时/计数器实验 (6).A/D0809实验 (7).D/A0832实验 (8).8250可编程串口实验 (9).8279显示器接口实验 (10).8279键盘扩展实验 (11).8259可编程中断控制器实验 5)、系统资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程,可完成系统器件,如监控程序 存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器 等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给 用户使用,他们的地址固定,用户不可改变。 2.地址资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128作为地址译码器,完成系统器件如存

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号099074 姓名 安徽工业大学计算机学院

实验一存贮器读写实验 一、实验内容 对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。 二、实验步骤 l、将实验系统与PC机连接; 2、在PC机上启功DJ-8086k软件,实验系统进入联机状态; 3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过; 4、运行程序。 5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。 三、实验程序清单 CODE SEGMENT ; ASSUME CS:CODE PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h START: JMP START0 BUF DB ,,,,, data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1 h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX

微机实验报告

《微机实验》报告 实验名称:keilc的使用与汇编语言上机操作 一、任务要求 实验目的:熟悉keilc环境,通过在keilc环境下调试字节拆分、合并程序、数据块清 零程 序、加法程序,掌握汇编语言程序的调试方法,加深对bcd码、ascii码、堆栈、寄存 器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。 实验内容: 1.掌握keilc环境的使用 1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。 2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。 2. 编写两个十六位数的加法程序。 有两个十六位无符号数,分别存放在从20h和30h开始的数据区中,低八位先存,高八 位在后,和存于r3(高八位)和r4(低八位),进位位存于r2。 二、设计思路 实验1中的两个实验,已经给出了程序代码,,无需再进行设计。下面阐述实验2的设计 思路: 对于该程序,在处理低位相加时,直接采用指令add,然后存数,在处理高位时,考虑 到可能存在进位,所以在相加时,应使用指令addc将被加数、加数以及低位到高位的进位相 加然后存数。 此外,在处理该问题时,还应考虑到两个十六位相加可能会出现第十七位,所以要另外 安排一个地址单元用来存放最高位的数。 三、资源分配 两个十六位无符号数,分别存放在从20h和30h开始的数据区中; 和存于r3(高4八位)和r4(低八位); 进位位存于r2。 四、流程图 四、源代码(含文件头说明、资源使用说明、语句行注释) file name: test2.asm description: 两个十六位数的加法程序 date: 2012/09/26 designed by: zhangbo source used: 20h: 加数a的低位 21h: 加数a的高位 30h: 加数b的低位 31h: 加数b的高位 r4: 和的低位 r3: 和的高位 r2: 和的进位 org 0000h ljmp main org 0000h main: clr c ;将进位位清零 mov 20h,#10h 六、程序测试方法与结果、软件性能分析

微机实验作业

微机原理实验指导书 东华大学信息信息科学与技术学院 二○○八年十月

目录 实验一DEBUG的启动及其基本命令的使用 (1) 实验二内存操作数及寻址方法 (5) 实验三汇编语言程序的调试与运行 (7) 实验四查表程序设计 (9) 实验五系统功能调用 (11) 实验六分支程序设计 (12) 实验七循环程序设计 (14) 实验八子程序设计 (16) 实验九综合程序设计 (19) 附录一DEBUG命令详解31附录二实验报告 (48)

实验的基本要求与方法 一、实验目的 学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。为后续课程打下坚实的基础。 二、实验要求 1.上机前做好充分的准备,包括程序框图、源程序清单、调试步骤、测试方法,对运行结果的分析等。 2。上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验有关的系统软件(编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在程序的调试过程中,有意识地学习及掌握debug 程序的各种操作命令,以便掌握程序的调试方法及技巧。 3.每个实验完成后,应写出实验报告,实验报告为word文档。实验报告要求: (1)设计说明:用来说明程序的功能、结构。它包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明等。 (2)调试说明:便于学生总结编程经验提高编程及高度能力。它包括:调试情况,如上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会。 (3)程序框图 (4)程序清单 4. 为了更好地进行上机管理,要求用硬盘存储程序,并建立和使用子目录,以避免文件被别人删除。为便于统一管理硬盘中的文件,要求实验者在e:\学号目录下建立自己的文件,文件按以下格式命名:字母学号.扩充名,其中字母取a~z的26个英文字母,按实验顺序从a至z排列,学号取后面的6位。如学号为20043727的学生第三个实验第一个源程序所对应的文件名为c1043727.ASM,本次实验的第二个源程序为c2043727,实验报告对应的文件名为c043727.doc。 实验报告写完后,将源程序文件及实验报告上传到教师机上相应的目录中。具体目录上机时由指导老师告之。 三、实验的基本方法 1. 从教师机下载汇编程序MASM.EXE和连接程序LINK.EXE到学生机的相应文件夹(文件夹以学号命名)下。 2. 进入DOS环境中相应的目录下。 如学生的文件来为:d:\20043727,则对应的操作为 (1)选择windows的“开始”→“程序”→“附件”→“命令提示符” (2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。 C:\Documents and Settings\new>d: D:\>cd 20043727 D:\20043727>edit a1043727.asm 进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。 3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。若编过程出现错误,则无法生成目标程序,需要回到编辑程序进行修改,修改后重新汇编直到无错出现。 4. 用连接程序LINK,将扩展名为.OBJ的目标程序连接装配成可执行文件,即在盘上生成扩展名为.EXE的文件。 5. 用调试程序DEBUG,调试扩展名为.EXE的文件,以发现程序中的逻辑错误并进行排除。

微机原理实验报告材料

微型计算机原理及单片机 实验报告 班级: 学号: :

实验一 汇编语言程序设计 1 分支程序设计实验 1.1.1 实验目的 1. 掌握分支程序的结构。 2. 掌握分支程序的设计、调试方法。 1.1.2 实验设备 PC 机一台,TD-PITE 实验装置一套。 1.1.3 实验容 设计一数据块间的搬移程序。设计思想:程序要求把存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.1所示。 源数据块 目的数据块0H FFFFFH 源数据 块目的数据块0H FFFFFH 源数据 块 目的数据块0H FFFFFH (a ) (b ) (c ) 图1.1 源数据块与目的数据块在存储中的位置情况 对于两个数据块分离的情况,如图1.1(a ),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论: 当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b )所示。 当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c )所示。 实验程序流程图如图1.5所示。 1.1.4 实验程序如下 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START:

MOV CX, 0010H图1.5 程序流程图 MOV SI, 6000H Array MOV DI, 7000H 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: JMP A3 CODE ENDS END START 1.1.5 实验步骤 1. 按流程图编写实验程序,经编译、无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。 4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程 序的功能。

相关文档
最新文档