当前位置:文档之家› 东华大学微机系统及应用实验-郑建立

东华大学微机系统及应用实验-郑建立

东华大学微机系统及应用实验-郑建立
东华大学微机系统及应用实验-郑建立

微机系统及应用实验指导书

东华大学信息科学与技术学院电气电子工程系

2017年9月

实验一基本程序编程和程序调试

一、实验目的

1、掌握数码转换等基本程序设计的技巧和方法。

2、熟悉DEBUG命令。

3、学会和掌握用DEBUG调试程序的方法。

二、实验设备

PC机一台,装有DOS基本系统

三、实验内容及步骤

用DEBUG建立、汇编和运行调试程序的操作。DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。它共有19条命令完成相应的功能,命令及其格式可参阅附录一。

(一)DEBUG操作练习

**** 1)实验调试程序

程序的功能是从3500H内存单元开始建立0-15共16个数据。程序如下:

地址(H)机器码(H)助记符

2000 BF0035 MOV DI,3500

2003 B91000 MOV CX,0010

2006 B80000 MOV AX,0000

2009 9E SAHF

200A 8805 MOV BYTE[DI],AL

200C 47 INC DI

200D 40 INC AX

200E 27 DAA

200F E2F9 LOOP 200A

2011 F4 HLT

2)实验步骤:

(1)输入与修改

①启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。

②用DEBUG中的汇编命令“A 地址”将程序建立在内存单元中。在提示符“—”下键入:“A 2000 ”此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。即

显示169C :2000 键入MOV DI,3500

169C:2003 MOV CX,0010

169C:2011 HLT

:::

③用反汇编命令“U 地址”检查程序

在提示符“—”下,键入“U 2000?”,将从2000内存单元开始的内容反汇编,屏幕上显示

169C:2000 BF0035 MOV DI,3500

169C:2003 B91000 MOV CX,0010

169C:2006 B8000 MOV AX,0000

:::

:::

169C:2011 F4 HLT

当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令,则键入“A 200A?”,屏幕显示169C:200A ,然后再键入MOV BYTE[DI],AL?,就把错误的程

序改正了。

(2)显示和修改数据

①用修改内存单元命令“E 地址”在指定内存单元中存入一个数。

如要在3500为首址的单元中存入14H和25H两个数据,可在提示符“—”下,键入:“E 3500?”显示169C:3500 ××.键入14,按空格键

××.25,按空格键

②用显示内存命令“D 地址”检查指定单元的内容

在提示符“—”下,键入“D3500?”

显示1489:3500 14 25 48 02 …………

1489:3510 ** ** ** ** …………

::

::

1489:3570 ** ** ** ** …………

若某单元内容有错则可用命令:“E 地址”进行修正。

③用显示和修改命令“R ”或“R 寄存器名”显示寄存器或修改其内容

在提示符“—”下,键入“R?”

显示AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE……………………

DS=169C ES=169C SS=169C CS=169C IP=2000………………………

要修改IP的内容时,键入命令“R IP”后,显示IP 2000,在2000之后键入新内容。

(3)程序运行

程序的运行方式有单步运行、断点运行和连续运行几种方式。

①单步运行

输入DEBUG 跟踪命令“T ”或“T=地址”或“T=地址 指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T ”命令就能连续执行一条一条指令。 如在提示符“—”下,键入 “T=2000 ?” 显示 :

AX=0000 BX=0000 CX=001D DX-0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=169C ES=169C SS=169C CS=169C IP=2000 NV ……… 169C :2003 B91000 MOV CX , 0010

②断点运行

用运行命令 “G=地址 地址断点 地址断点…”执行指定地址的程序 在提示符“—”下,键入 “G=2000 2011 ?”

显示 169C :2011 F4 HLT 表示这段程序已经执行完毕。

③连续运行

输入DEBUG 命令“G=地址”,执行指定地址的程序

(WINDOWS 系统下,不建议使用此方式,改用断点运行,把最后一条指令后的地址设为断点,如G=2000 2011)

(4)用显示内存命令检查运行结果

在提示符“—”下,键入命令 “D 地址?”,根据其中的内容判断程序运行是否正确。

如检查以上程序执行后的结果,在提示符“—”下,键入“ D 3500?”,可显示 169C :3500 00 01 02 03 04 …… 15 169C :3510

(二)数码转换程序及其调试

****1、 将ASCII 码表示的十进制数转换为二进制数

1)程序设计的算法及其程序 十进制数据可表示为:

D I 代表十进制数1,2,3,…9,0 上式可转换为:

)

(110?=10?+?+10

?+10?∑0

=0

01

-1-i

n

i i n n n n D D D D )

())))((2+10?+?+10?+10?+10??=10

?0

12-1-0

=∑D D D D D D n n n i

n

i i (

由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。这里我们规定:被转换的ASCII码十进制数存放在3500H——3504H单位中。而转换结果存放在3510H——3511H单元中。2)实验步骤

(1)输入程序并检查无误。

(2)在3500H——3504H单元存入十进制数字的ASCII码,即E3500H↙,如十进制数12345则输入31 32 33 34 35H。

(3)G=2000 201E↙,运行程序

(4)用D3510↙来查看结果,并记录。

(5)反复试几个不同的数(必须有一个是学号后4位数),并考查程序的正确性。

地址(H)助记符注释

2000 MOV SI,3500 ;源地址

2003 MOV DI,3510 ;结果地址

2006 MOV BX,000A ;乘数 10

2009 MOV CX,0004 ;计数

200C MOV AH,00 ;AH 清零

200E MOV AL,[SI] ;取被转换数

2010 SUB AL,30 ;ASCII码变十进制数

2012 IMUL BX ;高位(AX)*(BX)送AX

2014 ADD AL,[SI+01] ;取下一位

1017 SUB AL,30 ;ASCII码减30变十进制数

2019 INC SI ;源地址指针+1

201A LOOP 2012 ;CX-1,若CX不等于零则继续

201C MOV [DI],AX ;若CX不等于零则存结果

201E INT 3

2将十进制数的ASCII码转换为BCD码

1)程序流程和程序

设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成BCD 码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,考程序如图1-2所示。

2)实验步骤

