文档库 最新最全的文档下载
当前位置:文档库 › 四川大学微机原理实验报告

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

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

微机原理实验报告

学院:

专业班级:

姓名

学号

实验一汇编语言编程基础

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语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

实验二设计汇编语言程序

一.功能说明

练习1.实验题目:编程计算下列表达式:A=90,B=-70,C=5,Y均为有符号数,计算Y=2×(A+B)+(A×C)÷5

要编写一些稍微复杂的程序,我们会遇到一段程序被反复执行,这样,我们会用到LOOP 指令。使用该指令时,需在CX中装入循环次数。

练习2.码转换程序设计

编制程序,把十进制数15786转化成二进制数。

提示:15786=1×10×10×10×10+5×103+7×102+8×10+6,循环CX=5

练习3.编制程序,从键盘输入最多5个数,求他们的和,存入SUM。

练习4.用“冒泡“法对一组数300,250,280,240,260,按从小到大的顺序排列。

提示:用冒泡的方法对一组数据元素排序,它的基本方法是:将相邻的两个元素通过比较进行排序,通过多次,多遍的邻元素排序,实现整个一组数的排序。

对于5(N)个元素,整个排序通过4遍(=N-1)邻元素排序完成。每一遍的排序由若干次邻元素的排序组成。

4遍排序中,邻元素的排序依次为4,3,2,1遍。完成第一遍排序后,最大数沉底,已经到达它应占据的位置,不需要参加下一遍的排序。

外循环的次数为CX=4次(N-1),内循环的次数为4,3,2,1(DEC CX)

排序遍数本遍排序前第一次排序

后第二次排序

第三次排序

第四次排序

1 300,250,280,

240,260 250,300,280,

240,260

250,280,300,

240,260

250,280,240,

300,260

250,280,240,

260,300

2 250,280,240,

260,300250,280,240,

260,300

250,240,280,

260,300

250,240,260,

280,300

3 250,240,260,

280,300250,240,260,

280,300

240,250,260,

280,300

4 240,250,260,

280,300240,250,260,280,300

实验要求:

1.编制程序,从键盘输入300,250,280,240,260这五个数,并思考如何输入任意五个

数,五个数可以有一位数,二位数,三位数,四位数,五位数,混合输入比较大小;

2.对这组数用冒泡法进行排序,并输出原始数据及排序后数据,两两数据之间用空格分隔;

3.利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变化,以及会用调试命

令查看程序运算中寄存器中的值;

4.去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值;

5.用压栈PUSH和出栈POP指令“先进后出”的特点,设计算法将平均值按位逐个输出(即

输出263);

6.用移位指令将平均值以二进制串的形式输出。

7.设计程序要有模块化的思想,用子程序实现不同的功能;

所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在电脑屏幕上。

二.程序流程图

开始

输出 'QING SHU RU 5 GE SHU JU'提示输入数据

输入5个待排序的数据

输出'PAI XU HOU DE SHU JU SHUN XU SHI :'

CX=4(外循环)

CX 入栈

指针指向第一个数

比较相邻两数大小,前一个数比后

一个小?

CX 减1,指针指向下一个数

Y

将这两个数交换位置

N

CX=0?

N

外循环CX 出桟并减1

Y

CX=0?

N

输出排序后的五个数据

Y

输出’ZUI DA ZHI SHI :’

输出第5个数即最大值

输出’ZUI XIAO ZHI SHI :’

输出第1个数即最小值

输出’PING JUN ZHI SHI :’

CX=3

指针指向第二个数

将其由ASCII 码转换成2进制数

HE=0

HE=HE+该二进制数

CX=0?

指针指向下一个数

N

HE 除以3得到平均值

Y CX 减1

将平均值按位转换为ASCII 码逐个输出

输出’PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU :’

设置CX=16,SI=0,数据段设置变量STR1 DB 16 DUP(30H)

将平均值(二进制)带进位左移一位

CF=0?

将[STR+SI]对应的字符输出

Y

将[STR+SI]加1

N

SI 加1CX 减1CX=0?

结束

Y

N

三.程序代码

练习一:

DATA SEGMENT

A D

B 90

B DB -70

C DB 5

Y DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV BL,A

MOV CL,B

ADD BL,CL ;A+B

MOV AL,02H

IMUL BL ;2*(A+B)

MOV BX,AX

MOV AL,A

MOV CL,C

IMUL CL ;A*C

IDIV CL ;A*C/5 ADD AX,BX

MOV Y,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

练习二:

DATA SEGMENT

A DW 15786

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV BX,A

MOV CX,16

LEFT: TEST BX,8000H

JNZ L1 ;当首位为1,执行L1 MOV DL,'0' ;输出‘0’

MOV AH,02H

INT 21H

SHL: SHL BX,1

LOOP LEFT

MOV AX,4CH

INT 21H

L1: MOV DL,'1' ;输出‘1’ MOV AH,02H

INT 21H

JMP SHL

CODE ENDS

END START

运行结果:

练习三:

DATA SEGMENT

SUM DW ?

HEHE DB ?,?,?,?,? DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

LEA SI,HEHE

MOV BL,0

MOV CX,5

LOOP1: MOV AH,01H

INT 21H

SUB AL,30H

MOV [SI],AL

INC SI

LOOP LOOP1

MOV CX,5

MOV AX,0

SUB SI,5

LOOP2: ADD AL,[SI]

AAA

INC SI

LOOP LOOP2

MOV BX,AX

MOV SUM,AX

MOV DL,BH

ADD DL,30H

