当前位置:文档之家› 2014年微机原理课程上机实验指导书

2014年微机原理课程上机实验指导书

2014年微机原理课程上机实验指导书
2014年微机原理课程上机实验指导书

第一部分汇编语言程序设计实验

实验一汇编语言编程基础

汇编语言是一种面向机器的“低级”语言,是计算机能够提供给用户的最快而最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。要真正理解计算机的工作过程,理解计算机程序的执行过程,就必须学习汇编语言。也正是因为如此,汇编语言程序设计是计算机专业和电子,自动控制等相关专业的重要课程。

但是,对于刚开始学习汇编语言的学生而言,汇编语言的一些命令非常抽象,很难理解,往往学习了很长时间也编不出满意的程序,更别说自如的应用,以致我们认为汇编语言很难掌握,影响我们学习汇编语言的兴趣。实际上,为了掌握好汇编语言,我们可以从熟悉、使用DEBUG调试工具开始,先来分析和读懂一些与硬件相关的小程序,这也是我们实验一的目的。

1.1 汇编语言程序的上机步骤

以下列源程序为例,先学习汇编语言的上机步骤。

文件名为1.asm:

DATA SEGMENT

NUM1 DB 35,35H

NUM2 DW 35,35H

NUM3 DB 4 DUP (34,3 DUP (34H))

NUM4 DB '34AB'

NUM5 DW '34','AB'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET NUM1

MOV AL,[BX]

MOV BX,OFFSET NUM5

MOV AX,[BX]

MOV AH,4CH

INT 21H

CODE ENDS

END START

一.上机步骤

汇编语言程序MASM软件由https://www.doczj.com/doc/5815154480.html,编辑器,汇编MASM.EXE程序,连接LINK.EXE程序以及DUEBUG.EXE调试程序四个部分组成。汇编语言编制完成后,在计算机上的操作过程就分为四个阶段。

1. 编辑https://www.doczj.com/doc/5815154480.html,

首先输入源程序,有两种方法:

(1)在记事本里录入,特别注意的是:在保存时文件格式必须选择所有文件,文件后缀名为.ASM, 即保存时文件名为XXX.asm。

(2)双击MASM软件中的编辑软件https://www.doczj.com/doc/5815154480.html,文件框,在EDIT下输入源程序。用ALT+F键打开file菜单,用其中的save功能键将文件存盘。特别注意的是:汇编语言源程序文件的后缀必须为.asm,即保存时文件名为XXX.ASM。

图1-1 EDIT编辑界面

2.用汇编程序MASM.Exe对源程序.ASM文件汇编,生成目标文件.OBJ

汇编阶段的任务是把汇编语言源程序翻译成机器代码(称为目标),产生二进制格式的目标文件XXX.OBJ(名字与源程序名相同,只是后缀名不同),如果源程序有语法错误,则汇编过程结束后,MASM.EXE汇编程序会指出源程序中错误的行号和错误的原因,我们可以再用编辑程序https://www.doczj.com/doc/5815154480.html,来修改源程序中的错误,汇编无错后,方可得到正确的.OBJ目标文件,才能进行下一部的连接LINK。

双击MASM软件中的MASM.Exe文件框,在命令行后键入源程序名XXX.asm,(如果源程序与MASM软件在同一路径下,可以只键入文件名,而不要后缀),如以下界面:

图1-2 MASM编译1.asm文件无错误时的界面

3.连接LINK.EXE

由于汇编所得到的目标代码的存放地址并不是可执行的绝对地址,而是浮动的相对地址, 汇编产生的目标文件.OBJ还不能在计算机上运行,需要用连接程序LINK.EXE把目标文件.OBJ 文件转换为可执行文件XXX.EXE文件.

双击MASM软件中的LINK.Exe文件框,在命令行后键入目标文件名XXX.OBJ(如果源程序,目标文件与MASM软件在同一路径下,可以只键入文件名,而不要后缀),如以下界面:

图1-3 LINK连接1.OBJ文件界面

如果连接没有错误,就会产生一个XXX.EXE的可执行文件,如果.OBJ文件有错误,连接时会指出错误的原因。对于无堆栈警告(warning: no stack segment)的提示,可以不予理睬,它是由于我们在源程序中没有定义堆栈段的原因,对于比较小的程源序和不需要再特别定义堆栈段的源程序,我们可以不定义堆栈段,它并不影响程序的正确执行。反而,如果连接时有其他的错误,则要检查并修改源程序XXX.ASM,然后再重新汇编MASM.EXE,连接link.exe 的步骤,直到得到正确的XXX.EXE文件为止。

4.运行和调试DEBUG.exe

运行可执行文件,即双击XXX.EXE文件框即可,或在DOS下运行此程序,E:\XXX.EXE。

1.2熟悉、使用DEBUG调试工具

以下重点介绍一些调试命令:以1.asm源程序为例:

图1-4 运行和调试DEBUG界面

1)N命令:用于指定进行读写的磁盘上的文件。

命令格式:N[path][filename]

如: -n 1.exe指定要装载(Load)或写入磁盘(Write)的文件名。

2)L命令:将指定的文件装入内存中

命令格式:L 回车键

-l 回车键

3)反汇编命令U

就是将存放在制定范围内的目标代码,反汇编成8086/8088的汇编指令格式,并按目标代码首地址,目标代码和对应的源指令的格式,在屏幕上显示出来。把目标代码反汇编后,用户可以方便地知道,程序从什么地址开始执行,执行的是哪一条指令,执行到什么地址为止。

命令格式:U[地址范围]

-u

13FE:0000 B8FC13 MOV AX,13FC

13FE:0003 8ED8 MOV DS,AX

13FE:0005 BB0000 MOV BX,0000

13FE:0008 8A07 MOV AL,[BX]

13FE:000A BB1A00 MOV BX,001A

13FE:000D 8B07 MOV AX,[BX]

13FE:000F B8004C MOV AX,4C00

13FE:0012 CD21 INT 21

13FE:0014 0000 ADD [BX+SI],AL

13FE:0016 0000 ADD [BX+SI],AL

13FE:0018 0000 ADD [BX+SI],AL

13FE:001A 0000 ADD [BX+SI],AL

13FE:001C 0000 ADD [BX+SI],AL

13FE:001E 0000 ADD [BX+SI],AL

13FE为CS即代码段的段基地址,0000,0003,0005是偏移地址,B8FC13等是机器码(由代码段中的二进制机器指令反汇编得到)也就是程序在机器中的代码, MOV AX,13FC是助记符,帮助记忆机器中的指令。(源指令)