(1)输入程序并检查无误。

(2)在3500H——3504H单元中存入五位十进制数的ASCII码,即

E3500↙,如输入31,32,33,34,35。

(3)G=2000 201C↙,运行以上程序。

(4)D350A↙,显示结果为

(5)反复试几个不同的数(必须有一个是学号后4位数),考查程序的正确性。

地址(H ) 助记符 注释

2000 MOV CX ,0005;循环计数器赋初值 2003 MOV DI ,3500;ASCII 码首址 2006 MOV BL ,FF ; 错误标志送BL 2008 MOV AL ,[DI];送ASCII 码至AL 200A CMP AL ,3A ; 比较AL 与3AH

200C JNB 2014; 不低于3A 则转2014

200E SUB AL ,30; 低于3A 则取ASCII 码的低四位 2010 JB 2014; 低于30则转2014

2012 MOV BL ,AL ; 否则AL 内容送BL ,取代FF 2014 MOV AL ,BL ; 结果或错误标志送AL 2016 MOV [DI+0A],AL 2019 INC DI 201A LOOP 2006 201C INT 3

图1-2

3 将十六位二进制数转换为ASCII 码表示的十进制数

1)程序及其流程

十六位二进制数的值域为0——65535,最大可转换为五位十进制数。 算法:五位十进制数可表示为:

Di:表示十进制数0——9。

因此,将十六位二进制数转换为五位ASCII 码表示表示的十进制数,就是求D 1——D 4,并将它化为ASCII 码。程序流程图如图1-3所示,设源数据存于3500——3501H 单元中,结果数存于3510——3514H 单元中。

2)实验步骤

(1) 输入程序并检查无误。

(2) 用E 命令在3500——3501H 单元中存放一个16位二进制数,运行程序并用D 命令检查结果。 (3) 反复试几组数(必须有一个是转换成为二进制数的学号后4位数),并运行程序、观察结果。

地址(H ) 助记符 注释

2000 MOV DX ,[3500];取二进制数

2004 MOV SI ,3515; 目标首址在3510

1223344+10?+10?+10?+10?=D D D D D N D

2007 DEC SI

2008 MOV AX,DX

200A MOV DX,0000

200D MOV CX,000A

2010 DIV CX; ;除10

2012 XCHG AX,DX

2014 ADD AL,30

2016 MOV [SI],AL

2018 CMP DX,0000

201B JNE 2007

201D CMP SI,3510 ; 填余下高位为0

2021 JZ 202A;

2023 DEC SI

2024 MOV AL,30

2026 MOV [SI],AL

2028 JMP 201D

202A INT 3

图1-3

4、十六进制数转换为ASCII码

1)程序及其流程

经过CPU处理后的十六进制数存放在起始地址为3500H的内存单元中,把它们转换成ASCII 码之后,再分别存入起始地址为350AH的内存单元中。

从表2-1中可知,十六进制数加30H即可得到0H——9H的ASCII码,而要得到AH——FH的ASCII码,则需再加7H。参考程序如图1-4所示。

2)实验步骤

(1)输入程序并检查无误。

(2)用E命令在3500——3501H单元中存入四位十六进制数。

(3)G=2000 2021↙,运行以上程序

用D命令显示结果。

(4)反复试几组数(必须有一个是转换成为二进制数的学号后4位数),考查程序的正确性。

地址(H)助记符注释

2000 MOV CX,0004

2003 MOV DI,3500

2006 MOV DX,[DI]

2008 MOV AX,DX

200A AND AX,000F ;取低四位值

200D CMP AL,0A; ; 判是否“0”-“9”

200F JB 2013 ;是“0”-“9”转2013

2011 ADD AL,07;是“A”-“F”,加7

2013 ADD AL,30;转换为ASCII码

2015 MOV [DI+0A],AL

2018 INC DI

2019 PUSH CX ;保护循环计数器内容

201A MOV CL,04;移位次数送CL

201C SHR DX,CL

201E POP CX

201F LOOP 2008

2021 INT 3

图1-4

4BCD码转换为二进制数

1)程序及其流程

设四个二位十进制数的BCD码存放在起始地址为3500H,的单元中,转换出的二进制数码存入起始地址为3510H的内存单元中,参考程序如图1-5所示。

地址(H)助记符注释

2000 MOV CX,0004

2003 MOV DI,3500

2006 MOV AL,[DI]

2008 ADD AL,AL ;乘2

200A MOV BL,AL

200C ADD AL,AL ;乘2

200E ADD AL,AL ;乘2

2010 ADD AL,BL ;乘10

2012 INC DI

2013 MOV AH,00

2015 ADD AL,[DI]; BCD码十位与个位加

2017 MOV [DI+0F],AX;存结果图1-5

201A INC DI

201B LOOP 2006

201D INT 3

2)实验步骤

(1)输入程序并检查无误。

(2)在3500——3507单元中存入四个十进制数(12,34,56,78)的BCD码,即E3500↙输

入01,02,03,04,05,06,07,08。

(3)G=2000 201D↙,运行以上程序。