MOV AH,2

INT 21H

MOV DL,BL

ADD DL,30H

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行结果:

冒泡排序法程序:

DATAS SEGMENT

SHURU DB 'QING SHU RU 5 GE SHU JU',13,10,'$'

SHU1 DB 4,?,3 DUP(?)

SHU2 DB 4,?,3 DUP(?)

SHU3 DB 4,?,3 DUP(?)

SHU4 DB 4,?,3 DUP(?)

SHU5 DB 4,?,3 DUP(?)

AVER DB 3 DUP(?)

SHUCHU DB 'PAI XU HOU DE SHU JU SHUN XU SHI',':','$'

MAX DB 'ZUI DA ZHI SHI',':','$'

MIN DB 'ZUI XIAO ZHI SHI',':','$'

AVERAGE DB 'PING JUN ZHI SHI',':','$'

CHUSHU DB 100,10

HE DW ?

STR1 DB 16 DUP(30H)

STR2 DB 'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU',':','$' DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START: MOV AX,DATAS

MOV DS,AX

MOV ES,AX

LEA DX,SHURU;显示QING SHU RU 5 GE SHU JU:

INT 21H

MOV CX,5;输入五个数字

MOV SI,0

INPUT: LEA DX,[SHU1+SI];输入要排序的原始数据

MOV AH,10

INT 21H

MOV DL,10;输入后换行

MOV AH,2

INT 21H

ADD SI,5;指针加5,指向下一个变量

LOOP INPUT

CLD

MOV CX,4;设定排序外循环次数

A: MOV BP,0

PUSH CX;外循环次数入栈

PX: PUSH CX

MOV CX,3

LEA SI,[SHU1+BP+2];逐位比较两个数大小

LEA DI,[SHU1+BP+7]

REPZ CMPSB

JB B;如果小于直接比较下一个数,否则两个数对换位置

MOV CX,3

Jh: MOV AL,SHU1[BP+2]

XCHG AL,SHU1[BP+7];将两个字节对换位置,循环3次即完成这两个数的交换

XCHG AL,SHU1[BP+2]

INC BP

LOOP Jh

SUB BP,3

B: ADD BP,5;指向后面两个数字

POP CX

LOOP PX

POP CX;外循环次数出栈

LOOP A

LEA DX,SHUCHU;输出字符串'PAI XU HOU DE SHU JU SHUN XU SHI:' MOV AH,9

INT 21H

MOV CX,5

MOV SI,2

OUTPUT:PUSH CX;计数器入栈实现循环嵌套

MOV CX,3

L: MOV AL,[SHU1+SI];输出排序后的5个数字

MOV DL,AL

INT 21H

INC SI

LOOP L

MOV DL,2CH

MOV AH,2

INT 21H

ADD SI,2

POP CX;计数器出栈

LOOP OUTPUT

MOV DL,10

MOV AH,2

INT 21H

MOV DL,0DH

MOV AH,2

INT 21H

LEA DX,MAX;输出字符串'ZUI DA ZHI SHI:' MOV AH,9

INT 21H

MOV CX,3

MOV SI,2

D: MOV DL,[SHU5+SI];输出最大值

MOV AH,2

INT 21H

INC SI

LOOP D

MOV DL,10;换行

MOV AH,2

INT 21H

MOV DL,0DH

MOV AH,2

INT 21H

LEA DX,MIN;输出字符串'ZUI XIAO ZHI SHI:' MOV AH,9

INT 21H

MOV CX,3

MOV SI,2

E: MOV DL,[SHU1+SI];输出最小值

MOV AH,2

INT 21H

INC SI

LOOP E

MOV DL,10

MOV AH,2

MOV DL,0DH

MOV AH,2

INT 21H

LEA DX,AVERAGE;输出字符串'PING JUN ZHI SHI:'

MOV AH,9

INT 21H

MOV CX,3

MOV BX,10;除数10

MOV SI,2

AD: MOV DX,0

MOV AH,0

PUSH CX

MOV CX,3

ZH: MOV AL,[SHU2+SI];将十进制数转换为二进制数,为后面求平均值做准备 SUB AL,30H

PUSH AX

MOV AX,DX

MUL BX

MOV DX,AX

POP AX

ADD DX,AX

INC SI

LOOP ZH;执行3次完成3个十进制数的转换

ADD SI,2

POP CX

ADD HE,DX;将DX的数放在HE中

LOOP AD;循环后得到三个十进制数转换为二进制数之后的相加和

MOV DX,HE;

MOV AX,DX

XOR DX,DX

MOV BX,3

DIV BX;除3取平均值,结果将商放在AX中,余数放在DX中

MOV BX,AX;给BX赋值平均数,然后将BX中表示的十进制数转换为对应的字符串

DIV CHUSHU;除100取最高位

ADD AL,30H;转换为ASCII码

MOV AVER,AL

MOV AL,AH

XOR AH,AH

DIV [CHUSHU+1];除10取十位

ADD AL,30H

ADD AH,30H;余数就是个位

MOV [AVER+1],AL

MOV [AVER+2],AH

MOV CX,3

MOV SI,0

F: MOV DL,[AVER+SI];输出平均值

MOV AH,2

INT 21H

INC SI

LOOP F

MOV DL,10

MOV AH,2

INT 21H

MOV DL,0DH

MOV AH,2

INT 21H

LEA DX,STR2 ;输出字符串'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU:’ MOV AH,9

INT 21H

MOV CX,16

MOV SI,0

G: RCL BX,1;将平均数转换为二进制串

JNC H