4)运行命令:

T命令:单步运行命令

以1.EXE调试为例,单步运行二次

13FE:0000 B8FC13 MOV AX,13FC

13FE:0003 8ED8 MOV DS,AX

13FE:0005 BB0000 MOV BX,0000

13FE:0008 8A07 MOV AL,[BX]

13FE:000A BB1A00 MOV BX,001A

13FE:000D 8B07 MOV AX,[BX]

13FE:000F B8004C MOV AX,4C00

13FE:0012 CD21 INT 21

13FE:0014 0000 ADD [BX+SI],AL

13FE:0016 0000 ADD [BX+SI],AL

13FE:0018 0000 ADD [BX+SI],AL

13FE:001A 0000 ADD [BX+SI],AL

13FE:001C 0000 ADD [BX+SI],AL

13FE:001E 0000 ADD [BX+SI],AL

-t

AX=13FC BX=0000 CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13EC ES=13EC SS=13FC CS=13FE IP=0003 NV UP EI PL NZ NA PO NC

13FE:0003 8ED8 MOV DS,AX

-t

AX=13FC BX=0000 CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=0005 NV UP EI PL NZ NA PO NC

13FE:0005 BB0000 MOV BX,0000

可以看到机器随机分配给该程序的数据段的段基地址被AX赋予给DS。

该程序的代码段的段基地址为13FE,数据段的段基地址为13FC 。

单步执行命令T执行一条命令,并显示CPU中寄存器中的内容和要执行的下一条命令,大家可以看到AX,BX,CX等寄存器的内容,T命令可以跟踪程序中的每一条指令的执行情况.

P命令:也是单步运行命令。但是P命令对于每一条指令语句都是一次执行完成. 比如CALL、LOOP和DOS功能调用的INT n等指令语句T命令能在程序的执行中,跟随IP指示的地址,跟踪指令的执行,而P命令则是按指令语句,续进执行的.在调试中,用户可根据需要,选择不同的运行程序命令,以适应调试的要求。

5)G (Go)命令:连续执行内存中的程序,还可以在程序中设置断点,逐段地执行程序,以便一段一段地对程序进行调试。

命令格式:G[ =address[address[address…]]

其中第一个参数=address,规定了执行的起始地址,即以CS的内容为段地址,以等号后面的地址为偏移地址,在输入时,等号是不可缺少的,若不输入起始地址,则以CS:IP为起始地址,后面的地址参数是断点地址。如果在G命令中没有设置断点,或设有断点但程序在执行中未能到达断点处,这时程序将一直运行,直至结束。在结束时显示提示信息“Program terminated normally"。

在G命令中可以设置断点,格式为G=0000 000D

13FE:000D 8B07 MOV AX,[BX]

13FE:000F B8004C MOV AX,4C00

13FE:0012 CD21 INT 21

AX=1323 BX=0000 CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=000A NV UP EI PL NZ NA PO NC

13FE:000A BB1A00 MOV BX,001A

-可以看到AL中的数为23

再设置一次断点G=0000 000F

-g=0000 000f

AX=3334 BX=001A CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=000F NV UP EI PL NZ NA PO NC

13FE:000F B8004C MOV AX,4C00

-

可以看到AX=3334

6)D (Dump)命令:显示指定范围(range)内的内存单元的内容。

其中,参数范围(range)有以下两种表示方式:

a) 第一种表示方式:Addrl Addr2

这里Addrl和Addr2分别代表待显示内存单元的首地址和末地址。

2) 第二种表示方式:Addrl L Value

这里表示显示从地址Addrl开始、长度为Value个字节的内存单元。例如下面两条命令是等效的。

一D 200 2FF

—D 200 L 100

显示内容分为三部分。最左边是本行内存单元首地址(XXXX:XXXX),第二部分是以十六进制形式显示的相继各字节单元的内容,前后八个单元间用符号“—”隔开。第三部分是本行显示的十六进制值所对应的ASCII字符。如果某十六进制值的ASCII字符是不可显示的,便以“.”代替。注意,每行只显示16个单元的内容,而且每行的首地址都是16的整倍数,或者说,每行的首地址都是以16为边界的。

对于D命令,又有两种简化格式,如:

一D 200

显示从DS:0200单元开始的80H个单元的内容,即在只给定第一个地址的命令中,约定隐含L 80参数。

一D

除第一次从DS:100开始,显示80H个单元的内容外,以后都继前次地址之后,依次显示80H个单元的内容。

-d

13FE:0000 B8 FC 13 8E D8 BB 00 00-8A 07 BB 1A 00 8B 07 B8 ................

13FE:0010 00 4C CD 21 00 00 00 00-00 00 00 00 00 00 00 00 .L.!............

13FE:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FE:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FE:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FE:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FE:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FE:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

我们从内存单元偏移地址[0000]单元开始,

-d0

13FC:0000 23 35 23 00 35 00 22 34-34 34 22 34 34 34 22 34 #5#.5."444"444"4 13FC:0010 34 34 22 34 34 34 33 34-41 42 34 33 42 41 00 00 44"44434AB43BA..

13FC:0020 B8 FC 13 8E D8 BB 00 00-8A 07 BB 1A 00 8B 07 B8 ................

13FC:0030 00 4C CD 21 00 00 00 00-00 00 00 00 00 00 00 00 .L.!............

13FC:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FC:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FC:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

13FC:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

-可以看到从偏移地址[0000]单元开始显示内存单元的内容。

7)R (Register)命令

格式:R [register_name]

功能:显示CPU中的一个或所有16位寄存器(包括标志寄存器)的内容。对于标志寄存器来说,显示的是各标志位的状态(置位/复位)。

-r

AX=3334 BX=001A CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=000F NV UP EI PL NZ NA PO NC

13FE:000F B8004C MOV AX,4C00

-命令Rregister_name不但能显示出该寄存器的当前值,而且还显示提示符“:”。这时

只要输入新的值,便可更新该寄存器的内容。若只按回车键,则寄存器的值将保持不变。例如命令:

-r

AX=3334 BX=001A CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=000F NV UP EI PL NZ NA PO NC

13FE:000F B8004C MOV AX,4C00

-rax

AX 3334

:6677

-r

AX=6677 BX=001A CX=0034 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13FC ES=13EC SS=13FC CS=13FE IP=000F NV UP EI PL NZ NA PO NC

13FE:000F B8004C MOV AX,4C00

RDS,RCS命令可以修改当前段的地址。同学们下来可以试以下。