(4)D3510↙,显示结果为3510 0C 00 22 00 38 00 4E 00

(5)反复试几组数反复试几组数(必须有一个是学号后8位数),考查程序的正确性。

四、思考题

1、图1-1程序,将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,

最大又可为多少?为什么?

2、将一个十六位二进制数转换为ASCII码十进制数时,如何确定D1的值?

3、在十六进制数转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?

4、自编ASCII码→十六进制、十进制小数→二进制、二进制→BCD码的程序,并调试运行。

实验二程序设计和PC机上程序调试操作实验

一、实验目的

1.掌握常用程序设计的基本技巧和方法。

2.学会和熟悉使用MASM汇编程序和LINK连接程序。

3.掌握使用PC机上编程和调试程序的方法。

二、实验设备

PC机一台,装有DOS基本系统和MASM宏汇编软件

三、实验内容及步骤

(一)按要求编写程序并在DEBUG下建立、汇编和调试程序

1、四字节二进制数的加法

1)程序设计要求

两个字的被加数存放于3500H-3503H单元,加数存于3504H-3507H单元(存放格式为高位存高地址单元,低位存低地址单元),两数之和(如不超过四字节)存放于3508H-350BH单元。2)实验步骤

(1)编写程序。

(2)在DEBUG下输入程序并检查(程序可存放于2000H-8000H单元)。

(3)在3500H-3507H单元中存入被加数014527和加数146758。

(4)运行程序后,检查3508H-350BH单元中内容。

(5)反复选择几组被加数和加数,检查结果,验证程序正确性。

2、数据块的搬移

1)程序设计思想和要求

将内存中一数据区中数据(源数据块)传送到另一数据区(目的数据块)。

源数据块和目的数据块区在内存中的位置有两种情况:两区重叠和不重叠,如下图所示。

对于两个数据块不重叠的情况,数据的传送可从数据块的首址开始,也可从数据块的末址开始;对于两个数据块重叠的情况,则要加以分析,否则重叠部分会因搬移而遭破坏。处理方法可以是:在源数据块首址>目的数据块首址时,从数据块的首址开始传送,在数据块首址<目的数据块首址时,从数据块的末址开始传送。

若源数据块首址存放于SI 中,目的数据块首址存放于DI 中,块字节数存放于CX中。要求设计的程序能够实现不同情况下的数据块传送。

2)实验步骤

(1)编写程序。

(2)在DEBUG下键入程序并检查(程序可存放于2000H-8000H单元)。

(3)确定源数据块和目的数据块区不重叠时的首址,确定数据块个数为16个。并在源数据区送入任意16个数据。

(4)运行程序后,检查目的数据区的内容。

(5)确定源数据块和目的数据块区重叠时,源区首址>目的区首址时的首址,以及数据块个数为16个,并在源数据区送入任意16个数据。运行程序后,检查目的数据区的内容。

(6)确定源数据块和目的数据块区重叠时,源区首址<目的区首址时的首址,以及数据块个数为16个,并在源数据区送入任意16个数据。运行程序后,检查目的数据区的内容。

****3、无序数据块的递增排序

1)程序设计思想和要求

在首址为3000H 的数据区中存放着一组无符号数,数据的长度存于3500H单元内,要求用冒泡法对该区中的数据按递增次序排列。

冒泡法的基本思想是从最后一个数(或从第一个数)开始,依次把相邻两个数比较,即第N个数与第N-1个数比较…,若大则交换,否则不交换,直到N个数都比较完为止。此时,其中最小数排在最前列。然后将剩下的N-1个数再按前述方法进行,找到N-1个数中最小的数。以后重复进行,直到全部按序排列。

2)实验步骤

(1)编写程序。

(2)在DEBUG下键入程序并检查(程序可存放于2000H-8000H单元,只要不与数据区重叠即可)。

(3)确定数据个数并输入3500H单元中,在首址为3500H的数据区中存入任意无符号数。

(4)运行程序并检查运行结果。

(6)反复修改数据个数和数据区中的数,运行程序、观察结果,验证程序的正确性。

4、求数的平方根

1)程序设计思想和要求

减奇数法是一种求取近似平方根和平方根的整数部分的方法。有公式:

n

∑(2K-1)=N2

k=1

若要求数S的平方根√S,则可以从S中减去奇数1、3、5…直到减为零或不够减下一个奇数为止,然后统计减去的奇数个数,它就是S的近似平方根。

被开方数为一个足够大的二进制数,存于首址为4000H的单元内,它的方根存放在以4500H 为首的单元内。

2)实验步骤

(1)编写程序。

(2)在DEBUG下输入程序并检查(程序可存放于2000H-8000H单元,和数据存放单元不要重叠)。

(3)在4000H为首的单元中存入一个任意大的数。

(4)运行程序并检查运行结果。

(6)反复修改被开方数,运行程序、观察结果,验证程序的正确性。

5、思考题

①如果二进制加数和被加数不限于四字节而为任意字节时,程序应作如何改动?

②修改原有的无符号数的排序程序为带符号数的排序程序。

③被开方数是一压缩型的BCD码十进制数时,程序应作如何修改?

(二)MASM汇编程序和LINK连接程序的使用操作

在DEBUG中,使用A命令建立程序,一般不能使用标号和伪指令,并不能保存汇编语言源程序,适用于简单程序。MASM宏汇编程序可以将编辑程序建立的源程序文件进行汇编,汇编后在盘上建立目标文件、列表文件和交叉参考文件。而目标文件经LINK程序连接以后成为可执行的文件,它可以在DOS下执行也可在DEBUG下调试。

1、计算机钢琴程序

1)实验内容