ADD [STR1+SI],1;如果不为0就将其加1变成1的ASCII码值

H: MOV DL,[STR1+SI];将二进制串逐个输出

MOV AH,2

INT 21H

INC SI

LOOP G

MOV AH,4CH

INT 21H

CODES ENDS

END START

运行结果:

四.实验感想和收获

本次实验相较于第一次难度增大了很多,本人花了大约12个小时才做完。第一个练习很简单,从编译到连接都是一次通过,在用DEBUG调试发现结果却实正确。不过在做第二个练习时我遇到了困难,完全没有思路。当时不知道怎么对一位一位的数据进行操作,在看书的过程中无意中发现了循环指令,我才意识到用SHL指令可以实现这个功能。第三个联系主要考查我们对中断指令的了解程度,我实现地是一位数的加法,不过后来老师发给了我们他自己编的版本,我感慨道编程真是一门大学问,要考虑到各种各样的功能,人机互动,可能出错的地方。这都是需要大量的实践积累才行。

在编写冒泡排序法这个程序时我遇到了很多困难。起初在编写一段循环指令时,未把寄存器CX入宅,所以影响了其他部分的循环次数,导致结果出错。所以今后编程时一定要把有用的信息入宅,防止被其他指令所改变。在输出字符时,必须记得把要输出字符的值转变成ASCI码,我期初输出数字时就忘记了这一步导致出了很多差错。同时在将二进制数转变成BCD吗输出时可以通过除10来实现,将得到的商继续除10,而得到的余数就是个位的值,同理,再次除10得到的余数就是10位。所以通过适当此处的出发可以将二进制数转变为BCD码。

通过亲身实践这次试验,对汇编语言编程有了初步的认识,也体会到了编程的整个过程。从读题,设计程序框架到写代码,步步承接,同时将课堂上所学的知识运用起来,在加深理解的同时也发现了自己很多不懂的地方,于是通过自己查资料,问老师终于将程序一步步地调试正确得出期望的结果,那种自豪和满足感油然而生。

第三次实验 8253定时器/计数器与接口实验

——乐曲程序

一.功能说明

计算机是如何产生音乐和声响的呢?原来在计算机中有一个可编程时间间隔定时器8253,它能根据程序提供的计数值和工作模式,产生各种形状和各种频率的计数/定时脉冲,提供给系统的各个部件使用。它还可以产生不同频率的脉冲作为扬声器的声源。

在8253定时器内部有3个独立工作的计数器:Counter0, Counter1, Countre2,每个计数器都分配有一个端口地址,分别是40H,41H,42H。8253内部还有一个公用的控制寄存器,端口地址为43H,端口地址输入到8253的CS,A1,A0端,分别对三个计数器和控制器寻址。

对8253编程时,先要设定控制字,以选择计数器,确定工作模式和计数值的格式,每个计数器由三个引脚与外部联系,CLK为时钟输入端,GATA为门控制信号输入端,OUT为计数/定时信号输入端。每个计数器是以倒计数的方式计数,也就是说,从计数初值开始逐次减1,直到减为0为止。

端口地址与计数器的关系:

40H 选中计数器0:作为定时器为系统日时钟提供计时基准

41H 选中计数器1:作为定时器使用

42H 选中计数器2:用来控制扬声器发声

43H 公用的控制器:分别对三个寄存器和控制器寻址

那么,如何触动扬声器发出声音呢?原来PC机的主音箱上装有一只小喇叭,由定时器8253和并行接口芯片8255(可编程外围接口芯片)控制其发声,8255包括三个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口地址为60H和62H,输出寄存器分配的I/O端口地址为61H。8253定时器计数器2连接到扬声器,其电路如下:

8253 DRIVER

1.9318MHZ CLK 喇叭

OUT2

8255

与门

PB0 GATE2

PB1

装入计数器2的计数初值为533H(1.19318MHz/896Hz=1331=533H),这样,得到的控制字为10110110B=0B6H,即选中计数器2,读/写,工作方式三(方波发声器),二进制。

计数器2的初始化程序为:

MOV AL,0B6H

OUT 43H,AL

1)计算计数值程序段:

MOV DI,给定频率

MOV DX, 12H

MOV AX, 34DCH

DIV DI

AX中即为计数值。

2)打开扬声器发声,8255PB0,PBI送出高电平:

IN AL , 61H

OR AL , 3

OUT 61H , AL

3)关闭扬声器,停止发声:

IN AL ,61H

AND AL , 0FCH

OUT 61H, AL

两只老虎的音频表定义在数据段中,如下:

STACK SEGMENT

DW 100 DUP(?)

STACK ENDS

DATA SEGMENT

MUSIC DW 2 DUP(262,294,330,262) ; 频率表,1231;1231 DW 2 DUP(330,349,392) ;345;345;

DW 2 DUP(392,440,392,349,330,262) ;565431;565431

dw 2 dup(294,196,262),0 ;251;251,0表示结束

TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50 ;节拍表 DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50)

DW 2 DUP(250*50,250*50,500*50)

N EQU 32 ;32个音符

DATA ENDS

二.实验目的:

学习8253计数器2输出方波信号用以驱动扬声器发声的原理,通过程序设置计数器2的输出波形的频率和延续时间,控制扬声器的音调和发生长短。

三.实验内容:

1.设计程序让微机演奏一段两只老虎的乐曲。

2.思考如何让PC机演奏一遍,两遍以及数遍这段两只老虎的乐曲,并修改程序实现。

四.实验报告:

整理出运行正确的源程序清单(加以中文注释),并给出详细程序流程图。

三.程序代码

DATAS SEGMENT

BG DB 0AH,0DH,”TWO TIGER:$”

FREQ DW 2 DUP(262,294,330,262)

DW 2 DUP(330,349,392)

DW 2 DUP(392,440,392,349,330,262)

DW 2 DUP(294,196,262),0 ;频率表

TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50

DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50)

DW 2 DUP(250*50,250*50,500*50)

NUM DB 3

DATAS ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 200 DUP(?) ;堆栈段定义并分配存储空间STACK ENDS

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

STAT PROC FAR

PUSH DS ;DS中包含的是程序段前缀的起始地址

MOV AX,0

PUSH AX

MOV AX ,DATA

MOV DS,AX

MOV DX,OFFSET BG

MOV AH,09

INT 21H ;输出字符串“TWO TIGER”

LP0: MOV SI,OFFSET FREQ

MOV BP,OFFSET TIME

CALL SING ;调用子程序,开始演奏

DEC NUM

JNZ LP0

RET

STAT ENDP

SING PROC NEAR ;演奏子程序

PUSH DI

PUSH SI

PUSH BP

PUSH BX

REPTO: MOV DI,[SI] ;DI指向频率表首地址

CMP DI,0

JE END_SING 若DI=0,则演奏结束 MOV BX,DS:[BP]

CALL SOUND

ADD SI,2

ADD BP,2

JMP REPTO

END_SING:POP BX ;扬声器发声子程序

POP BP

POP SI

POP DI

RET

SING ENDP

SOUND PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

PUSH DI

MOV AL,0B6H ;开始计算计数值

MOV DX,12H

MOV AX 34DCH

DIV DI

OUT 42H,AL

MOV AL,AH

OUT 42H,AL

IN AL,61H ;打开扬声器发声

MOV AH,AL

OR AL,3

OUT 61H,AL

DELAY: MOV CX,20000 ;延时10MS

DL 10MS:LOOP DL10MS

DEC BX

JNZ DELAY

MOV AL,AH

OUT 61H,AL ;关闭扬声器

POP DI

POP DX

POP CX

POP BX

POP AX

RET

SOUND ENDP

CODE ENDS

END STAT

四.实验感想和收获

这个程序最初一直存在输出乱码的情况,后来经过单步调试,发现是通用子程序时没有进行现场的保护,几个存储器被多次赋值,导致最后不能输出正确的结果。因此我之后增加了堆栈段的定义,对几个寄存器进行了入栈保护,对子程

四川大学微机原理与接口技术何小海严华版(第二版)第五章至第十章课后习题参考答案

微机原理与接口技术何小海严华版(第二版) 第五章至第十章课后习题参考答案 [写在前面]本参考答案供同学们在写作业的时候,遇到想不通的题时进行参考。请不要直接copy 答案,否则对自己没有好处的。多思考,才有进步。 本参考答案中的程序及框图不唯一,只要符合题意的即可。 第五章半导体存储器 思考题与习题参考答案 5.4若用4Kx4位的RAM 芯片组成32Kx8位的存储器,需要多少芯片?A 19~A 0地址线中哪些参 与片内寻址?哪些参与作芯片组的片选择信号? 解答:(32K ×8)/(4K ×4)=16 A0~A11 A12~A19 5.6下列RAM 各需要多少条地址线进行寻址?多少条数据I/O 线? (1)512x4;(2)1Kx8;(3)2Kx8;(4)4Kx1;(5)64Kx1; (6)256Kx4。 解答: 5.7使用下列RAM 芯片,组成所需的存储容量,各需多少RAM 芯片?各需多少RAM 芯片组?共需多少寻址线?每块片子需多少寻址线?解答:

5.9若用2114芯片组成2KB RAM,地址范围为3000H~37FFH,问地址线应如何连接?(假设CPU只有16条地址线,8根数据线,可选用线选法和全译码法) 解答:

5.11习题图5-1为一个存储器与8086的连接图,试计算该存储器的地址范围,并说明该电路的特点。 解答:

第六章输入输出接口技术 思考题与习题参考答案 6.8设计一个外设端口地址译码器,使CPU能寻址4个地址范围: (1)240~247H;(2)248~24FH;(3)250~257H;(4)258~25FH。 解答:

四川大学电分实验报告

四川大学电气信息学院 实验报告书课程名称:电力系统分析 实验项目:单机—无穷大系统稳态运行实验与电力系统暂态稳定实验专业班级:电气工程及其自动化专业09303015 班级实验时间:2011年12月12日星期一 评阅老师: 成绩评定: 报告撰写人:张骏安学号:0943031056 电气信息学院专业中心实验室