8)- F是标志寄存器的名字。命令RF将显示各状态位的当前状态,其后显示提示符“一”,这时只要输入合法的标志(对顺序无要求),便可修改标志位状态,若只按回车键,则标志位的状态将保持不变。如命令:

一RF

NV UP DI NG NZ AC PE NC—PL EI CY

显示了F中的各状态位,其后又通过输入PL EI CY,修改了对应的标志位。

-rf

NV UP EI PL NZ NA PO NC -pl ei cy

-rf

NV UP EI PL NZ NA PO CY -

9) E (Enter)命令

格式:E address [1ist]

功能:用键入的字节(Byte)值或替换值(字节)列表修改指定内存单元的内容参数,address表示待修改的内存单元的首地址,list是一个选择项,它表示替换值(字节)列表。

1) E address

在该命令格式中,没有给出替换值。DEBUG自动显示起始地址和它的内容,并等待用户键入替换值。用户这时可选择按空格键(Space)、横杠键(一)或回车键(Enter),以实现不同的操作:

按回车键(Enter)——结束E命令。

按空格键(Space)——自动显示下一个内存单元的内容,并等待键人替换值。按照这种方式,一直进行下去,直到按回车键(Enter),才结束E命令。

按横杠键(一)一一自动显示前一个内存单元的内容,并等待键人替换值。按照这种方式,一直进行下去,直到按回车键,才结束E命令。

在上述两种修改方式中,如果在未键入替换值的情况下就按回车键,这时该单元的内容保持不变并结束E命令;如果只按空格键或横杠键,不键入替换值,则只显示内存单元的内容。

-e

^ Error

-e0

13FC:0000 23. 35. 23. 00. 35. 00. 22. 34.

13FC:0008 34. 34. 22. 34. 34. 34. 22. 34.

13FC:0010 34. 34. 22. 34. 34. 34. 33. 34.

13FC:0018 41. 42. 34. 33. 42. 41. 00. 00.

13FC:0020 B8. FC. 13. 8E. D8. BB. 00. 00.

13FC:0028 8A.

-e0

13FC:0000 23. 35.67 23.34 00. 35. 00. 22. 34.

13FC:0008 34. 34. 22.

-e0

13FC:0000 23. 67. 34. 00. 35. 00. 22. 34.

13FC:0008 34. 34. 22. 34. 34. 34. 22. 34.

13FC:0010 34. 34. 22. 34. 34. 34. 33. 34.

13FC:0018 41. 42. 34. 33. 42. 41. 00. 00.

. -

-e0003 显示从[0003]开始的内容

13FC:0003 00. 35. 00. 22. 34.

13FC:0008 34. 34. 22. 34. 34. 34. 22. 34.

13FC:0010 34. 34. 22. 34. 34. 34.

10)F (Fill) 命令

格式:F range list

功能:用list所表示的字节值对指定范围(range)的内存单元进行填充在命令中,若指定范围的内存单元数多于list中的填充字节数,则F命令将反复使用填充字节,直到填满指定范围中的每个单元;若内存单元数少于填充字节数,则F命令将只使用list中的前面若干个字节值,填充各个内存单元。

-f ds:0003 L 10 6

-e0

13FC:0000 23. 67. 34. 06. 06. 06. 06. 06.

13FC:0008 06. 06. 06. 06. 06. 06. 06. 06.

13FC:0010 06. 06. 06. 34. 34. 34. 33. 34.

13FC:0018 41. 42. 34. 33. 42. 41. 00.

11)A(Assemble)命令

格式:A [address]

功能:接收从键盘键入的8086/8088指令,将其汇编成目标代码,并存放在内存单元中。

参数address是指定存放目标代码的起始地址,其后指令的起始地址将由系统自动依次

安排。

一A CS:100 ;从CS:100H开始,编写程序

1409:001C 0000 ADD [BX+SI],AL

1409:001E 0000 ADD [BX+SI],AL

-a

1409:0000

-a cs:000a

1409:000A mov bx,0009

1409:000D

这时我们再反汇编一下,可以看到,程序发生了变化。

-u0

1409:0000 B80714 MOV AX,1407

1409:0003 8ED8 MOV DS,AX

1409:0005 BB0000 MOV BX,0000

1409:0008 8A07 MOV AL,[BX]

1409:000A BB0900 MOV BX,0009

1409:000D 8B07 MOV AX,[BX]

1409:000F B8004C MOV AX,4C00

1409:0012 CD21 INT 21

A命令只是在DEBUG下,汇编程序,不能存盘,临时修改看结果。

12)Q命令:结束DEBUG。

至此,通过调试示例程序,学习了DEBUG调试命令,并了解了8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配,调试程序的方法,但这还只是简单的程序,调试复杂的程序比此例要复杂的多,还需要我们在学习过程中,勤动手,多动脑,加强练习,在实践中进步。

1.3汇编语言程序上机操作和调试训练

一。上机目的:

了解并逐步熟悉汇编语言的编辑方法及特点.

复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。

掌握汇编语言的编辑、汇编及连接的过程。

了解并逐步掌握运用DEBUG进行调试汇编语言程序。

二。实验内容:

运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。

运用LINK.EXE文件进行连接,形成*.EXE文件。

仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。

运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,

使用察看存储器数据段命令—D,观察存储器数据段内数值。

再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。

程序清单:

多字节非压缩型BCD数除法(96875/5=19375)

DATA SEGMENT

A D

B 9,6,8,7,5

B DB 5

C DB 5DUP (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

LEB 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]

INT 21H

LOOP

MOV AH,4CH

INT

CODE:ENDS

三。实验报告要求:

1)写出本次试验报告的实验目的,内容,正确的程序清单,适当的中文注释以及程序框图。

2)指出本实验给出的源程序错误,并加以改正。

3)给出实验结果。

4)调试的心得体会。

实验二设计汇编语言程序

要设计汇编语言程序,我们先复习一些基本的指令。

1.加法指令

(1)ADD---加法指令

格式:ADD 目的操作数,源操作数

功能:目的操作数目的操作数+源操作数

(2)ADC---带进位的加法指令

格式:ADC 目的操作数,源操作数

功能:目的操作数目的操作数+源操作数+CF(CF=1,有进位)

(3)INC---增量指令

格式:INC 目的操作数

功能:目的操作数目的操作数+1

2.减法指令

(1)SUB——减法指令

格式:SUB 目的操作数,源操作数

功能:目的操作数目的操作数-源操作数

(2)SBB——带借位的减法指令

格式:SBB 目的操作数,源操作数

功能:目的操作数目的操作数-源操作数-CF