根据乐曲中不同的音符是由输出不同频率的声波而产生的原理,通过设置PC机中8253定时器不同的计数值,可由扬声器发出不同的曲调。以下是实现PC机作为一架可弹奏的钢琴演奏预定的曲调。程序中采用了INT 21H软中断调用了DOS的常用子程序。

源程序为:

DA TA SEGMENT

MESS DB ‘Push any key to stop!’,0dH,0aH,’$’

TABLE DW 524,588,660,698,784,880,988,1048,1176,1320,0

TABLEL DB 31H,31H,32H,31H,34H,33H,3BH

DB 31H,31H,32H,31H,35H,34H,3BH

DB 31H,31H,38H,36H,34H,33H,32H,3BH

DB 36H,36H,36H,34H,35H,34H,3BH,0AAH

DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’

STA DB 256 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DA TA, SS: STACK, ES: DATA

START PROC FAR DIV WORD PTR [TABLE+BX] PUSH DS MOV BX, AX

XOR AX, AX MOV AL, 10110110B

PUSH AX OUT 43H, AL

MOV AX, DA TA MOV AX, BX

MOV DS, AX OUT 42H, AL

MOV ES, AX MOV AL, AH

MOV AH, 09H OUT 42H, AL

LEA DX, MESS IN AL, 61H

INT 21H OR AL, 03H

KK: LEA SI, TABLEL OUT 61H, AL

CALL DELAY

IN AL, 61H

AND AL, 0FCH

OUT 61H, AL

QQ: INC SI

SING: MOV AH, 06H JMP SING

MOV DL, 0FFH FINISH: RET

INT 21H START ENDP

JNE FINISH

MOV AL, [SI] DELAY PROC NEAR ;延时子程序

CMP AL, 3BH PUSH CX

JNE DDD PUSH AX

CALL DELAY MOV AX, 500H ;大循环次数

JMP QQ X1: MOV CX, 0FFFFH ;小循环次数DDD: CMP AL, 0AAH X2: DEC CX

JE KK JNZ X2

SUB AL, 31H DEC AX

SHL AL, 01H JNZ X1

MOV BL, AL POP AX

MOV AX, 0000H POP CX

MOV DX, 12H RET

MOV BH, 00H DELAY ENDP

CODE ENDS

END START

2)实验步骤

(1)利用EDIT 全屏幕编辑程序或TURBO PASCAL中的编辑功能或任何一款文本编辑程序输入以上程序,以文件名为PLAYPIA..ASM存盘。

(2)在DOS系统下执行子目录MASM中的执行文件MASM.EXE ,用宏汇编程序将PLAYPIA.ASM.汇编成目标文件PLAYPIA.OBJ。操作过程如下:

显示键入

C:\MASM> MASM ?

MICROSOFT(R) …………

COPYRIGHT(C)……………

SOURCE FILENAME [.ASM] PLAYPIA ?

OBJECT FILENAME [PLAYPIA.OBJ]

SOURCE LISTING[NUL.LST] PLAYPIA ?

CROSS-REFERENCE[NUL.CRF]

WARNIING ERRORS 0

SEVERE ERRORS 0

如ERRORS 均为0 表示汇编正确,如不为0,则必须在编辑状态下重新修改源程序。

(3)运行子目录DOS下LINK执行文件将目标文件PLAYPIA.OBJ连接成为可执行的文件PLAYPIA.EXE。操作如下:

显示键入

C:\ LINK ?

MICROSOFT(R)…………………………

COPYRIGHT(C)…………………………

OBJECT MODULES[.OBJ]: PLAYPIA ?

RUN FILE[PLAYPIA.EXE] ?

LIST FILE[NUL.MAP] PLAYPIA ?

LIBRARIES[.LIB] ?

C:\

(4)在DOS下直接键入由MASM宏汇编和LINK连接程序生成的可执行文件文件名PLAYPIA,运行程序观察运行结果。

(6)修改程序中延时子程序的循环次数,重新汇编、连接后运行。

2、求数据块的最小值和最大值

1)实验内容

在以BUFFER为首址的内存中存放了若干个带符号数,其个数存放在首单元,寻找出它们最大值放到存储单元MAXV AL中,最小值放到存储单元MINVAL中。汇编语言源程序如下:DA TA SEGMENT

BUFFER DB 10,22,33,-80,127,-76,0,90,-45,60,-1

MINV AL DB ?

MAXV AL DB ?

DA TA ENDS

STACK SEGMENT PARA STACK ‘STACK’

STA DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

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

START PROC FAR

PUBH DS

MOV AX, 0

PUSH AX

MOV AX, DATA

MOV DS, AX

MOV ES, AX

LEA BX, BUFFER

MOV CH, 0

MOV CL, [BX]

INC BX

MOV AL, [BX]

MOV MINV AL, AL

MOV MAXV AL, AL

INC BX

DEC CX

AGAIN: MOV AL, [BX]

CMP AL, MINV AL

JE NEXT

JG A1

MOV MINV AL, AL

JMP NEXT

A1: CMP AL, MAXV AL

JL NEXT

MOV MAXV AL, AL

NEXT: INC BX

DEC CX

JNE AGAIN

RETF

START ENDP

CODE ENDS

END START

2)实验步骤

(1)用编辑程序建立源程序文件,文件名自定。

(2)用MASM宏汇编程序和LINK连接程序将源程序文件汇编生成以EXE为扩展名的执行文件。(3)用DEBUG调试程序将由上产生的EXE可执行文件送入内存,先用反汇编命令检查程序内容和首末地址,然后检查以BUFFER为首址的存储单元中数据块和MINV AL、MAXV AL单元的内容。BUFFER 地址单元的段地址和偏移地址是由系统在汇编和连接时指定的。各个不同的系统都不一样,一般来说,偏移地址为零,段地址可在反汇编程序时,根据指令MOV AX,DATA 对应机器码中DATA的值来确定。