单机—无穷大系统稳态运行实验 一、实验目的 1.了解和掌握对称稳定情况下,输电系统的各种运行状态与运行参数的数值变化范围; 2.了解和掌握输电系统稳态不对称运行的条件;不对称度运行参数的影响;不对称运行对发电机的影响等。 二、原理与说明 电力系统稳态对称和不对称运行分析,除了包含许多理论概念之外,还有一些重要的“数值概念”。为一条不同电压等级的输电线路,在典型运行方式下,用相对值表示的电压损耗,电压降落等的数值范围,是用于判断运行报表或监视控制系统测量值是否正确的参数依据。因此,除了通过结合实际的问题,让学生掌握此类“数值概念”外,实验也是一条很好的、更为直观、易于形成深刻记忆的手段之一。本实验系统是一种物理模型。原动机采用直流电动机来模拟,当然,它们的特性与大型原动机是不相似的。原动机输出功率的大小,可通过给定直流电动机的电枢电压来调节。实验系统用标准小型三相同步发电机来模拟电力系统的同步发电机,虽然其参数不能与大型发电机相似,但也可以看成是一种具有特殊参数的电力系统的发电机。发电机的励磁系统可以用外加直流电源通过手动来调节,也可以切换到台上的微机励磁调节器来实现自动调节。实验台的输电线路是用多个接成链型的电抗线圈来模拟,其电抗值满足相似条件。“无穷大”母线就直接用实验室的交流电源,因为它是由实际电力系统供电的,因此,它基本上符合“无穷大”母线的条件。 为了进行测量,实验台设置了测量系统,以测量各种电量(电流、电压、功率、频率)。为了测量发电机转子与系统的相对位置角(功率角),在发电机轴上装设了闪光测角装置。此外,台上还设置了模拟短路故障等控制设备。 三、实验电路图 四、实验项目和方法 (1)单回路稳态对称运行实验 ①合上EAL-02 上的状态开关QF2、QF6、QF4、QFS,使系统运行在单回路状态下; ②按照实验十进行启机、建压、并网; ③通过调速器中的“加速”“减速”按钮改变原动机功率,通过励磁调节器中“增磁”、

微机原理实验报告

汇编语言程序设计实验 一、实验内容 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

川大2020《微机原理与接口技术》第一次作业答案

首页 - 我的作业列表 - 《微机原理与接口技术》第一次作业答案 你的得分: 100.0 完成日期:2020年06月08日 10点46分 说明:每道小题选项旁的标识是标准答案。 一、单项选择题。本大题共16个小题,每小题 2.5 分,共40.0分。在每小题给出的选项中,只有一项是符合题目要求的。 1.二进制数101101转换为十六进制数的值是() A.55H B.2DH C.2CH D.B1H 2.二进制数101101转换为十进制数的值是() A.44 B.55 C.45 D.54 3.十六进制数FDH转换为十进制数的值是() A.253 B.255 C.254 D.256 4.十六进制数51FDH+26C4H的值是() A.78B1H B.87B1H C.78C1H D.87C1H 5.二进制数10110111B+11010011B的值(只取8位)是() A.10001001B B.10001011B C.10001010B

D.10001100B 6.二进制数10110111B-11010011B的值(只取8位)是() A.11100101B B.01100100B C.11100100B D.01100101B 7.二进制数10110111B与11010011B求和后,ZF与CF标志位的值为 () A.1、1 B.0、1 C.1、0 D.0、0 8.二进制数10110111B与11010011B求和后,PF与OF标志位的值为() A.1、1 B.0、1 C.1、0 D.0、0 9.二进制数10110111B与11010011B求和后,AF与SF标志位的值为 () A.1、1 B.0、1 C.1、0 D.0、0 10.八位无符号二进制数的补码如下,____ 的真值最大。() A.10001000B B.11111111B C.00000000B D.00000001B

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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循环右移四位

四川大学化工原理实验报告

竭诚为您提供优质文档/双击可除四川大学化工原理实验报告 篇一:xxxx学院化工原理实验报告 贵州理工学院化工原理实验报告 学院:化学工程学院专业:化工职教班级:化职131 篇二:化工原理实验报告张 资源与环境工程学院 精馏分离实训报告 姓名:张x 学号:xxxxxxxxx 专业:应用化工 班级:xxx 指导教师:张xx 20XX年12月 日24 目录 1.精馏实验 1.1精馏的原理

1.1.1精馏的分类 1.1.2精馏的计算方法 1.1. 2.1概述 1.1.3理论塔板数的计算方法 1.1.3.1图算法 1.1.3.2捷算法 1.1.3.3严格计算法 1.2实验目的 1.3实验原理 1.4实验材料 1.5实验过程 1.6实验结果 2.总结 1.精馏实验 精馏是一种利用回流使液体混合物得到高纯度分离的蒸馏方法,是工业上应用最广的液体混合物分离操作,广泛用于石油、化工、轻工、食品、冶金等部门。 1.1精馏的原理双组分混合液的分离是最简单的精馏操作。典型的精馏设备是连续精馏装置,包括精馏塔、再沸器、冷凝器等。精馏塔供汽液两相接触进行相际传质,位于塔顶的冷凝器使蒸气得到部分冷凝,部分凝液作为回流液返回塔底,其余馏出液是塔顶产品。位于塔底的再沸器使液体部分

汽化,蒸气沿塔上升,余下的液体作为塔底产品。进料加在塔的中部,进料中的液体和上塔段来的液体一起沿塔下降,进料中的蒸气和下塔段来的蒸气一起沿塔上升。在整个精馏塔中,汽液两相逆流接触,进行相际传质。液相中的易挥发组分进入汽相,汽相中的难挥发组分转入液相。对不形成恒沸物的物系,只要设计和操作得当,馏出液将是高纯度的易挥发组分,塔底产物将是高纯度的难挥发组分。进料口以上的塔段,把上升蒸气中易挥发组分进一步提浓,称为精馏段;进料口以下的塔段,从下降液体中提取易挥发组分,称为提馏段。两段操作的结合,使液体混合物中的两个组分较完全地分离,生产出所需纯度的两种产品。当使n组分混合液较完全地分离而取得n个高纯度单组分产品时,须有n-1个塔。 精馏之所以能使液体混合物得到较完全的分离,关键在于回流的应用。回流包括塔顶高浓度易挥发组分液体和塔底高浓度难挥发组分蒸气两者返回塔中。汽液回流形成了逆流接触的汽液两相,从而在塔的两端分别得到相当纯净的单组分产品。塔顶回流入塔的液体量与塔顶产品量之比,称为回流比,它是精馏操作的一个重要控制参数,它的变化影响精馏操作的分离效果和能耗。 1.1.1精馏的分类精馏操作按不同方法进行分类。根据操作方式,可分为连续精馏和间歇精馏;根据混合物的组分数,可分为二元精馏和多元精馏;根据是否在混合物中加入