(3)DEC——减量指令

格式:DEC 目的操作数

功能:目的操作数目的操作数-1

(4)NEG 求补指令

格式:NEG 目的操作数

功能:目的操作数 0-目的操作数

3.乘法和除法指令

(1)MUL——无符号数乘法

格式:MUL 源操作数

功能:8位源操作数时:AX (AL)×源操作数

16位源操作数时:DX,AX (AX)×源操作数

32位源操作数时:EDX,EAX (EAX)×源操作数

(2)IMUL有符号数乘法

格式1: IMUL 源操作数

功能:8位源操作数时:AX (AL)×源操作数

16位源操作数时:DX,AX (AX)×源操作数

32位源操作数时:EDX,EAX (EAX)×源操作数

格式2: IMUL 目的操作数,源操作数

功能:目的操作数目的操作数×源操作数

格式3: IMUL 目的操作数,源操作数1,源操作数2

功能:目的操作数源操作数1×源操作数2

(3)DIV ——无符号除法

格式:DIV 源操作数

功能:8位源操作数时:(AX)÷源操作数,AL 商,AH 余数

16位源操作数时:(DX,AX )÷源操作数,AX 商,DX 余数

32位源操作数时:(EDX,EAX)÷源操作数,EAX 商,EDX 余数

(4)IDIV——有符号除法

格式:IDIV 源操作数

功能:8位源操作数时:(AX)÷源操作数,AL 商,AH 余数

16位源操作数时:(DX,AX )÷源操作数,AX 商,DX 余数

32位源操作数时:(EDX,EAX)÷源操作数,EAX 商,EDX 余数

实验2.1 简单程序设计

实验目的

理解各种指令的功能。

进一步学习程序的调试。

使用以上指令,我们可以进行一些表达式的计算。

练习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

实验要求:1.绘出练习1和2的程序流程图。

2编写完整的程序,上机调试。

3使用DEBUG调试命令,查看中间结果,并查看最终结果。

大多数的程序,都有人机对话的过程。也就是说,我们从键盘上输入程序所需要的控制信息和数据,并把程序的运行结果和运行状态显示出来。这就涉及到字符及字符串的输入输出。

1. 字符的输出

(1)输出单个字符

DL 待输出字符的ASCII码

AH =02

INT 21H

输入的字符放在AL中,并显示在屏幕上。

(2)输出一个字符串

DS: DX 待输出字符串的首地址

AH=09H

Int 21H

2.字符的输入

(1)输入单个字符

AH=01

INT 21H

输入的字符放在AL中

(2)AH=07

INT 21H

输入的字符放在AL中,不会显示在屏幕上(无回显)。

3.字符串的输入

DS:DX 输入缓冲区首地址

AH=0AH

INT 21H

一行字符以回车键作为结束的标志。假如:一行最多不超过250个字符(不含回车键),输入缓冲区格式如下:BUFFER DB 250 ,? ,250 DUP(?)

缓冲区由3个部分组成:

第一字节:输入字符存放区的大小。

第二字节:初始状态为空。从服务程序返回后,由服务程序填入实际的字符个数,不包括回车。

第三字节之后:输入字符存放区,存放输入的字符和回车。

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

实验要求:1.绘出程序流程图。

2编写完整的程序,上机调试。

3要求编制的程序最终求和的结果要显示在屏幕上。

4.写实验报告中程序要加中文注释。

实验2.2 汇编语言程序设计

---- 循环结构程序

几乎所有的应用程序都离不开循环结构。

循环结构一般有以下4个部分组成。

1初始化部分:为循环做准备,如累加器清零,设置地址指针和计数器的初始值。

2.工作部分:实现循环的基本操作,也就是需要重复执行的一段程序。

3.修改部分:修改指针,计数器的值,为下一个循环做准备。

4.控制部分:判断循环条件,结束循环或继续循环。

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

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

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

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

实验要求:

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

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

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

空格分隔;

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

会用调试命令查看程序运算中寄存器中的值;

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

均值;

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

逐个输出(即输出263);

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

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

8.所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300

等),所有数据结果能清晰地显示在电脑屏幕上。

实验报告:

整理出运行正确的程序清单(加以注释)。并给出程序流程图。

第二部分接口程序设计

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

------乐曲程序

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

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

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

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

装入计数器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机演奏一遍,两遍以及数遍这段两只老虎的乐曲,并修改程序实现。

四.实验报告:

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

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

-----键盘控制发声程序

音符和频率之间有一定的对应关系,如果计算机键盘上的数字键和音符,频率也形成一种对应关系,则可以通过键盘控制扬声器发出各种音符声音,这是计算机键盘就变成了电子琴琴键盘,就可以用它弹奏出简单的音乐。我们让数字键1-8对应一个音阶的八个音符。

弹奏时,对应乐谱上的1(C音符),按下数字键“1”(ASCII码为31H),程序的工作就是要接受这个键,并将频率表中和它对应的频率值262Hz送给发声程序,以发出1(C音符)的音调。按下数字键“2”(ASCII码为32H),程序就将292Hz的频率值送给发声程序,从而发出2(D的音调)。按下数字键“8”,将发出比第一个C高八度的音调,音符的频率表作为数据定义在数据段中。流程图如下:

编程提示:

1.数据段可以定义如下:

DW 294 ;2(D)

DW 330 ;3(E)

DW 349 ;4(F)

DW 392 ;5(G)

DW 523 ;8(C)

DATA ENDS

2.从键盘输入一个键值,可以用BIOS 16H中断,AL中回送的是键的ASCII码,AH中回送的是键的扫描码。也可以用DOS的键盘输入功能。

MOV AH,07 ;功能号AH=07

INT 21H ;DOS 21号中断

一.实验内容:利用DOS的键盘管理功能,将PC机变为一个具有简单功能的电子琴。

二.实验报告:整理出运行正确的源程序清单(加以中文注释)。

附录A 标准ASCII码字符表

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 2011年10月10日

实验1 基本操作实验 1. 实验目的 (1) 掌握TD-PITC 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 (2) 掌握使用运算类指令编程及调试方法; (3) 掌握运算类指令对各状态标志位的影响及其测试方法; (4) 学习使用软件监视变量的方法。 2. 实验设备 PC机一台,TD-PITC 实验装置一套。 3. 实验内容及步骤 通过对样例程序的操作,学会在TD-PITC境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会: ●如何设置断点; ●如何单步运行程序; ●如何连续运行程序; ●怎样查看寄存器的内容; ●怎样修改寄存器的内容; ●怎样查看存储器的内容; ●怎样修改存储器的内容。 3.1 实验内容1――――BCD码转换为二进制数 实验内容: 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入3510H 起始的内存单元中,自行绘制流程图并编写程序。 参考实验程序清单如下: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL

ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤: 1)运行Wmd86 软件,进入Wmd86 集成开发环境。 2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1 语言环境选择界面 3)语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-2所示。默认文件名为Wmd861。 图1-2 新建文件界面 4)编写实验程序,如图1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