(4)在DEBUG下运行程序,检查运行结果。

(5)修改源程序中BUFFER数据区的各数据,重新汇编后再运行,检查结果。

****3、从无序数列中删除一个元素

1)实验内容

在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无序字串,若找到则删除并作相应调整,若字串中无此字符则在FLAG单元内置FFH标志。其程序流程图如下。

2)实验步骤

(1)按以上框图编写程序,并任意设定字符个数和字符串。

(2)输入汇编语言源程序,文件名自定。

(3)用MASM和LINK程序汇编和连接生成EXE执行程序。

(4)运行该程序,并检查结果。

(5)修改字符串及其个数,再运行程序,验证程序的正确性。

4、思考题

①计算机钢琴程序中,INT 21 的作用是什么?指令DIV WORD PTR[TABLE+BX]中为什么要用操作符WORD PTR?延时子程序DELAY中为什么要把AX、CX压入栈?

②在求最大和最小值的程序中,有指令MOV MINV AL,AL和MOV MAX MAXV AL,AL将第一个数存入这两个单元,可以用哪两个立即数直接存入这两个单元也可达到同样效果?

③若求无符号数据块的最大和最小值,那么程序要作哪些修改?

④删除一个升序或降序字符串中一个字符时,程序应如何修改可使在找不到这个字符时搜集次数减少?

四、实验报告要求

1.对所有程序写上较详细的注释。

2.整理出实验中数据和运行结果。

3.总结DEBUG程序、MASM宏汇编、LINK连接程序的调试程序的方法和经验。

4.根据思考题写出答案和运行结果。

实验三DOS系统功能调用及模块化程序设计

一、实验目的

2、熟悉DOS系统中基本功能子程序的作用及其调用方法。

3、结合DOS系统中键盘和显示功能子程序的调用和汇编语言源程序结构设计有关程序。

4、掌握复杂程序的设计思想—模块化程序设计的方法。

二、实验设备

PC机一台,装有DOS基本系统和MASM宏汇编软件。

三、实验内容及步骤

(一)DOS键盘、显示基本功能子程序调用

DOS提供了许多系统功能子程序可由程序设计者调用,其中最基本的是键盘和显示操作功能的调用,具体调用的方法可参阅教科书。

****1\、显示缓冲区的字符串

1)实验程序:

DSEG SEGMENT

STRING DB ‘Welcome to DONG HUA University!’,0dH,0aH,’$’

DSEG ENDS

STACK SEGMENT PARA STACK ‘STACK’

DB 256 DUP (?)

STACK ENDS

CSEG SEGMENT

MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG SS: STACK

START: PUSH DS

MOV AX, 0

PUSH AX

MOV AH, 9

MOV DX, SEG STRING

MOV DS, DX

MOV DX, OFFSET STRING

INT 21H

RET

MAIN ENDP

CSEG ENDS

END START

2) 实验步骤:

(1)建立源程序文件。

(2)用MASM宏汇编程序和LINK连接程序生成执行程序。

(3)运行执行程序,输入不同字母,观察结果。

2、键盘输入小写字母,显示器显示大写字母

1)实验程序:

CSEG SEGMENT

MAIN PROC FAR

ASSUME CS:CSEG

START:PUSH DS

MOV AX,0

PUSH AX

BEGIN: MOV AH,1

INT 21H

CMP AL,‘a’

JB STOP

CMP AL, ‘z’

JA STOP

SUB AL, 20H

MOV DL, AL

MOV AH, 2

INT 21H

JMP BEGIN

STOP: RET

MAIN ENDP

CSEG ENDS

END START

2) 实验步骤:

(1)建立源程序文件。

(2)用MASM宏汇编程序和LINK连接程序生成执行程序。

(3)运行执行程序,输入不同字母,观察结果。

3、从键盘输入一个二位十进制的月份数(01-12),显示相应月份的英文缩写名

1)程序及其结构

程序采用子程序的结构形式,子程序有:将输入的二位月份数转换为二进制数的子程序;从字符表中查找相应的英文缩写的子程序;将月份的英文字母显示在屏幕上的子程序。

程序如下:

DA TASG SEGMENT PARA ‘DA TA’

THREE DB 3

MONIN DB 3,4 DUP(?)

ALFMON DB ‘???’,’$’

MONTAB DB ‘JAN’,’FEB’,’MAR’,’APR’,’MAY’,JUN’

DB ‘JUL’,’AUG’,’SEP’, ’OCT’,’NOV’,’DEC’

DA TASG ENDS

CODESG SEGMENT PARA ‘CODE’

ASSUME CS:CODESG,DS:DATASG

MAIN PROC FAR

PUSH DS

SUB AX, AX

PUSH AX

MOV AX, DA TASG

MOV DS, AX

MOV ES, AX

CALL INPUT

CALL LOCATE

CALL DISPLAY

RET

MAIN ENDP

INPUT PROC NEAR ;键盘输入并将ASCⅡ码转换二进制数的子程序PUSH DX

MOV AH, 0AH ;键盘输入月份数

LEA DX, MONIN

INT 21H

MOV AH, MONIN+2 ;将月份数字的ASCⅡ码取入AH和AL

MOV AL, MONIN+3

XOR AX, 3030H ;将ASCⅡ码转换为BCD码

CMP AH, 00

JZ RETURN

SUB AH, AH

ADD AL, 10

RETURN: POP DX