四川大学电力系统自动装置实验报告

电力系统自动装置实验报告 学院: 电气信息学院 专业: 电气工程及其自动化 班级: 102班 学号: 1143031233 姓名: 杨宁 老师:肖先勇

同步发电机并车实验 一、实验目的 1、加深理解同步发电机准同期并列原理,掌握准同期并列条件; 2、熟悉同步发电机准同期并列过程; 3、观察、分析有关波形。 二、原理与说明 将同步发电机并入电力系统的合闸操作通常采用准同期并列方式。准同期并列要求在合闸前通过调整待并机组的电压和转速,当满足电压幅值和频率条件后,根据“恒定越前时间原理”,由运行操作人员手动或由准同期控制器自动选择合适时机发出合闸命令,这种并列操作的合闸冲击电流一般很小,并且机组投入电力系统后能被迅速拉入同步。根据并列操作的自动化程度不同,又分为手动准同期、半自动准同期和全自动准同期三种方式。 正弦整步电压是不同频率的两正弦电压之差,其幅值作周期性的正弦规律变化。它能反映两个待并系统间的同步情况,如频率差、相角差以及电压幅值差。线性整步电压反映的是不同频率的两方波电压间相角差的变化规律,其波形为三角波。它能反映两个待并系统间的频率差和相角差,并且不受电压幅值差的影响,因此得到广泛应用。 手动准同期并列,应在正弦整步电压的最低点(同相点)时合闸,考虑到断路器的固有合闸时间,实际发出合闸命令的时刻应提前一个相应的时间或角度。 自动准同期并列,通常采用恒定越前时间原理工作,这个越前时间可按断路器的合闸时间整定。准同期控制器根据给定的允许压差和允许频差,不断地检查准同期条件是否满足,在不满足要求时闭锁合闸并且发出均压均频控制脉冲。当所有条件均满足时,在整定的越前时刻送出合闸脉冲。 三、实验项目、方法及过程 (一)机组启动与建压 1、检查调速器上“模拟调节”电位器指针是否指在0位置,如不在则应调到0 位置; 2、合上操作电源开关,检查实验台上各开关状态:各开关信号灯应绿灯亮、红灯 熄。调速器面板上数码管在并网前显示发电机转速(左)和控制量(右),在 并网后显示控制量(左)和功率角(右)。调速器上“并网”灯和“微机故障” 灯均为熄灭状态,“输出零”灯亮;

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

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 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语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理实验报告

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

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在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

川大《微机原理与接口技术》19秋在线作业2答案

《微机原理与接口技术》18春在线作业2-0002 试卷总分:100 得分:100 一、单选题(共16 道试题,共40 分) 1.请判断ADC0809芯片的工作过程:(1)STart信号启动A/D转换8路模拟开关输入的模拟量(2)A、B、C选择输入通道地址,并由ALE发锁存信号(3)OE信号开三态门,输出转换的数字信号(4)A/D转换完毕,发转换完毕信号(EOC),可以作为中断信号 A.(2)(1)(4)(3) B.(2)(1)(3)(4) C.(1)(2)(4)(3) D.(4)(3)(1)(2) 答案:A 2.二进制数10110101B-11011011B的值(只取8位)是: A.11001011B B.01011010B C.11011010B D.01011011B 答案:C 3.8088/8086存储器分段,每个段不超过: A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 答案:D 4.根据如下存储器的连接图(图中A15~A12的值为0100),请确定第二组的地址范围。 {图} A.4000H~4FFFH B.5000H~6FFFH C.4000H~5FFFH D.5000H~5FFFH 答案:D 5.8253 中计数器中初值寄存器的作用是: A.保存控制字中写入的计数值 B.提供当前计数器的状态 C.按控制字确定该计数器的工作方式 D.接收计数初值,按CLK脉冲减一计数,是否计数受GATE信号控制 答案:A 6.十六进制数51FDH+26C4H的值是: A.78B1H

B.87B1H C.78C1H D.87C1H 答案:A 7.下面两个传送指令语句中源操作数寻址方式是: VAR1 DW 32H VAR2 EQU 32H ┇ MOV AX,VAR1 MOV BX,VAR2 A.都是立即数寻址 B.前一条指令是立即数寻址,后一条指令是直接寻址 C.前一条指令是直接寻址,后一条指令是立即数寻址 D.都是直接寻址 答案:C 8.实现将DX:AX中存放的32位数扩大四倍,正确的程序段是: A.SHL AX,2 ROL DX,2 B.RCL AX,2 SHL DX,2 C.MOV CX,2 LOP:SHL AX,1 RCL DX,1 LOOP LOP D.SHL AX,1 SHL AX,1 RCL DX,1 RCL DX,1 答案:C 9.二进制数10110111B-11010011B的值(只取8位)是: A.11100101B B.01100100B C.11100100B D.01100101B 答案:C 10.标志寄存器中属于控制标志位的是()。 A.DF,OF,SF B.OF,CF,PF C.AF,OF,SF D.DF,IF,TF0、0 答案:D

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号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