《操作系统原理》信管专业实验指导书资料

《操作系统原理》实验指导书 班级:_______________ 学号:_______________ 姓名:_______________ 山东建筑大学管理工程学院 信息管理与信息系统教研室

目录 引言 (1) 实验题目一 (2) 实验题目二 (4) 实验题目三 (6) 实验题目四 (8) 实验题目五 (10) 实验题目六 (12)

引言 操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。 操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。 本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。

实验题目一:模拟进程创建、终止、阻塞、唤醒原语 一、题目类型:必做题目。 二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进 程控制功能的理解,掌握操作系统模块的设计方法和工作原理。 三、实验环境: 1、硬件:PC 机及其兼容机。 2、软件:Windows OS ,Turbo C 或C++、VC++、https://www.doczj.com/doc/5815154480.html, 、Java 等。 四、实验内容: 1、设计创建、终止、阻塞、唤醒原语功能函数。 2、设计主函数,采用菜单结构(参见后面给出的流程图)。 3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供 随时查看各队列中进程的变化情况。 五、实验要求: 1、进程PCB 中应包含以下内容: 2、系统总体结构: 其中: 进程名用P1,P2标识。 优先级及运行时间:为实验题目二做准备。 状态为:就绪、运行、阻塞,三种基本状态。 指针:指向下一个PCB 。

2015VB实验指导书

计算机程序设计基础(VB)实验指导书主编:刘华伟 单位:信息工程学院

实验报告要求:每次实验要求写实验报告(word电子版),包括实验名称,实验目的,实验内容,所有主要界面(需把界面图贴上,用截图工具)和所有源程序(将代码复制粘贴到word报告里),每次上机课后的周五理论课对上机题目进行讲解,每次上机实验报告要求在上机内结束前提交,如果没做完最迟当天内提交给教师信箱458007844@https://www.doczj.com/doc/5815154480.html, 只能用自己的邮箱在这个时间段提交。 提交格式:邮件名和word文件名均为: 公141班张三000000第1次作业 第一次上机课要做实验指导书中前两次实验的内容,将两次上机的实验报告都写在同一个word文档里提交。以后每次上机均做一次实验的内容。

实验一VB6.0环境和程序设计初步 一、实验目的 1.学会使用VB开发环境。 2.学会建立、编辑、运行一个简单的VB应用程序的全过程。 3.掌握变量的概念及使用。 4.通过程序实践结合课堂例子,理解类、对象的概念,掌握属性、事件、方法的应用。 二、实验内容: 1.熟悉VB开发环境的标题栏、菜单栏、工具栏、窗体窗口、属性窗口、工程资源管理器窗口、代码窗口、立即窗口、窗体布局窗口、工具箱窗口的位置以及用法。(此题不需要写实验报告) 2.编写一个四则运算的功能,在界面上输入两个数,并设置加减乘除四个按钮,点击不同的按钮,显示不同的运算结果。 步骤: (1)建立用户界面的对象。 (2)对象属性的设置。 (3)对象事件过程及编程。 (4)保存和运行程序

实验二选择结构程序设计 一、实验目的 1.掌握逻辑表达式的正确书写形式。 2.掌握单分支与双分支语句的使用。 3.掌握多分支条件语句的使用。 4.掌握情况语句的使用与多分支条件语句的区别。 二、实验内容 1.P272实验C的1,2题,界面按自己思路设计。其中第1题要求用两种方法实现。 2.在界面上输入4个数,求最大值和最小值并显示,要求用两种方法实现。提示:先编写求最大值的程序,然后再编写求最小值的程序。 3.输入三门功课的成绩,评定某个学生是否得奖学金。 评奖学金标准如下: 平均分大于95分或两门100分第三门不低于80分。

《计算机图形学》新版实验指导书

湖北汽车工业学院实验报告 班级学号姓名 课程名称完成日期 实验一熟悉Visual C++绘图应用程序的开发过程 一、实验目的 1、熟悉VC6.0开发环境; 2、掌握MFC编程; 3、掌握CDC图形程序库; 4、掌握VC6.0下的简单图形程序的开发过程。 二、实验性质 验证性 三、实验要求 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容; 2、能够根据实验指导书的要求,完成相关的内容; 3、务必掌握绘图程序的开发流程,为今后复杂的图形程序开发做好准备。 四、实验内容 (一)生成绘图应用程序的框架 开发绘图应用程序的第一步是使用AppWizard(程序生成向导)来建立程序的基本框架。AppWizard为框架的建立提供了一系列对话框及多种选项,用户可以根据不同的选项生成自己所需要的应用程序框架。具体步骤如下: 1、从“文件”菜单选择“新建”菜单项,在“新建”对话框中选择“工程”选项卡,从项目类型中选择MFC AppWizard(.exe)。在“位置”文本框中,可直接输入目录名称,或者单击“…”按钮选择已有的目录。在“工程名称”文本框中输入项目的名称,如Draw,其他采用默认值,这时确定按钮变亮,如下图所示:

2、单击确定按钮,弹出“MFC应用程序向导步骤1”对话框,如图所示,选择单文档单选按钮和“中文[中国]”选项,表示要生成以中文为用户界面的单文档(SDI绘图程序)。 3、点击下一步,在随后出现的几个对话框中,都点击下一步,表示采用各项的默认设置,直到出现“MFC应用程序向导步骤6”对话框,如图所示。

4、“MFC应用程序向导步骤6”对话框中默认设置确定了类得名称及其所在文件的名称。用户可以改CdrawApp、CmainFrame和CdrawDoc的文件名称,但不可以改变它们的基类。 单击完成按钮,应用程序向导显示将要创建的文件清单,再单击确定,MFC应用程序向导就自动生成绘图程序的各项源文件了。 MFC应用程序向导设置完后,点击组建按钮,然后再点击执行按钮,就会出现MFC 应用程序向导生成的完整应用程序的基本框架。

微机原理及应用实验

实验报告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。

操作系统实验指导书