RET

INPUT: ENDP

LOCATE PROC NEAR ;将月份数字转换为英文缩写字母的子程序

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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、2、3型电力机车的电气系统为研究对象,对机车的电气系统特点按照主电气电路、辅助电气电路、微机控制系统分类做了系统的比较分析。 【关键词】电力机车;主电气电路;辅助电气电路;控制系统 1 引言 和谐系列电力机车是南车集团和北车集团与国外企业合作,引进消化技术,并国产化的新一代交流货运机车,型号有HXD1、HXD1B、HXD1C,HXD2、HXD2B、HXD2C和HXD3、HXD3B、HXD3C。和谐型系列机车电气系统的主、辅回路均采用了交流控制技术,系统的设计坚持起点高、技术领先的原则,采用先进、成熟、可靠的技术,按照标准化、系列化、模块化、信息化的总体要求进行全方位设计的。 2 主电气系统 机车主电气电路主要由网侧电路、主变压器、牵引变流器及牵引电机构成,如图1所示。其中和谐型系列电力机车网侧电路主要由受电弓、主断路器、台避雷器、高压电压传感器、高压电流传感器、高压隔离开关、主变压器原边、回流侧互感器和接地碳刷等组成。下面主要从主变压器、变流器和牵引电机三个方面进行比较。 图1 简化主电气电路 2.1 HXD1型电力机车主电路特点 (1)主变压器 采用EFAT6744型电力机车牵引变压器。其内除主变压器外,还装有两台100HZ滤波电抗器。它们装在一个邮箱内,共用一个冷却系统。主变压器是单相变压器,卧式结构,采取车体下悬安装方式。 (2)牵引变流器 每台机车由2节车组成,每节车设有1个牵引变流柜,每个牵引变流柜由2套相互独立的变流器组成。一个变流器包含2个并联的四象限整流器、1个牵引逆变器和1个辅助逆变器等。 (3)牵引电机

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

微机原理及应用实验

实验报告1 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微机实验报告(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分,共30分) 1、CPU访问存储器时,在地址总线上送出的地址称为物理地址。 2、80X86系统中,执行指令PUSH AX后,SP= SP-2 ;若执行指令POP AX 后,SP= SP+2 。 3、指令“MOV AX,2000H”源操作数的寻址方式为立即数 ;指令“MOV AX,[BX+SI+6]”源操作数的寻址方式为带偏移量的基础加变址。 4、设(DS)=24EOH,(SS)=2410H,(ES)=2510H,(DI)=0206H,则指令“MOV AX,[DI+100H]”源操作数的有效地址为 0306H ,物理地址为 25106H 。 5、80486可访问两个独立的地址空间,一个为I/O地址空间,其大小为 64K 字节。 6、执行指令“XOR AX,AX”后,标志位ZF的值为 1 。 7、若(AL)=10011000B,(BL)=01100111B,则执行指令“ADD AL,BL”后,(AL)=11111111B;执行指令“AND AL,BL”后,(AL)= 0 。 8、可屏蔽中断从CPU的 INTR 引脚进入,只有当中断允许标志IF为 1 时,该中断才能得到响应。 9、中断向量表存放在从 00000H 至 003FFH 存储空间中。 10、在实地址方式下,中断类型号为20H的中断所对应的中断向量,存放在内存 从 00080H 开始的四个连续字节单元中,若这四个字节单元的内容由低地址到 高地址依次为00H,50H,00H,60H,则中断服务程序的入口地址 65000H 。 11、80X86的I/O指令中,要寻址的16位的端口地址存放在 DX 中。 12、现要用6116静态RAM芯片构成8K×32位的存储器,此种芯片共需16 片。 13、8255A在“方式1输出”与外设之间的一对"握手"信号是 ACK和OBF 。 14、由实地址方式上,由逻辑地址获得物理地址的计算公式为:

微机实验报告