四川大学化工原理流体力学实验报告

化工原理实验报告流体力学综合实验 姓名: 学号: 班级号: 实验日期:2016、6、12 实验成绩:

流体力学综合实验 一、 实验目的: 1. 测定流体在管道内流动时的直管阻力损失,作出与Re 的关系曲线。 2. 观察水在管道内的流动类型。 3. 测定在一定转速下离心泵的特性曲线。 二、实验原理 1、求 与Re 的关系曲线 流体在管道内流动时,由于实际流体有粘性,其在管内流动时存在摩擦阻力,必然会引起 流体能量损耗,此损耗能量分为直管阻力损失与局部阻力损失。流体在水平直管内作稳态流 动(如图1所示)时的阻力损失可根据伯努利方程求得。 以管中心线为基准面,在1、2截面间列伯努利方程: 因u 1=u 2,z 1=z 2,故流体在等直径管的1、2两截面间的阻力损失为 ρP h f ?= 流体流经直管时的摩擦系数与阻力损失之间的关系可由范宁公式求得,其表达式为 22 u d l h f ??=λ 由上面两式得: 22u l d P ???= ρλ 而 μρdu = Re 由此可见,摩擦系数与流体流动类型、管壁粗糙度等因素有关。由因此分析法整理可形象地表示为 )(Re,d f ελ= 式中:f h -----------直管阻力损失,J/kg; λ------------摩擦阻力系数; d l .----------直管长度与管内径,m; P ?---------流体流经直管的压降,Pa; ρ-----------流体的密度,kg/m3; 1 1 2 2 图1 流体在1、2截面间稳定流动 f h gz u p P +++=++22221211 2gz 2u ρρ

微机原理实验报告冒泡排序

一、实验目的 (1)学习汇编语言循环结构语句的特点,重点掌握冒泡排序的方法。 (2)理解并掌握各种指令的功能,编写完整的汇编源程序。 (3)进一步熟悉DEBUG的调试命令,运用DEBUG进行调试汇编语言程序。 二、实验内容及要求 (1)实验内容:从键盘输入五个有符号数,用冒泡排序法将其按从小到大的顺序排序。 (2)实验要求: ①编制程序,对这组数进行排序并输出原数据及排序后的数据; ②利用DEBUG调试工具,用D0命令,查瞧排序前后内存数据的变化; ③去掉最大值与最小值,求出其余值的平均值,输出最大值、最小值与平均值; ④用压栈PUSH与出栈POP指令,将平均值按位逐个输出; ⑤将平均值转化为二进制串,并将这组二进制串输出; ⑥所有数据输出前要用字符串的输出指令进行输出提示,所有数据结果能清晰显示。 三、程序流程图Array (1)主程序:MAIN

(2)

就是 NAME BUBBLE_SORT DATA SEGMENT ARRAY DW 5 DUP(?) ;输入数据的存储单元 COUNT DW 5 TWO DW 2 FLAG1 DW 0 ;判断符号标志 FLAG2 DB 0 ;判断首位就是否为零的标志FAULT DW -1 ;判断出错标志 CR DB 0DH,0AH,'$' STR1 DB 'Please input five numbers seperated with space and finished with Enter:','$' STR2 DB 'The original numbers:','$' STR3 DB 'The sorted numbers:','$' STR4 DB 'The Min:','$' STR5 DB 'The Max:','$' STR6 DB 'The Average:','$' STR7 DB 'The binary system of the average :','$' STR8 DB 'Input error!Please input again!''$' DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,ES:DATA START: PUSH DS AND AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA DX,STR1 MOV AH,09H ;9号DOS功能调用,提示输入数据 INT 21H CALL CRLF ;回车换行 REIN: CALL INPUT ;调用INPUT子程序,输入原始数据CMP AX,FAULT ;判断就是否出错, JE REIN ;出错则重新输入

微机原理实验报告材料

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

实验一 汇编语言程序设计 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的值,观察在三种不同的数据块情况下程序的运行情况,并验证程 序的功能。

川大《微机原理与应用(1)1351》19春在线作业21

(单选题)1: 已知:A=DBH R4=73H CY=1,指令:SUBB A, R4 执行后的结果是:A: A=73H B: A=DBH C: A=67H D: 以上都不对 正确答案: (单选题)2: 判断是否溢出时用PSW的()标志位,判断是否有进位时用PSW的( A )标志位。 A: CY B: OV C: P D.RS0 D: RS1 正确答案: (单选题)3: 当进行串行通信时,若每秒发送1个字节,则此时的波特率为()。 A: 1 B: 8K C: 1K D: 8 正确答案: (单选题)4: 下面说法中,错误的有() A: 每条指令的执行由取指令、译码和执行等操作组成,执行一条指令所需要的时间称为指令周期。 B: CPU的每一个信息输入、输出过程所需要的时间称为总线周期。 C: 执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为时钟周期。 D: 执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为总线周期。 正确答案: (单选题)5: 指令MOV [BX十100],DI中的目的操作数采用的是什么寻址方式() A: 基址变址寻址 B: 变址寻址 C: 立即寻址 D: 寄存器寻址 正确答案: (单选题)6: 标志寄存器中OF指的是() A: 溢出标志 B: 符号标志 C: 零标志 D: 进位标志

正确答案: (单选题)7: 对程序存储器的读操作,只能使用: A: MOV指令 B: PUSH指令 C: MOVX指令 D: MOVC指令 正确答案: (单选题)8: 下面说法中正确的是()。 A: 部分译码方式时,存储器芯片中的一个存储单元有唯一地址。 B: 线选方式时存储器芯片中的一个存储单元有多个地址。地址不可能不连续。需要译码。C: 全译码方式是指存储器芯片中的每一个存储单元对应一个唯一的地址。 D: DMA方式与中断方式传输数据的方法是一样的。 正确答案: (单选题)9: 对于由8031构成的单片机应用系统,中断响应并自动生成长调用指令LCALL后,应: A: 转向外部程序存储器去执行中断服务程序 B: 转向内部程序存储器去执行中断服务程序 C: 转向外部数据存储器去执行中断服务程序 D: 转向内部数据存储器去执行中断服务程序 正确答案: (单选题)10: 下面说法错误的是()。 A: 每条指令的执行由取指令、译码和执行等操作组成,执行一条指令所需要的时间称为指令周期。 B: CPU的每一个信息输入、输出过程所需要的时间称为总线周期。 C: 执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为总线周期。 D: 执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为时钟周期。 正确答案: (单选题)11: 单片机在进行取指令操作时,指令的地址是由()的内容决定。 A: SP B: PC C: DPTR D: PSEN和ALE 正确答案: (单选题)12: MCS-51的并行I/O口信息有两种读取方法:一种是读引脚,还有一种是:A: 读锁存器 B: 读数据

微机原理实验报告记录

微机原理实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

微机原理实验报告 班级:自动化72 组员梁慕佳 07054031 张乐 07054033 张林鹏 07054034

实验一:8255 并行接口实验 1 实验目的 1. 学习并掌握8255 的工作方式及其应用; 2. 掌握8255 典型应用电路的接法。 2 实验设备 PC机一台,TD-PITE 实验装置一套。 3 实验内容 1. 基本输入输出实验。编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。 2. 流水灯显示实验。编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。 4 实验原理 并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。 图2-6-1 8255内部结构及外部引脚图

(完整版)四川大学电力系统自动装置实验报告

. 电力系统自动装置实验报告 学院 : 电气信息学院 专业 : 电气工程及其自动化 班级 : 102班 学号 : 1143031233 姓名 : 杨宁 老师:肖先勇

同步发电机并车实验 一、实验目的 1、加深理解同步发电机准同期并列原理,掌握准同期并列条件; 2、熟悉同步发电机准同期并列过程; 3、观察、分析有关波形。 二、原理与说明 将同步发电机并入电力系统的合闸操作通常采用准同期并列方式。准同期并列要求在合闸前通过调整待并机组的电压和转速,当满足电压幅值和频率条件后,根据“恒定越前时间原理”,由运行操作人员手动或由准同期控制器自动选择合适时机发出合闸命令,这种并列操作的合闸冲击电流一般很小,并且机组投入电力系统后能被迅速拉入同步。根据并列操作的自动化程度不同,又分为手动准同期、半自动准同期和全自动准同期三种方式。 正弦整步电压是不同频率的两正弦电压之差,其幅值作周期性的正弦规律变化。它能反映两个待并系统间的同步情况,如频率差、相角差以及电压幅值差。线性整步电压反映的是不同频率的两方波电压间相角差的变化规律,其波形为三角波。它能反映两个待并系统间的频率差和相角差,并且不受电压幅值差的影响,因此得到广泛应用。 手动准同期并列,应在正弦整步电压的最低点(同相点)时合闸,考虑到断路器的固有合闸时间,实际发出合闸命令的时刻应提前一个相应的时间或角度。 自动准同期并列,通常采用恒定越前时间原理工作,这个越前时间可按断路器的合闸时间整定。准同期控制器根据给定的允许压差和允许频差,不断地检查准同期条件是否满足,在不满足要求时闭锁合闸并且发出均压均频控制脉冲。当所有条件均满足时,在整定的越前时刻送出合闸脉冲。 三、实验项目、方法及过程 (一)机组启动与建压 1、检查调速器上“模拟调节”电位器指针是否指在0位置,如不在则应调到0 位置; 2、合上操作电源开关,检查实验台上各开关状态:各开关信号灯应绿灯亮、红灯 熄。调速器面板上数码管在并网前显示发电机转速(左)和控制量(右),在 并网后显示控制量(左)和功率角(右)。调速器上“并网”灯和“微机故障” 灯均为熄灭状态,“输出零”灯亮; 3、按调速器上的“微机方式自动/手动”按钮使“微机自动”灯亮; 4、励磁调节器选择它励、恒UF运行方式,合上励磁开关; 5、把实验台上“同期方式”开关置“断开”位置; 6、合上系统电压开关和线路开关QF1,QF3,检查系统电压接近额定值380V; 7、合上原动机开关,按“停机/开机”按钮使“开机”灯亮,调速器将自动启动

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计 实验一熟悉、使用DEBUG调试工具 一.上机目的: 1.了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 3.掌握汇编语言的编辑、汇编及连接的过程。 4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。 二.实验内容: 1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。 3.运用LINK.EXE文件进行连接,形成*.EXE文件。 4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。 5.运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。 程序清单: 多字节非压缩型BCD数除法(88754/6=14792) DA TA SEGMENT A D B 8,8,7,5,4 B DB 6 C DB 5DUP (0) N EQU 5 DA TA ENDS CODE SEGMENT ASSUME CS:CODE;DS:DATA;ES:DATA, START MOV AX,DA TA MOV DS,AX MOV ES,AX CLD LEA SI,A LEB DI,C MOV CX,N MOV AH,0 LP1:LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C

相关文档