实验前准备工作:Linux的安装 一. 实验目的 1.掌握Red Hat Linux操作系统的安装步骤。 2.掌握启动、关闭操作系统的方法。 二.实验准备 Red Hat Linux操作系统既可以单独安装在一个计算机系统中;也可以与其它操作系统如windows操作系统一起安装在一个计算机系统中,但注意在安装时要先装windows操作系统,再装Linux;或者利用主机的资源(如CPU、内存、硬盘),模拟出的一台新计算机。然后在虚拟机中安装windows、Linux等系统,使用虚拟机对主机的要求比较高,建议内存512MB以上。 1.硬盘分区 理解硬盘、分区的名称: ?IDE硬盘名称: /dev/hda, /dev/hdb …… ?SCSI硬盘名称:/dev/sda, /dev/sdb …… 分区名称:/dev/hda1, /dev/hda2 …… 一个硬盘最多分4个主分区和扩展分区,扩展分区最多只能建1个,扩展分区不能直接放数据,还必须建立逻辑分区才能使用。 安装Red Hat Linux至少需要两个硬盘分区:一个或多个―Linux native‖类型的分区,一个―Linux swap‖类型的分区。即使将Linux安装在一个专门的硬盘上,或者一台不安装其他操作系统的计算机上,仍然需要为其创建分区。在安装过程中,会提示用户为Red Hat Linux 创建分区,必须保证有足够的硬盘空间来创建分区。推荐以下分区配置: (1)一个根分区 (2)一个交换分区 (3)一个/usr分区 (4)一个/home分区。 2. 安装类型 Red Hat Linux提供了三种类型的安装: (1)客户机类型安装(workstation) (2)服务器类型安装(server system) (3)自定义类型的安装(custom system) 三.实验内容 请在虚拟机中安装Linux。 1. 安装虚拟机软件 常用的虚拟机软件有Vmware和VPC,如果主机性能较好,还能同时虚拟出多台虚拟机;一台虚拟机对应主机上的一个目录,删除该目录就删除了虚拟机;该目录拷到其它电脑

微机原理实验报告

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

西门子PLC实验指导书

实验一:PLC认知及PLC编程软件的使用(两学时) 一、实验目的: 1.熟悉典型继电器电路的工作原理及电路接线。 2.熟悉西门子PLC 的组成,模块及电路接线。 3.熟悉西门子STEP 7 编程软件的使用方法。 4.熟悉利用STEP 7 建立项目、硬件组态、编程、编译、下载和运行等设 计步骤。 5.学会用基本逻辑指令实现顺控系统的编程,完成三相异步电机单向运行控 制程序的编制及调试。 二、实验设备: 1.个人PC 机 1 台 2.西门子1214C AC/DC/RLY PLC 1 台 3.西门子CM1241 RS485通信模块 1 台 4.实验操作板 1 块 5.线缆若干 三、实验步骤: 1.参照黑板上的电路接线图,电路连接好后经指导教师检查无误,可以上电 试验。 2.了解西门子PLC 的组成,熟悉PLC的电源、输入信号端I 和公共端 COM、输出信号端Q 和公共端COM;PLC 的编程口及PC 机的串行通讯口、编程电缆的连接;PLC 上扩展单元插口以及EEPROM 插口的连接方法;RUN/STOP开关及各类指示灯的作用等。 2.参照黑板上的电路接线图,电路连接好后经指导教师检查无误,并将 RUN/STOP 开关置于STOP 后,方可接入220V交流电源。 3.在PC 机启动西门子STEP 7编程软件,新建工程,进入编程环境。 4.根据实验内容,在西门子STEP 7编程环境下输入梯形图程序,转换后, 下载到PLC中。

5.程序运行调试并修改。 6.写实验报告。 四、实验内容: 实验1、三相笼型异步电动机全压起动单向运行控制 图1 三相笼型异步电动机全压起动单向运行控制接线图实验2、三相笼型异步电动机全压起动单向运行PLC控制 图2 三相笼型异步电动机全压起动单向运行PLC控制梯形图 五、实验总结与思考: 1.简述S7-1200 PLC的硬件由哪几部分组成。 2.请简要叙述从硬件组态开始到程序下载到PLC进行调试的整个过程。 3.做完本次实验的心得体会;

80x86微机原理与接口技术实验指导书

80x86微机原理与接口技术 实验指导书 长安大学信息工程学院电子信息与通信工程实验室

第1章 80X86 微机原理及其程序设计实验 本章主要介绍汇编语言程序设计,通过实验来学习80X86 的指令系统、寻址方式以及程序的设计方法,同时掌握联机软件的使用。 1.1 系统认识实验 1.1.1 实验目的 掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 1.1.2 实验设备 PC机一台,TD-PITE 实验装置一套。 1.1.3 实验内容 编写实验程序,将00H~0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。 1.1.4 实验步骤 1. 运行Wmd86 软件,进入Wmd86 集成开发环境。 2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1-1 语言环境选择界面 3. 语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-1-2所示。默认文件名为Wmd861。 图1-1-2 新建文件界面 4. 编写实验程序,如图1-1-3所示,并保存,此时系统会提示输入新的文件名,输完后

点击保存。 图1-1-3 程序编辑界面 5. 点击,编译文件,若程序编译无误,则输出如图1-1-4所示的输出信息,然后再点击进行链接,链接无误输出如图1-1-5所示的输出信息。 图1-1-4 编译输出信息界面图1-1-5 链接输出信息界面 6. 连接PC与实验系统的通讯电缆,打开实验系统电源。 7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击下载程序。为编译、链 接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿色的背景。如图1-1-6所示。

操作系统实验-实验指导书