微机实验报告 标准化文件发布号:(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

机车微机控制系统概述

第六章机车微机控制系统 第一节机车微机控制系统概述 一、微机控制系统的基本概念和特点 微机控制系统一般都具有三个要素,即控制对象、信息处理机构、执行机构控制目标;信息处理机构将目标值和实际情况进行比较、运算,给执行机构控制对象出动作指令;执行机构根据接收到的动作指令进行调节,以求达到或尽员接近控制目标。图6一1所示为控制系统示意图。 控制系统有开环控制和闭环控制之分。在开环控制中,输出信号不反馈到信息处理机构;在闭环控制中,信息处理机构是根据给定目标与输出反馈信号的差值来进行控制的。毫无疑问,闭环控制比开环控制易于稳定并具有较高的精度。 一个复杂的控制系统可以由多个闭环系统组合而成,如速度环、电流环、电压环等。例如,55型电力机车微机控制系统,不论是在正常工况下还是在故障工况下,都采用闭环控制,由系统自动调节,从而减轻了司机的劳动强度,简化了司机的操作程序。 在电力机车上,微机的控制目标主要是电机电枢电流和机车速度,信息处理机构是微型计算机,执行机构是晶闸管变流装置。即微机根据司机给定的手柄级位以及实际机车速度来调节晶闸管的触发角,从而使机车稳定运行在司机希望的工况。 我国558型电力机车是国产电力机车中首次采用微机控制的车型。以往的机车都采用模拟控制,如553、554改和55:型机车等,它们都是采用以运算放大器为基础的模拟控制方式。随着电力电子技术、半导体集成技术的发展和控制要求的提高,用微机控制来取代模拟控制是牵引动力技术发展的必由之路,它标志着机车控制技术水平上升到了新阶段。与膜拟控制相比,微机控制有以下特点: (l)微机控制系统不仅需要有硬件,而且必须有软件,而模拟控制中左右硬件。硬件是指各种能完成一定功能的电子插件,是看得见摸得着的。软件是指为实现一定功能而*制的程序,它通常存储在断电也能保存的器件(如 EPROM、ROM)中,是一串由0和1构成的代码。软件又分系统软件和应用软件。对用户来讲,主要是根据需要编制应用软件。 (2)微机控制系统的硬件是通用的,它不是针对某个特定任务设计的。例如,我们现在使用的微机控制硬件就能在所有交直传动车上使用,尽管有些功能可能在某种车型上并不需要。因此,微机控制的优点就是通用,易于从一种车型移植推广到另一种车型,而且易于适应设计过程中新增加的控制功能要求。而模拟控制的电路有一定的针对性,不同的车型不能互相通用。 (3)微机控制具有灵活可变的软件,对于不同机车的不同的控制功能要求,可用改变软件的方法来实现。在研发过程中,对于设计,调试过程中新提出的问题可以通过修改,增加一段程序的方法来解决,一般不必改动硬件。而在模拟控制中,没增加一个功能都必须通过增加相应的电路来实现,功能越多,则硬件电路越多,也越复杂。有些控制功能用硬件来实现电路比较复杂,如果用软件来是实现则只是增加一段相应的程序。因此,在微机控制中,有时用软件来实现一些硬件难于实现的功能。例如,多段折线的函数发生器,空转保护中的速度差,加速度,加速度的变化率,轮径修正及减流曲线等,用软件实现既方便快

微机原理及应用实验报告81487

实 验 报 告 课 程 名 称 实 验 名 称 实 验 日 期 学 生 专 业 学 生 学 号 学 生 姓 名 教 师 姓 名 成 绩 南京理工大学机械工程学院 微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日

实验一DEBUG命令及其操作 一、实验目的 1.熟练掌握debug的常用命令,学会用debug来调试程序。 2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3.掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。 2.本实验要求在PC机上进行。 3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容 ●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求: 1.写出运行结果; 2.小结debug常用命令及使用体会 答:1.原文已给出(略) 2.a 汇编 d显示内存单元内容 e修改单元内存内容 g执行命令 t单步(或多步)调试 n指定文件路径文件名(含扩展名) u反汇编 r查看寄存器值及修改 l加载程序 w写盘命令 体会:提升学习热情和动手能力有助于理解代码执行过程 ●实验内容2 设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 实验报告要求: 1.写出完成上述功能的程序段; 2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值 答: A100 Mov ax,3000 ;ax:3000 bx:0000 sp:ffee Mov bx,5000 ;ax:3000 bx:5000 sp:ffee Push ax ;ax:3000 bx:5000 sp:ffec

东华大学11级选课手册

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

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

2020年东华大学计算机病毒课实验六宏病毒实验报告.pdf

计算机病毒实验报告 姓名: 学号: 老师: 日期:

一. 实验目的 Word宏是指能组织到一起为独立命令使用的一系列Word指令,它能使日常工作变得容易。本实验演示了宏的编写,通过两个简单的宏病毒示例,说明宏的原理及其安全漏洞和缺陷,理解宏病毒的作用机制,从而加强对宏病毒的认识,提高防范意识。 二. 实验内容 1. macro virus中的内容 2. 信安实验平台--->计算机病毒篇 ---->计算机宏病毒 3. 结合杀毒软件如诺顿、卡巴斯基等,观察病毒查杀现象 三. 实验环境 1. macro virus 硬件设备:局域网,终端PC机。 系统软件:Windows系列操作系统 支撑软件:Word 2003 软件设置:关闭杀毒软;打开Word 2003,在工具→宏→安全性中,将安全级别设置为低,在可靠发行商选项卡中,选择信任任何所有安装的加载项和模板,选择信任visual basic项目的访问. 实验环境配置如下图所示:

受感染终端受感染 Word 文档 被感染终端 2.计算机宏病毒 硬件设备:部署 WIN2003 系统的PC 机一台 软件工具:Office word2007

四.实验步骤及截图 1.自我复制,感染word公用模板和当前文档 打开一个word文档,然后按Alt+F11调用宏编写窗口(工具宏Visual Basic宏编辑器),在左侧的project—>Microsoft Word 对象ThisDocument中输入以上代码,保存,此时当前word文档就含有宏病毒 只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。

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

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

微机原理与应用作业答案

1. 若二进制数为 ,则该数的十进制表示为( B : )。 2. 为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。 24. 若某C P U 具有64G B 的寻址能力,则该C P U 的地址总线宽度为( 36 )。 25. 下列数中最小的数是( A (1011011)2 )。 26. 指令队列具有( D 暂存预取指令 )的作用。 27. 指令队列工作方式为( A 先进先出 )。 28. 堆栈存储器存取数据的方式是( C 先进后出)。 29. 8086系统中,一个栈可用的最大存储空间是( B 64KB )。 30. 8086C P U 有( C 8 )个8位的通用寄存器。 31. 8086C P U 共有( D 14)个16位寄存器。 32. 某补码表示的8位二进制整数由5个1和3个0组成,则其可表示的最小值是 ( A -113 )。 33. 16个字数据存储区的首址为70A 0H :D D F 6H ,末字单元的物理地址为( C :7E814H )。 34. 8个字节数据存储区的首址为70A 0H :D D F 6H ,末字节单元的物理地址为( D :7E7FDH )。 35. 用M B 表示存储器容量时,1M B 等于( C 220个字节)。 1. 8086与外设进行数据交换时,常会在( T 3 )后进入等待周期T w 。 2. 下列说法中属于最小工作模式特点的是( A CPU 提供全部的控制信号)。 3. 下列说法中属于最大工作模式特点的是( C 需要总线控制器8288 )。 4. 8086 C P U 中,需要( B 2 )片数据总线收发器芯片8286。 5. 8086C P U 中,需要( C 3 )片地址锁存器芯片8282。 6. 从8086存储器中读取非规则字需要( B 2 )个总线周期。 7. 从8086存储器中读取奇地址存储的字节需要( A :1 )个总线周期。 8. 下列说法中,不正确的是( C 栈底是堆栈地址较小的一端)。 9. 在8086系统中,用控制线( D M/IO )实现对存储器和I /O 接口的选择。 10. C P U 对存储器访问时,地址线和数据线的有效时间关系为( B 地址线先有效)。 11. 8086 C P U 共有( D 21 )根分时复用总线。

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

目录 实验一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 运行结果:

微机原理及应用 上机实验报告2 数据传送

课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_________数据传送___________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求(必填) 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容和原理(必填) 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、主要仪器设备(必填) PC机一台。 四、操作方法和实验步骤 逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。 五、程序清单 1. ORG 0000H CLEAR MOV R0,#30H ;间接寻址 MOV A,#40H ;立即寻址 MOV @R0,A ;间接寻址 MOV A,30H ;直接寻址 MOV DPTR,#0100H ;间接寻址 MOV A,#36H MOVX @DPTR,A MOV R0,#50H ;立即寻址 MOV A,#10 MOVC A,@A+DPTR ;变址寻址 END

微机原理及应用试题

名姓 号学 级班 系 院学 扬州大学试题纸 (2009 —2010学年第1学期) 广陵学院07班(年)级课程微机原理及应用(A)卷 题目-一一-——二■——三四五总分 得分 阅卷人 分 ) 1 得分阅卷人审核人、选择题 (20%,每题 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B. 冯?诺依曼 C.图灵 D. 帕斯卡尔 2. 十进制数95转换成二进制数是(D ) A.10010101 B.01100101 C. 0100110 D.01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D.01000111B 4?在微机中,主机和高速硬盘进行数据交换,一般采用的方式是(D ) A.程序直接控制方式 B. 程序中断控制方式 C.无条件传送方式 D. DMA 方式 5?将寄存器AX的内容求反的正确指令是(C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX , AX 6.指令MOV ARRAY[DI], DX 源操作数的寻址方式是(B ) A.变址寻址 B. 寄存器寻址 C.基址寻址 D. 基址变址寻址 7. 8086/8088 响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B. 从外设取得 C.由指令INT给出 D. 由中断控制器提供 8.8086指令队列的长度是(C ) A. 4个字节 B.5 个字节 C.6 个字节 D.8 9.在最小模式下,CPU从外设读取数据操作, M / IO、WR、 个字节 RD信号的状态依次为(A ) A. 0 , 1, 0 B. 0 ,三态,0 C. 0 , 0, 1 D. 1 , 1, 0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是 (D )

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械1301班 :黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容 3.

微机原理及应用

《微机原理及应用》 实训指导书 山东科技大学泰山科技学院

目 录 一、实训性质 (1) 二、实训目标 (1) 三、实训基本要求 (1) 四、实训过程要求 (1) 五、实训题目 (2) 实训一 学生成绩统计 (2) 实训二 打字游戏 (3) 实训三 乒乓球比赛游戏机 (3) 实训四 交通灯控制 (4) 实训五 反应测试仪 (5) 实训六 电子琴 (5) 实训七 猜数字游戏 (6) 实训八 微秒计时器 (6) 实训九 参数可调波形发生器 (6) 实训十 模拟电梯 (7) 实训十一 多通道温度采集与显示系统 (8) 试验十二 计算机串行通信接口的设计与应用 (8) 实训十三 流水线模拟监视器 (8) 实训十四 数据传送显示 (9)

一、实训性质 《微机原理及应用》实训教学是学生在完成《微机原理及应用》理论学习之后,为培养学生 的动手能力而必须完成的实践性教学环节。在进行本教学环节之前,学生应具备《微机原理及应 用》的理论基础知识。 二、实训目标 《微机原理及应用》实训的教学让学生通过接触客观实际,来了解和认识所学的专业知识, 让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过 程,并能亲自动手完成相关题目设计。让学生对实际课题设计的过程和方法有个很好的认识,又 能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。 在进行实训的同时,教师应培养学生具有初步的科研意识,培养学生查找资料、运用设计资 料,完成工程问题的能力,为后继课程的学习打下坚实的基础。 三、实训基本要求 为检验学生在原理与接口综合应用方面分析问题与解决问题的能力,同时亦给学生提供更 多、更好的训练机会,本指导书给出了微机硬件应用综合测试题。大部分测试题,至少需要选用 PC 总线微机实验装置中 3 部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用软 件。为了发挥每一个同学的创造能力,每一测试题除了题目外仅给出设计要求(又分基本要求与 进一步要求两部分)及很少的设计提示。学生可根据设计要求,选择最合适的器件,构成最有效 的硬件电路来完成。对于学有余力的学生,除了完成基本要求与进一步要求的内容外,还可对同 一题选择不同的器件(而这往往总是能做到的)构成不同的硬件电路,尽情发挥和创造。 四、实训过程要求 1.软件部分 对软件部分,建议按如下的步骤进行: (1)首先正确理解题意及题目要求,分析程序设计思想; (2)建立算法,绘制流程图; (3)再根据算法流程图编写程序;

相关主题
文本预览
相关文档 最新文档