3 《操作系统》实验指导书 实验学时:16 适用专业:计算机科学与技术,软件技术 操作系统上机实验 一、实验目的 主要目的是配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解,同时加强学生对系统设计、程序编写、代码调试、软件开发过程基本技能的掌握。 上机作业应作到:覆盖讲授的所有原理内容,使得学生通过上机实践对原理有更深的理解;每一道上机作业,都要求学生必须完成一个完整的、可运行的小型软件,籍此提升基本的软件开发技能。 二、实验要求 (1)上机实验之前,学生应当为每次上机的内容作好充分准备。对每次上机需要完成的题目进行认真的分析,选择合适的算法,列出实验具体步骤,写出符合题目要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容以及思考题的要求进行上机操作。录入程序,编译调试,反复修改,直到使用要求的算法,使程序正常运行,得出正确的输出结果为止。 (3)上机作业要求提交原始代码、设计文档和可运行程序。以完整的作业包的形式提交。实验报告应当包括:实验题目,程序清单,运行结果,所选取的算法及其优缺点以及通过上机取得了哪些经验。程序清单要求格式规范,注意加注释(包含关键

字、方法、变量等),在每个模块前加注释,注释不得少于20% 三、实验内容 上机实验包括:操作系统使用、SHELL编程、进程管理、进程调度、死锁处理、存储管理、文件系统几个部分。 实验1: SHELL编程 实验目的 熟悉linux常用命令,为以后的实验打下良好基础; 熟悉vi编辑器的使用; 了解Shell程序的语法规则,能编写简单的Shell程序。 实验内容 1、使用常用的Linux命令,主要包括如下命令: date, mail, write, man, ls, cat, mv, grep, tail, head, cp, wc, pwd, who等; 2、使用vi编辑器编辑文件,熟悉vi编辑器的各种操作模式和常用命令。 3、使用vi编辑器编写一段Shell程序,取名为mycal,实现与Linux中cal命令类 似的功能,当输入: $mycal [月份名] 年时,屏幕输出指定的年月的月历。例如: $mycal October 2009 屏幕输出2009年10月的月历。 注:参数可以是英文或者是数字。 实验2:观察Linux的行为 实验目的 了解Linux proc文件系统; 加深对Linux系统的理解; 增强Linux系统管理知识。 实验内容 在Linux中,proc文件系统提供了一套在用户态检查内核状态和系统特征的机制。proc文件系统将进程的地址空间、系统的硬件信息、系统相关机制(中断、I/O)等内容全部设置为虚拟的Linux文件,为访问系统内核数据的操作提供接口。 1、以root登录系统,并进入/proc目录,键入ls命令,查看/proc下的内容,同时 查看每个文件的读写权限。 2、根据/proc下的信息,回答:CPU的类型和型号、当前Linux版本、从启动到当 前时刻所经过的时间、当前内存状态。

微机原理实验指导书

微机原理实验指导书汕头大学机电系摘录

实验一P1口实验及延时子程序设计 1.实验目的 利用单片机的P1口作为I/O口进行实验验证,掌握利用P1口作为输入口和输出口的编程方法,理解并掌握延时子程序的设计方法。 2.实验设备及器件 IBM PC机一台 DP-51PRO单片机综合仿真实验仪一台 3.实验内容 (1)编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。 (2)编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED 亮,不按时LED灭)。 图 1 4.实验要求 学会使用单片机的P1口作I/O口。如果时间充裕,也可以考虑利用P3口作I/O口来做该实验。 5.实验步骤 ①用导线把A2区的J61接口与D1区的J52接口相连。原理如图1所示。 ②先编写一个延时程序。 ③将LED轮流点亮的程序编写完整并调试运行。 ④使用导线把A2区J61接口的P1.0~P1.6与D1区J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区J53的KEY1相连。原理如图3.2(b)所示。 ⑤编写P1.7控制LED的程序,并调试运行(按下K1看是否全亮)。 ⑥A2区J61接口P1.7与D1区J54的SW1相连,然后再运行程序,拨动开关SW1查看结果。

6.实验预习要求 阅读附录内容,理解实验的硬件结构。可以先把程序编好,然后在Keil C51环境下进行软件仿真。 7.实验参考程序 程序1: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP M ain ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A ;把A的值输出到P1口 SJMP MainLoop Delay: MOV R7, #0 ;延时 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET ; END 程序2: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP Main ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main:JB P1.7,SETLED ;按键没有按下时,跳转到SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETB P1.0 SETB P1.1

北邮微机原理与接口技术硬件实验报告

微原硬件实验报告 班级:07118 班 学号:070547 班内序号:26 姓名:杨帆

实验一熟悉实验环境及IO的使用 一,实验目的 1. 通过实验了解和熟悉实验台的结构,功能及使用方法。 2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。 3. 学会Debug 的使用及编写汇编程序 二,实验内容 1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作, 2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度 等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) 三,实验步骤 1.实验板的IO 端口地址为EEE0H 在Debug 下, I 是读命令。(即读输入端口的状态---拨码开关的状态) O 是写命令。(即向端口输出数据---通过发光管来查看) 进入Debug 后, 读端口拨动实验台上八位拨码开关 输入I 端口地址回车 屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口 输入O 端口地址xx (xx 表示要向端口输出的内容)回车 查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。 2. 在Debug 环境下,用a 命令录入程序,用g 命令运行 C>Debug -a mov dx, 端口地址 mov al,输出内容 out dx, al

mov ah, 0bh int 21h or al, al jz 0100 int 20h -g 运行查看结果,修改输出内容 再运行查看结果 分析 mov ah, 0bh int 21h or al, al jz 0100 int 20h 该段程序的作用 3.利用EDIT 工具编写汇编写跑马灯程序程序 实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm 录入程序 按Alt 键打开菜单进行存盘或退出 编译文件 C>MASM 文件名.asm 连接文件 C>LINK 文件名.obj 运行文件或用Debug 进行调试。 四,程序流程图

2013微机原理实验指导书

微机原理实验报指导书 实验一数据传送实验 1.实验名称实验一数据传送实验 2.实验目的 1、掌握微型计算机汇编软件调试汇编源程序的基本操作; 2、熟悉传送指令、简单运算类指令来编写汇编语言源程序; 3、掌握调试过程及实验结果分析; 3.实验仪器 微型计算机一台 4.实验原理或内容 1.数据段从3500H单元开始建立0---15共16个数据区,程序中见此段存入 数据00H,01H,02H---0AH---0FH,运行之,检查并记录结果。 2.将内存3500H开始的共10个单元内容传送到3600H单元开始的数据区中,运行之,记录结果。 5.实验步骤 1.启动Masm for Windows 集成实验环境2009.6。显示如下: 2.输入源程序 在模板处将程序完成,其中模板中段名可以自己修改定义,没有涉及的段可省略不写。 输入汇编语言源程序后,保存程序(规定扩展名为.asm)

3.汇编 编译/汇编成目标文件,单击运行菜单下“编译成目标文件(obj)”,等待系统汇编,若有错误,修改再编译,直至无错误为止。

4.连接 生成可执行文件。单击运行菜单下“生成可执行文件(exe)”,等待系统对汇编生成的.obj文件进行连接,生成相应的可执行文件。若有错误,修改错误重复3和4操作,直至无错误为止。

5.在DEBUG调试环境下进行程序的调试 1、反汇编。u回车 -u0000回车 2、单步运行。-T=0000回车 -T回车 3、连续运行。G=起始偏移地址结束偏移地址 4、内存单元内容显示。-Dds:3500回车 5、内存单元内容的修改。-EDS:3500回车.键入修改后内容再空格 完成后回车 6、查看修改寄存器。-R回车 -R跟寄存器名,显示寄存器内容:后可跟修改内容 -R IP 可查看修改IP值 7、退出debuf。Q命令 6.数据与结果 将运行结果记录于此处

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

微机原理实验报告

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

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

C语言实验指导书

《C语言程序设计》实验指导书 每次实验(10分)一共100分,最后折合成50分计入最终成绩。 第一次实验(一星期完成) ●内容一:熟悉编译环境和工具 在VS中键入以下的这段程序 1)关键字变色,自动缩近,智能提醒 2)代码风格和注释 3)编译出错,连接出错。修改错误 4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈 在linux中键入以下这段程序 1)熟悉VIM程序,gcc编译程序(开两个终端窗口) 2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help) 其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。 3)介绍《鸟歌的私房菜》这本书 ●内容二:登陆https://www.doczj.com/doc/5815154480.html,网站,在线提交。 1)熟悉基本的提交方法和规则 2)现场演示反作弊程序的效果 ●程序: 输入:两个整数,用空格分隔, 输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例如(12 abc)程序能够给出“error input”的提示。 参考输入: 12 33 参考输出: 45 参考输入: 12 abc 参考输出:

error input ●思考和扩展(无标准答案) 如果用户输入12 12abc 如何判断并终止程序,输出“error input”的提示 第二次实验(一星期完成) ●内容一:登陆ACM,演示OJ系统 1)介绍这个网站,有兴趣的同学可以去尝试一下() ●内容二:计算工资/小时程序 1)强制类型转换 2)一共有多少位的算法 3)整形数的溢出,以及针对特定问题,如何解决溢出问题 注意:linux编译下应该加上–lm 开关。 ●程序: 输入:工资数,小时数(整数,空格分隔)。 输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么? 参考输入: 2345 2 ←input (separate by space) 参考输出: 1172.50 ←average salary 1173 ← round off to integer 7 ← number of digit 0 2 5 ← the last three digit (separate by space) 第三次实验(两星期完成) ●内容一:介绍linux 下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。 ●内容二:正则表达式 ^ 代表字符串开始 . 代表任意字符 $ 代表字符串末尾

微机原理与接口技术实验指导书1_[1]...

微机原理与接口技术实验指导书 编者:王亭岭 华北水利水电学院 电气学院自动化教研室 二零一二年三月

目录 实验一标志寄存器应用 (1) 实验二指令寻址方式练习 (4) 实验三分支结构程序设计 (6) 实验四循环结构程序设计 (7) 实验五子程序结构程序设计 (8) 实验六DOS系统功能调用程序设计 (10) 实验七BIOS中断调用程序设计 (12) 实验八定时器中断程序设计 (14)

实验一标志寄存器应用 一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示:

步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj文件。如下图所示:1.C:\>D: 回车 2.D:\ >CD MASM 回车 3.D:\MASM>MASM SY1.ASM 回车 4.D:\MASM>LINK SY1.OBJ 回车

步骤四、在命令提示行中运行并调试汇编程序。如下图所示:1.D:\MASM>SY1.EXE 回车 2.D:\MASM>DEBUG SY1.EXE 回车 六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? 3.分析实验结果及所遇到的问题,并说明解决的方法。

《计算机操作系统》实验指导书

《计算机操作系统》 实验指导书 (适合于计算机科学与技术专业) 湖南工业大学计算机与通信学院 二O一四年十月

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。 实验成绩考核: 实验成绩占计算机操作系统课程总评成绩的20%。指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。有以下情形之一者,实验成绩为不及格: 1.迟到、早退、无故缺勤总共3次及以上者; 2.未按时完成实验达3次及以上者; 3.缺交实验报告2次及以上者。

微机原理实验报告

微机原理实验报告 计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。 在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口Telnet 配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。 在制作直通电缆和交换UTP的实验中,我起初不能完全按照要求来剪切电缆,导致连接不通,后来在同学的帮助下,终于将实验完成。 在做到单臂路由配置和动态路由协议配置的实验,由于自身的基础知识掌握不牢,忘掉了一些理论知识,在重新翻阅课本和老师的指导之下,也成功的完成了试验。 从抽象的理论回到了丰富的实践创造,细致的了解了计算机网络连接的的全过程,认真学习了各种配置方法,并掌握了利用虚拟环境配置

的方法,我利用此次难得的机会,努力完成实验,严格要求自己,认真学习计算机网络的基础理论,学习网络电缆的制作等知识,利用空余时间认真学习一些课本内容以外的相关知识,掌握了一些基本的实践技能。 课程设计是培养我们综合运用所学知识,发现、提出、分析、解决问题的一个过程,是对我们所学知识及综合能力的一次考察。随着科学技术日新月异的不断发展,计算机网络也在不断的变化发展当中,这就要求我们用相应的知识来武装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备。

广工《Java语言程序设计基础教程》上机实验指导手册(第一次)

《Java语言程序设计基础教程》 上机实验指导手册 实验一 Java环境演练 【目的】 ①安装并配置Java运行开发环境; ②掌握开发Java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序; ③掌握开发Java Applet程序的3个步骤:编写源文件、编译源文件和运行Java Applet 程序; ④学习同时编译多个Java源文件。 【内容】 1.一个简单的应用程序 ?实验要求: 编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: Hello.java public class Hello { public static void main (String args[ ]) { 【代码1】//命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() { 【代码2】//命令行窗口输出"We are students" } } ?实验后的练习: 1.编译器怎样提示丢失大括号的错误? 2.编译器怎样提示语句丢失分号的错误? 3.编译器怎样提示将System写成system这一错误?

4.编译器怎样提示将String写成string这一错误? 2.一个简单的Java Applet程序 ?实验要求: 编写一个简单的Java Applet程序,并在Java Applet中写两行文字:“这是一个Java Applet程序”和“我改变了字体”。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); 【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); 【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } } ?实验后的练习: 5.程序中的主类如果不用public修饰,编译能通过吗? 6.程序中的主类如果不用public修饰,程序能正确运行吗? 7.程序将paint方法误写成Paint,编译能通过么? 8.程序将paint方法误写成Paint,运行时能看到有关的输出信息吗? 3.联合编译 ?实验要求: 编写4个源文件:Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。将4个源文件保存到同一目录中,例如:C:\100,然后编译Hello.java。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: 模板1:Hello.java public class MainClass { public static void main (String args[ ]) {

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