文档库 最新最全的文档下载
当前位置:文档库 › 余敦辉《汇编语言》实验指导书实验1-实验3

余敦辉《汇编语言》实验指导书实验1-实验3

余敦辉《汇编语言》实验指导书实验1-实验3
余敦辉《汇编语言》实验指导书实验1-实验3

《汇编语言》实验指导书

目录

实验一Debug命令的使用 (3)

实验二基本汇编指令的使用 (9)

实验三汇编语言程序的调试与运行 (13)

实验四系统功能调用程序的调试与运行………………错误!未定义书签。

实验五分支程序设计……………………………………错误!未定义书签。

实验六循环程序设计……………………………………错误!未定义书签。

实验七子程序设计………………………………………错误!未定义书签。

实验八高级汇编语言程序设计…………………………错误!未定义书签。

实验九I/O程序设计……………………………………错误!未定义书签。

实验十中断程序设计……………………………………错误!未定义书签。

实验十一综合程序设计 (38)

实验一Debug命令的使用

一、知识点

1、DEBUG简介

DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:

(1)字母不分大小写

(2)只使用十六进制数,但没有带后缀字母“H”

(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、Debug的调入和退出

以WIN7环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:

C:\Documents and Settings\lfy>

然后输入命令:

>Debug

进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。

退出Debug的命令:Q

3、Debug常用命令

(1)汇编命令A,格式为:

- A [地址]

功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。若不指定地址,则系统从默认的地址开始存放。按回车键退出汇编状态

应用:用于调试一条指令或几条指令组成的一个程序段。

(2)显示和修改寄存器命令R,格式为:

- R [寄存器名]

功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。若未指定寄存器,则默认为显示所有寄存器的内容。

应用:常用于通过寄存器的值查看指令的执行结果。

(3)内存单元内容的命令E,格式为:

- E 地址[内容表]

功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。例如:

-E 100

184E: 0100 89,78

其中,184E时数据段的段地址,0100是要修改的单元的偏移地址,89为该单元的值,78为程序员键入的值。结果0100单元的值由89H改变为78H。

应用:常用于在调试程序的过程中改变变量的初始值。

(4)显示内存单元内容的命令D,格式为:

- D [地址] 或–D [范围]

功能:前者为显示从指定地址开始的一段存储单元的值;后者为显示指定范围内的存储单元的值。

例如:- D 200 ;显示从DS:200单元开始的各单元的值

- D 200 L10 ; 显示从DS:200单元开始的10个字节单元的值。

应用:常用于在调试过程中检查变量的值。

(5)单步执行命令T,格式为:

- T [=地址]

功能:从指定地址执行一条指令后停下来,显示寄存器内容和状态值。若未指定地址,则执行当前指令的下一条指令。

(6)反汇编命令 U ,格式为:

-U [地址] 或 -U 范围

功能:从制定地址开始,反汇编32个字节,或对指定范围内的主存内容进行反汇编。若没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过U命令,

则从当前CS:IP开始。例如:

-U 100,106

1343:0100 B80302 MOV AX,0203

1343:0103 BB0540 MOV BX,4005

1343:0106 01D8 ADD AX,BX

其中,屏幕最左边是主存逻辑地址(段地址:偏移地址),中间是该指令的机器代码,右边是对应指令的汇编语句格式。

(7)运行命令G, 格式为:

-G[ = 起始地址] [断点地址1,断点地址2,……,断点地址10]

功能:从等号后的起始地址开始运行,直到遇到断点或程序正常结束。例如:

-G=100 106

则程序执行从100开始的程序段,到断点106停止。此时指令ADD AX,BX并未执行。

二、实验目的及要求

1、编语言调试环境Debug的使用,重点掌握常用命令(A R D E T)的使用,其

他指令在以后的学习中逐步掌握。

2、利用Debug命令,调试采用不同寻址方式的指令的执行结果,从实践中加深对寻址

方式和MOV指令的理解。

三、实验内容

1、Debug程序的调入和退出

2、Debug常用调试命令的使用

3、MOV指令、XCHG指令、XLAT指令的调试

四、实验步骤

说明:

首先输入以下程序段,然后单步执行并查看结果;改变寄存器AX的初始值后再运行,并查看结果。带下划线的部分为程序员输入的内容。

在DEBUG环境下,所有的数据均以十六进制输入和显示。

-A

137B:0100 mov ax,20

137B:0103 mov bx,ax

137B:0105 add ax,bx

137B:0107 mov [2000],ax

137B:010A

-T=0100

AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137B ES=137B SS=137B CS=137B IP=0103 NV UP EI PL NZ NA PO NC

137B:0103 89C3 MOV BX,AX

-T=0103

AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137B ES=137B SS=137B CS=137B IP=0105 NV UP EI PL NZ NA PO NC

137B:0105 01D8 ADD AX,BX

-T

AX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137B ES=137B SS=137B CS=137B IP=0107 NV UP EI PL NZ NA PO NC

137B:0107 A30020 MOV [2000],AX

DS:2000=000

-T

AX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137B ES=137B SS=137B CS=137B IP=010A NV UP EI PL NZ NA PO NC

137B:010A 0000 ADD [BX+SI],AL DS:0020=FF -D 2000 L2

137B:2000 40 00

.

;修改0100处的指令mov ax,20 将AX的初始值改为10,并重新运行

-A 0100

137B:0100 mov ax, 10

137B:0103

;最后一条指令执行的结果如下:

AX=0020 BX=0010 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137B ES=137B SS=137B CS=137B IP=010A NV UP EI PL NZ NA PO NC

137B:010A 0000 ADD [BX+SI],AL DS:0010=DF ;查看2000单元的值为0020H

-D 2000 l2

137B:2000 20 00

.

;修改2000单元的值,由20h改为30h 并重新显示

-E 2000

137B:2000 20.30

-D 2000 l2

137B:2000 30 00

五、拓展题

MOV、XCHG、XLAT指令的调试。

要求:用汇编命令A输入以下源程序段,用T命令单步执行,查看执行结果:寄存器或存储单元的值。。

提示:在DEBUG环境下输入程序段时要省掉立即数后面的字符“H”

1、MOV指令的调试

程序段:MOV AL, 55H

MOV AH, AL

MOV BX, 1000H

MOV BYTE PTR[BX], 66H

MOV WORD PTR[BX+2], 77H

MOV [BX+4], AX

2、XCHG指令的调试

程序段:MOV AX, 0203H

MOV BX, 0405H

XCHG AX, BX

XCHG BL, BH

3、XLAT指令的调试

(1)用E命令从DS:200地址开始输入数据10H、20H、30H、40H、50H

(2)用A命令输入以下程序段:

MOV BX, 200 ;将数据的首地址送给BX

MOV AL, 4用MOV ;将要查找的数据的偏移地址送给AL

XLAT

;查看结果寄存器AL中的值,以及从DS:200开始的存储单元的值。

六、实验报告

写出在DEBUG状态下编写、运行程序段的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

实验二基本汇编指令的使用

一、知识点

1、最常用的传送指令MOV

可以将立即数/内存单元的值/寄存器的值送给寄存器,或将立即数/寄存器的值送给内存单元,但不允许两个内存单元之间直接传送。

2、常用算术运算指令ADD/ADC/INC、SUB/SBB/DEC/CMP/NEG

两个单字节/单字之间的加法用ADD指令、减法用SUB指令;

多字节/多字之间的加/减,除最低字节/最低字用ADD/SUB指令外,其余字节/字之间的加/减都要用包含进位/借位的ADC/SBB指令。

INC和DEC指令常用于修改计数器或修改指针,常用与循环处理一批数据。

CMP指令常用于比较两个数的关系,为下一步的条件转移做准备(后跟条件转移指令)。

3、常用逻辑运算指令AND/OR/NOT/XOR/TEST

AND指令常用于给一个数据的某几位清零;

OR指令常用于给一个数据的某几位置1;

XOR指令常用于将一个数据某几位翻转;

NOT指令常用于将一个数据所有位取反;

TEST指令常用于测试一各数据的某一位或某几位的值,后跟条件转移指令。

4、常用移位指令SHL/SHR/SAR/ROL/ROR/RCL/RCR

SHL和SAL功能相同,都是将操作数左移一位或几位,移出的空位补0;

SHR和SAR功能不同,虽都是将操作数右移一位或几位,但左边移出的空位分别补0和1(SHR要补0,SAR补1)。

二、实验目的及要求

1、继续熟悉汇编语言调试环境Debug的使用,掌握常用调试命令。

2、用基本指令编写的程序段,并在Debug环境中调试,从实践中加深对基本汇编语言

指令的执行过程的理解。

3、实验前要做好充分准备,包括汇编程序段清单、调试步骤、调试方法,以及对程序

结果的分析等。

三、实验内容

1、单步调试以下程序段,给出每条指令执行后AL的值,以及CF、ZF、SF、OF的状

态。

MOV AL, 89H

ADD AL, AL

ADD AL, 9DH

CMP AL, 0BCH

SUB AL,AL

DEC AL

INC AL

2、编写程序段,分别完成11223344H与55667788H的加/减计算,并调试、观察结果。

3、单步调试以下程序段,给出每条指令执行后AL的值,以及CF、ZF、SF、OF的状

态。

MOV AX, 1470H

MOV BX, 3060H

AND AX, BX

OR AX, BX

XOR AX, AX

NOT AX

TEST AX,0F0F0H

4、设(AX)=1234H,写出执行下列每条指令后AX寄存器的内容,并观察CF的变化。

SHL AX, 1

MOV CL, 2

SHL AX, CL

SHR AX, 1

ROL AX, 1

MOV CL, 3

ROL AX, CL

RCR AX,1

MOV CL, 2

RCR AX, CL

四、实验步骤

1、利用DEBUG的A命令输入待调试的程序段。

2、利用单步执行命令T逐条执行指令,观察寄存器及相关状态位的值。

以实验内容2中的加法为例,实现加法运算:

注:下划线部分为程序员输入的内容。

(1)-A

1373:0100 MOV AX, 3344 ;DX.AX<- 11223344H

1373:0103 MOV DX, 1122

1373:0106 ADD AX, 7788 ; DX.AX+55667788H->DX.AX

1373:0109 ADC DX, 5566

1373:010D

-T=100

AX=3344 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=1373 ES=1373 SS=1373 CS=1373 IP=0103 NV UP EI PL NZ NA PO NC 1373:0103 BA2211 MOV DX,1122

-T

AX=3344 BX=0000 CX=0000 DX=1122 SP=FFEE BP=0000 SI=0000 DI=0000

DS=1373 ES=1373 SS=1373 CS=1373 IP=0106 NV UP EI PL NZ NA PO NC 1373:0106 058877 ADD AX,7788

-T

AX=AACC BX=0000 CX=0000 DX=1122 SP=FFEE BP=0000 SI=0000 DI=0000

DS=1373 ES=1373 SS=1373 CS=1373 IP=0109 OV UP EI NG NZ NA PE NC 1373:0109 81D26655 ADC DX,5566

-T

AX=AACC BX=0000 CX=0000 DX=6688 SP=FFEE BP=0000 SI=0000 DI=0000

DS=1373 ES=1373 SS=1373 CS=1373 IP=010D NV UP EI PL NZ NA PE NC 1373:010D 0000 ADD [BX+SI],AL DS:

;结果:DX.AX=6688AACCH

五、拓展题:

1、编写程序段:将DX.AX中的双字右移一位。

2、编写程序段:将AX寄存器的最低4位置1,最高3位清0,第7、8、9位取反,

其余位不变。设AX中原来的值为0AAH。

3、设AX=2AH,BX=30H,编写程序段计算:AX/BX,并将结果送BX.CX。

六、实验报告:

1、写出源程序段清单、程序说明、执行结果。

2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,

并对调试过程中的问题进行分析,对执行结果进行分析。

实验三汇编语言程序的调试与运行

一.知识点

1、汇编语言源程序的格式

完整的汇编语言源程序由段组成,即代码段、数据段、附加段和堆栈段。其中,需要独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点。

例如,输出一个字符串的源程序:

.model small ;定义程序的存储模式(小型程序一般采用小模式)

.stack ;定义堆栈段

.data ;定义数据段

string db ‘An example.’,0ah,0dh,’$’;在数据段中定义要显示的字符串

.code ;定义代码段

.startup ;程序的起始点

lea dx, string ;将字符串的起始地址送dx,即设置入口参数

mov ah, 09h ;设置输出字符串的功能调用号

int 21h ; 功能调用:显示

.exit 0 ;程序结束点,返回dos

end ;汇编结束

注:这是简化段定义的程序格式

2、汇编语言程序的开发过程

一般步骤:编辑、编译、连接、调试运行

(1)源程序的编辑

源程序文件可以利用任一文本编辑器进行编辑,通常我们用“记事本”。

源程序文件保存时,一般以.asm为文件的后缀名。

具体实现:如图

在win2000环境下,在“另存为”界面中输入文件全名(example.asm),并且将“保存类型“选择为“所有文件”。

也可以使用.txt后缀名,不过在汇编时要写源文件的全名,否则系统默认的为.asm。

(2)源程序的汇编、连接

汇编是将源程序翻译成由机器代码组成的目标模块文件的过程。连接程序将一个或多个目标文件和库文件合成一个可执行文件。

MASM6.X提供的ML.EXE可以实现:

先汇编,若没有错误则自动调用LINK.EXE连接程序进行编译;若有错,则提示错误信息,可利用列表文件查看错误所在位置,并改正错误,重新汇编和连接。

例如,设上面的例题程序文件为EXAMPLE.ASM,并且该文件与ML.EXE等文件都在同一目录(设该目录为当前目录)下,则汇编、连接的命令为:

>ML EXAMPLE.ASM

运行结果见实验步骤2。产生:EXAMPLE.OBJ和EXAMPLE.EXE文件

特别说明:

ML允许汇编和连接多个程序形成一个可执行文件,而且还可以带参数,格式:ML [/参数选项] 文件列表

常用参数选项有:

/c ——只汇编源程序,不进行自动连接(注意用小写字母c)

/Fl 文件名——创建一个汇编列表文件(扩展名LST),用于查找错误。

Sg ——在省城的列表文件中,列出由汇编程序产生的指令

例如:若将字符串的引号改为中文的“‘”后重新用下面命令汇编连接,则结果见实验步骤3。

>ML /Fl EXAMPLE.ASM

(3)可执行程序的调试

在操作系统提示符下直接输入柯执行文件名即可运行:

>EXAMPLE

当出现运行错误时,通常用DEBUG进行调试:

>DEBUG EXAMPLE.EXE

然后采用U命令进行反汇编,用T或G命令运行并观察,找出错误所在。

二.实验目的及要求

1.掌握数据定义、段定义的方法

2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

3、熟悉常见Jcc指令、loop指令的使用。

三.实验内容

编程实现:

1、求数组array中的20个字元素的和,并存入变量total中。其中,数组元素在定义数

组时以初值的形式给出。

2、给DX送一个初值,然后判断:若DX的高4位全为0,则使AX=0;否则使AX=-1。

3、定义一个字符串string,包含若干字符并且以’$’结尾,用程序统计字符的个数。

四、实验步骤

以实验内容1为例,介绍实验步骤:

1、编辑源程序:在记事本中输入如下程序,并存在E:\MASM6\BIN\EXAM1.ASM中。

2、汇编、编译:

情况1:没有错误

>ml example.asm

Object Modules [.obj]: example.obj

Run File [example.exe]: "example.exe"

List File [nul.map]: NUL

Libraries [.lib]:

Definitions File [nul.def]:

产生:EXAMPLE.OBJ和EXAMPLE.EXE文件

情况2:源程序中有错误,比如将字符串的引号改为中文的“‘”后重新用下面命令汇编连接。

>ML /Fl EXAMPLE.ASM

Microsoft (R) Macro Assembler Version 6.11

Copyright (C) Microsoft Corp 1981-1993. All rights reserved.

Assembling: example.asm

example.asm(5): error A2044: invalid character in file

example.asm(8): error A2006: undefined symbol : string

则给出2条错误信息提示,并产生错误列表文件EXAMPLE.LST

在记事本中打开该文件,内容如下:

;输出一个字符串的源程序:

.model small

.stack

.data

string db ’An example.',0ah,0dh,'$'

example.asm(5): error A2044: invalid character in file

.code ;定义代码段

.startup ;程序的起始点

lea dx, string

example.asm(8): error A2006: undefined symbol : string

mov ah, 09h

int 21h ; 功能调用:显示

.exit 0 ;程序结束点,返回dos

end ;汇编结束

特别提示:

两处错误明显的标在源程序中。

实际上,只有一处错误,后面的错误是由于前面的错误引起的,所以改正错误时要从前往后逐个修改,并且每改完一处就重新存盘、汇编,以提高调试效率。

3、调试:

C:\masm>debug example.exe

-u ;反汇编

1395:0000 BA9713 MOV DX,1397

1395:0003 8EDA MOV DS,DX

1395:0005 8CD3 MOV BX,SS

1395:0007 2BDA SUB BX,DX

1395:0009 D1E3 SHL BX,1

1395:000B D1E3 SHL BX,1

1395:000D D1E3 SHL BX,1

1395:000F D1E3 SHL BX,1

1395:0011 FA CLI

1395:0012 8ED2 MOV SS,DX

1395:0014 03E3 ADD SP,BX

1395:0016 FB STI

1395:0017 8D160400 LEA DX,[0004] ;源程序中的第一条指令

1395:001B B409 MOV AH,09

1395:001D CD21 INT 21

1395:001F B8004C MOV AX,4C00 ;对应.exit 0 指令

-u

1395:0022 CD21 INT 21

……

此时可用debug命令调试该程序了。

4、关于变量名对应的偏移地址

源程序的第一条指令是:lea dx, string

汇编后对应的指令是:LEA DX,[0004]

因此,可看出变量string所对应的偏移地址是:0004h

如果要查看从string开始的字符串的内容,可用如下命令:

-D 04 Lc

即查看从04H开始的12个单元的内容。

五、拓展题

1、有两个64位数值,按“小端方式“存放在两个缓冲区buffer1和buffer2种,计算buffer1-buffer2,并将结果存放到变量result中。

2、将DX.AX中的双字右移4位。

六、实验报告

1、写出源程序清单、程序说明、执行结果。

2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,

并对调试过程中的问题进行分析,对执行结果进行分析。

计算机组成原理实验1-汇编语言实验

微处理器与接口技术 实验指导

实验一监控程序与汇编语言程序设计实验 一、实验要求 1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。 2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。 3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 二、实验目的 【1】学习和了解TEC-XP16教学实验系统监控命令的用法; 【2】学习和了解TEC-XP16教学实验系统的指令系统;

【3】学习简单的TEC-XP16教学实验系统汇编程序设计。 三、实验注意事项 (一)实验箱检查 【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。 【2】五位控制开关的功能示意图如下: 【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】 (二)软件操作注意事项 【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口; 【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试; 【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试; 【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。

控制工程基础实验指导书(答案)

控制工程基础实验指导书 自控原理实验室编印

(内部教材)

实验项目名称: (所属课 程: 院系: 专业班级: 姓名: 学号: 实验日期: 实验地点: 合作者: 指导教师: 本实验项目成绩: 教师签字: 日期: (以下为实验报告正文) 、实验目的 简述本实验要达到的目的。目的要明确,要注明属哪一类实验(验证型、设计型、综合型、创新型)。 二、实验仪器设备 列出本实验要用到的主要仪器、仪表、实验材料等。 三、实验内容 简述要本实验主要内容,包括实验的方案、依据的原理、采用的方法等。 四、实验步骤 简述实验操作的步骤以及操作中特别注意事项。 五、实验结果

给出实验过程中得到的原始实验数据或结果,并根据需要对原始实验数据或结果进行必要的分析、整理或计算,从而得出本实验最后的结论。 六、讨论 分析实验中出现误差、偏差、异常现象甚至实验失败的原因,实验中自己发现了什么问题,产生了哪些疑问或想法,有什么心得或建议等等。 七、参考文献 列举自己在本次准备实验、进行实验和撰写实验报告过程中用到的参考文献资 料。 格式如下 作者,书名(篇名),出版社(期刊名),出版日期(刊期),页码

实验一控制系统典型环节的模拟、实验目的 、掌握比例、积分、实际微分及惯性环节的模拟方法; 、通过实验熟悉各种典型环节的传递函数和动态特性; 、了解典型环节中参数的变化对输出动态特性的影响。 二、实验仪器 、控制理论电子模拟实验箱一台; 、超低频慢扫描数字存储示波器一台; 、数字万用表一只;

、各种长度联接导线。 三、实验原理 运放反馈连接 基于图中点为电位虚地,略去流入运放的电流,则由图 由上式可以求得下列模拟电路组成的典型环节的传递函数及其单位阶跃响应。 、比例环节 实验模拟电路见图所示 U i R i U o 接示波器 以运算放大器为核心元件,由其不同的输入网络和反馈网络组成的各种典型环节,如图所示。图中和为复数阻抗,它们都是构成。 Z2 Z1 Ui ,— U o 接示波器 得:

汇编语言程序设计实验教程第二章实验报告

汇编语言程序设计实验教程第二章 实验报告

实验2.1 用表格形式显示字符 1.题目:用表格形式显示ASCII字符SMASCII 2.实验要求: 按15行*16列的表格形式显示ASCII码为10H-100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。 3.提示: (1)显示每个字符可使用功能号为02的显示输出功能调用,使用方法如下:mov ah,02h mov dl,输出字符的ASCII码 int 21h (2)显示空白符时,用其ASCII码0置入dl寄存器。每行结束时,用显示回车(ASCII 为0dh)和换行符(ASCII为0ah)来结束本行并开始下一行。 (3)由于逐个显示相继的ASCII字符时,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。具体做法是:在显示空白或回车、换行符前用指令 push dx 把dl的内容保存到堆栈中去。在显示空白或回车、换行符后用指令 pop dx 恢复dl寄存器的原始内容。 4.程序清单: code segment assume cs:code start: mov dx,0010h next: mov cx,10h loop1: mov ah,02h int 21h inc dx push dx

int 21h pop dx loop loop1 push dx mov dl,0ah int 21h mov dl,0dh int 21h pop dx cmp dx,100h jb next mov ah,4ch int 21h code ends end start 5.运行结果如下: 6.实验总结: 通过本次实验我深刻的知道用汇编语言编译程序的方法,掌握了如何合理的利用各个寄存器进行程序的控制操作,初步了解到循环程序的控制方法,以及dos中断调用的基本要领对学习汇编语言有了非常好的帮助作用! 汇编语言实验二查找匹配字符串 一、目的 查找匹配字符串SEARCH

控制工程基础实验指导书(答案) 2..

实验二二阶系统的瞬态响应分析 一、实验目的 1、熟悉二阶模拟系统的组成。 2、研究二阶系统分别工作在ξ=1,0<ξ<1,和ξ> 1三种状态下的单 位阶跃响应。 3、分析增益K对二阶系统单位阶跃响应的超调量σP、峰值时间tp和调 整时间ts。 4、研究系统在不同K值时对斜坡输入的稳态跟踪误差。 5、学会使用Matlab软件来仿真二阶系统,并观察结果。 二、实验仪器 1、控制理论电子模拟实验箱一台; 2、超低频慢扫描数字存储示波器一台; 3、数字万用表一只; 4、各种长度联接导线。 三、实验原理 图2-1为二阶系统的原理方框图,图2-2为其模拟电路图,它是由惯性环节、积分环节和反号器组成,图中K=R2/R1,T1=R2C1,T2=R3C2。 图2-1 二阶系统原理框图

图2-1 二阶系统的模拟电路 由图2-2求得二阶系统的闭环传递函 12 22 122112 /() (1)()/O i K TT U S K U S TT S T S K S T S K TT ==++++ :而二阶系统标准传递函数为 (1)(2), 对比式和式得 n ωξ== 12 T 0.2 , T 0.5 , n S S ωξ====若令则。调节开环增益K 值,不仅能改变系统无阻尼自然振荡频率ωn 和ξ的值,可以得到过阻尼(ξ>1)、 临界阻尼(ξ=1)和欠阻尼(ξ<1)三种情况下的阶跃响应曲线。 (1)当K >0.625, 0 < ξ < 1,系统处在欠阻尼状态,它的单位阶跃响应表达式为: 图2-3 0 < ξ < 1时的阶跃响应曲线 (2)当K =0.625时,ξ=1,系统处在临界阻尼状态,它的单位阶跃响应表达式为: 如图2-4为二阶系统工作临界阻尼时的单位响应曲线。 (2) +2+=222n n n S S )S (G ωξω ω1 ()1sin( ) (3) 2-3n t o d d u t t tg ξωωωω--=+=式中图为二阶系统在欠阻尼状态下的单位阶跃响应曲线 e t n o n t t u ωω-+-=)1(1)(

实验1_认识汇编语言

实验一 认识汇编语言 1.1 实验目的 (1)理解汇编语言的概念及其与高级语言的区别 (2)了解MASM6.11和TASM软件包的安装及配置 (3)了解常用汇编语言集成环境 (4)掌握汇编语言程序的上机过程 1.2 预备知识 1.2.1 系统环境 对汇编语言的初学者来说,DOS环境的优点是:DOS操作系统简单,程序员可以管理系统的所有资源,访问和修改系统中的所有内存(包括内存控制块、中断向量表),直接对I/O端口进行读写,便于对知识的学习和理解。其缺点是:单任务的DOS操作系统只有一个运行级别,任何进程与DOS操作系统都是同等级别的,致使系统中各个进程会相互影响。如果某个进程死机,整个系统就会瘫痪。 但是DOS系统已经退出历史舞台,目前的学生只熟悉Windows环境而对DOS知之甚少,继续要求学生在DOS系统的命令行界面下编写和调试程序,无疑存在巨大的困难。 目前,IBM PC及其兼容机配置的Intel系列微处理器可以工作在实模式、保护模式和虚拟86三种模式下。实模式是汇编语言入门的基础,是汇编语言教学中无法跨越的阶段。了解实模式是理解内存分段式管理和寻址方式的基础。保护模式是Windows系统的工作模式,虚拟86模式则是在保护模式下提供的模拟8086处理器工作的模式,为学习汇编语言提供了便利。DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。对于一些可能会影响整个操作系统工作的指令,windows操作系统会拒绝执行。64位的Windows 环境则不提供16位应用的虚拟环境。 因此,采用Win32环境进行汇编语言程序的编辑工作,在虚拟控制台环境中学习(汇编、连接和调试)汇编语言是最佳方案。下面我们将逐步给大家讲解如何安装和配置汇编语言的编译调试环境,并选择适合的编辑软件来组建汇编语言的集成环境。最后,叙述如何使用Visual Studio 2008 Express作为汇编语言的工作环境。 1.2.2 汇编语言上机过程 汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。图1-1说明了汇编语言的上机过程。 第一步:编辑 使用编辑软件创建和编写汇编语言源文件,并以 .asm 作为文件名后缀。 第二步:汇编 使用汇编程序将源程序翻译成机器码形式的文件,以 .obj 为后缀的目标程序。汇编包括把源程序翻译成目标代码,并产生中间的.OBJ文件或模块。汇编程序的任务是为数据段中的每个数据项和代码段中的每条指令计算偏移值,并在所产生的.OBJ模块的前面直接建立一个头部来存储不确定的地址信息。在汇编时可以选择产生列表文件(.LST)和交叉引用文件(.CRF)。列表文件含有出错诊断信息,可以用来帮助检查源程序中的错误。交叉引用文件在编写大型程序时可以提供指令引用的数据项列表。 第三步:连接 使用连接程序完成对于目标程序的装配工作,生成可执行程序,以.exe或者.com为后缀的执行文件。连接程序的任务包括确定由汇编程序遗留下来的不确定的地址,并把分别汇

汇编语言实验2

计算机工程系实验报告 课程名称:汇编语言 实验项目名称:用机器指令和汇编语言指令编程 班级:15级计科4班姓名:梁红梅学号:15091413 一、实验目的: 1.学习Debug中D命令的使用方法,掌握查看指定内存单元的内容的指令,其中本实验中 主要掌握“d段地址:偏移地址”的格式; 2.了解Debug 中D命令程序的执行者:CPU,了解D命令的执行过程; 3.掌握CPU在访问内存单元时的主要过程; 4.学习怎样利用在Debug中cs、ds、ss、es这4个段寄存器,简化debug命令格式。 二、实验要求: 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax= Add ax,[2] ;ax= Mov bx,[4] ;bx= Add bx,[6] ;bx= Push ax ;sp= 修改的内存单元的地址是内容为 Push bx ;sp= 修改的内存单元的地址是内容为 Pop ax ;sp= ;ax= Pop bx ;sp= ;ax= Push [4] ;sp= 修改的内存单元的地址是内容为 Push [6] ;sp= 修改的内存单元的地址是内容为

三、实验数据记录: 1.进入Debug后使用-a命令将程序写入内存 2.通过使用-t命令将写入内存的程序逐一执行,直到命令执行完毕

三、实验结果及分析: 1.mov ax,[0] 执行完成后 ax=C0EA; 2.add ax,[2]执行完成后ax=C0FC; 3.mov bx,[4] 执行完成后 bx=30F0; 4.add bx,[6]执行完成后 bx=6021; 5.push ax 执行完成后 sp= 00FE 修改的内存单元的地址是 2200:00FE 内容为C0FC 6.push bx 执行完成后 sp= 00FC 修改的内存单元的地址是 2200:00FC 内容为6021

《控制系统计算机仿真》实验指导书

实验一 Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B (3)矩阵的转置及共轭转置 已知A=[5+i,2-i,1;6*i,4,9-i]; 求A.', A' (4)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9]; 求A中第3列前2个元素;A中所有列第2,3行的元素; (5)方括号[] 用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列 3、多项式 (1)求多项式p(x) = x3 - 2x - 4的根 (2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] , 求矩阵A的特征多项式; 求特征多项式中未知数为20时的值; 4、基本绘图命令 (1)绘制余弦曲线y=cos(t),t∈[0,2π] (2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π] 5、基本绘图控制 绘制[0,4π]区间上的x1=10sint曲线,并要求: (1)线形为点划线、颜色为红色、数据点标记为加号; (2)坐标轴控制:显示范围、刻度线、比例、网络线 (3)标注控制:坐标轴名称、标题、相应文本; 6、基本程序设计 (1)编写命令文件:计算1+2+?+n<2000时的最大n值; (2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。 三、预习要求 利用所学知识,编写实验内容中2到6的相应程序,并写在预习报告上。

汇编语言实验一

淮阴工学院 汇编语言程序设计实验报告 选题名称:实验一调试工具的使用方法训练 系(院):计算机工程学院 专业:计算机科学与技术 班级: 1101 姓名:康志杰学号: 1101301132 指导教师:王福德 学年学期:2013 学年第 2 学期 2013 年 4 月15 日

实验一利用DEBUG调试程序调试程序段 <1 > 实验目的: (1)熟悉DEBUG有关命令的使用方法 (2)利用DEBUG掌握有关指令的功能 (3)利用DEBUG运行简单的程序段 <2 > 实验内容 (1)进入和退出DEBUG程序 1)开始——运行,输入cmd,点确定或回车键进入DOS环境 2)在命令窗口输入debug进入debug程序 3)进入debug程序后,按q退出

(2) 学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命 令、N命令、W命令等,也应试一下。 1 显示存储器单元命令D 格式:D [<地址范围>] 功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII码字符显示。 2 写存储器单元命令E 格式:E <地址> [<字符串>] 功能:逐个修改指定单元内容或将字节串写入指定的一组连续单元。 例:将字节串′computer′写入以100H为起始地址的存储器区。 -E 100′computer′ 3显示和修改某个指定寄存器内容, 格式为:-R 寄存器名 例如打入:-R AX 系统将响应如下: AX 0000

: 表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0000 :1000 则BX内容由0000改为1000 4显示和修改标志位状态, 命令格式为:-RF 系统将给出响应,如 NV UP EI PL NZ NA PO NC- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 NV UP EI PL NZ NA PO NC-ZR CY

控制工程-实验指导书-修订版

《控制工程基础》实验指导书常熟理工学院机械工程学院 2009.9

目录 1.MATLAB时域分析实验 (2) 2.MATLAB频域分析实验 (4) 3.Matlab校正环节仿真实验 (8) 4.附录:Matlab基础知识 (14)

实验1 MATLAB 时域分析实验 一、实验目的 1. 利用MATLAB 进行时域分析和仿真。 要求:(1)计算连续系统的时域响应(单位脉冲输入,单位阶跃输入,任意输入)。 2.掌握Matlab 系统分析函数impulse 、step 、lsim 、roots 、pzmap 的应用。 二、实验内容 1.已知某高阶系统的传递函数为 ()265432 220501584223309240100 s s G s s s s s s s ++=++++++,试求该系统的单位脉冲响应、单位阶跃响应、单位速度响应和单位加速度响应。 MATLAB 计算程序 num=[2 20 50]; den=[1 15 84 223 309 240 100]; t= (0: 0.1: 20); figure (1); impulse (num,den,t); %Impulse Response figure (2); step(num,den,t);%Step Response figure (3); u1=(t); %Ramp.Input hold on; plot(t,u1); lsim(num,den,u1,t); %Ramp. Response gtext(‘t’); figure (4); u2=(t.*t/2);%Acce.Input u2=(0.5*(t.*t)) hold on; plot(t,u2); lsim(num,den,u2,t);%Acce. Response

汇编语言第1-2章考前复习题

1. 知识点:0202(基于微处理器的计算机系统构成) 在下列的选项中,能够组成计算机系统的是(A )。选项A)硬件系统和软件系统 选项B)CPU、存储器、输入/输出设备 选项C)操作系统、各种语言 选项D)系统软件和应用软件 2. 知识点:01 (基础知识) 汇编语言属于(B) 选项A)用户软件 选项B)系统软件 选项C)高级语言 选项D)机器语言 5知识点:0203(中央处理机) 中央处理器CPU是由(D)组成的 选项A)运算器 选项B)控制器 选项C)寄存器组 选项D)前三者 答案:D 6. 知识点:0201(80x86微处理器) IBM PC机的DOS是属于(B)。 选项A)用户软件

选项B)系统软件 选项C)系统硬件 选项D)一种语言 8. 知识点:0203(中央处理机) 8086/8088 CPU的寄存器组中,8位的寄存器共有(C)个 选项A)4 选项B)6 选项C)8(al ah bl bhcl chdl dh) 选项D)10 9. 知识点:0203(中央处理机) 8086/8088 CPU的寄存器组中,16位的寄存器共有(D)个。 AX,BX,CX,DX,DS,CS,SS,ES,FS,GS,DI,SI,BP,SP 选项A)10 选项B)12 选项C)13 选项D)14 10. 知识点:0204(存储器) 8086/8088 CPU执行算术运算时PSW共有(C)个标志位会受影响。SF,ZF,PF,CF,OF,AF 选项A)4 选项B)5 选项C)6

11. 知识点:0204(存储器) 在程序执行过程中,IP寄存器始终保存的是(C)。选项A)上一条指令的首地址 选项B)本条指令的首地址 选项C)下一条指令的首地址 选项D)需计算有效地址后才能确定地址 12. 知识点:0204(存储器) IBM PC机的存储器可分(D)个段。 选项A)4 选项B)256 选项C)512 选项D)65536 13知识点:0204(存储器) 当使用BP作编程地址时,此时使用的是(D)段。选项A)CS 选项B)DS 选项C)ES 选项D)SS(堆栈段) 17知识点:0204(存储器) 存储器的一个字节表示( A)位。 选项A)8

实验二 _C语言程序和C调用汇编程序实验

实验二C语言程序和C调用汇编程序实验 一、实验目的 了解ARM 启动过程,学会使用ADS 编写简单的C 语言程序 掌握C 语言调用汇编程序,并进行调试的方法 二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC机一台。 软件:Windows XP 操作系统、仿真器驱动程序、ADS开发软件一套。 三、实验内容 在C 语言程序中调用汇编子程序,实现计算1+2+3+…+(N-1)+N 的值(N>0)的加法运算。汇编子程序实现两个数的加法运算,其原型为:uint32 doadd(uint32 x,uint32 y),其中uint32 已定义为unsigned int 。 四、实验原理 (1)作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿Linux 内核来讲,虽然绝大部分代码是用C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。大多数情况下Linux 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux 操作系统中也可以用完全用C 语言来实现,再加上GCC 这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实现情况是Linux 程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc 无关性。假设要移植Linux 到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。 汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点: 能够直接访问与硬件相关的存储器或I/O 端口; 能够不受编译器的限制,对生成的二进制代码进行完全的控制; 能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁; 能够根据特定的应用对代码做最佳的优化,提高运行速度,能够最大限度地发挥硬件的功能。 同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点: 编写的代码非常难懂,不好维护; 很容易产生bug,难于调试; 只能针对特定的体系结构和处理器进行优化; 开发效率很低,时间长且单调。 (2)混合编程的一般方法有三种:一是对C 程序编译后形成的汇编程序进行手工的修改与优化。二是直接在C 语言程序中嵌入汇编语句。三是分别编写C 程序和汇编程序,再独立编译成目标代码模块,再进行链接。 第一种编程方式要求对汇编与C 语言都极其熟悉,并且这样的编程方式对程序的可读性和扩展性的负面影响比较大。 第二种方法适用于语句执行频率非常高,并且C 编程与汇编编程效率差异较大的情况,

汇编语言实验

实验四屏幕字符显示程序 实验目的: 通过实验掌握下列知识: 1、8088指令: JMP,ROR,XOR,HLT。 2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。 3、直接向视频RAM(VRAM)送ASCII码进行屏幕显示的方法。 4、IBM-PC机的ASCII码表及控制字符。 5、命令(。COM)文件及使用方法。 6、利用^Break退出程序的方法及局限性。 实验内容及步骤: 一、利用INT 21 0AH号功能调用显示字符串。 1、用A命令在100H处键入下列程序: MOV AH, 9 MOV DX,110 INT 21 INT 20 2、用A命令在110H处键入下列字符串的ASCII码: DB 'This is a sample!$' 3、用N命令和W命令将此程序(包括数据区)存入文件名为AA。COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。 4、用Q命令退出DEBUG。 5、在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。

二、利用INT 21H 2号功能显示字符: 1、用A命令在100H处键入下列程序: XOR DL,DL MOVCX,100 LOP:MOV AH,2 INT 21 INC DL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20 2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同? 3、按CTRL+BREAK退出此程序,若一次不行可多做几次。

机械控制工程基础实验指导书

机械控制工程基础实验 指导书 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

河南机电高等专科学校《机械控制工程基础》 实验指导书 专业:机械制造与自动化、起重运输机械设计与制造等 机械制造与自动化教研室编 2012年12月

目录

实验任务和要求 一、自动控制理论实验的任务 自动控制理论实验是自动控制理论课程的一部分,它的任务是: 1、通过实验进一步了解和掌握自动控制理论的基本概 念、控制系统的分析方法和设计方法; 2、重点学习如何利用MATLAB工具解决实际工程问题和 计算机实践问题; 3、提高应用计算机的能力及水平。 二、实验设备 1、计算机 2、MATLAB软件 三、对参加实验学生的要求 1、阅读实验指导书,复习与实验有关的理论知识,明确每次实验的目的,了解内容和方法。 2、按实验指导书要求进行操作;在实验中注意观察,记录有关数据和图 像,并由指导教师复查后才能结束实验。 3、实验后关闭电脑,整理实验桌子,恢复到实验前的情况。 4、认真写实验报告,按规定格式做出图表、曲线、并分析实验结果。字迹 要清楚,画曲线要用坐标纸,结论要明确。 5、爱护实验设备,遵守实验室纪律。 实验模块一 MATLAB基础实验 ——MATLAB环境下控制系统数学模型的建立 一、预备知识 的简介

MATLAB为矩阵实验室(Matrix Laboratory)的简称,由美国MathWorks公司出品的商业数学软件。主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 来源:20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler 为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由 Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。 地位:和Mathematica、Maple并称为三大数学软件,在数学类科技应用软件中,在数值计算方面首屈一指。 功能:矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。 应用范围:工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 图1-1 MATLAB图形处理示例 的工作环境 启动MATLAB,显示的窗口如下图所示。 MATLAB的工作环境包括菜单栏、工具栏以及命令运行窗口区、工作变量区、历史指令区、当前目录窗口和M文件窗口。 (1)菜单栏用于完成基本的文件输入、编辑、显示、MATLAB工作环境交互性设置等操作。 (2)命令运行窗口“Command Window”是用户与MATLAB交互的主窗口。窗口中的符号“》”表示MATLAB已准备好,正等待用户输入命令。用户可以在“》”提示符后面输入命令,实现计算或绘图功能。 说明:用户只要单击窗口分离键,即可独立打开命令窗口,而选中命令窗口中Desktop菜单的“Dock Command Window”子菜单又可让命令窗口返回桌面(MATLAB桌面的其他窗口也具有同样的操作功能);在命令窗口中,可使用方向

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

实验2 建立运行汇编语言源程序

实验2建立运行汇编语言程序 实验目的: 1.熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。 2.编写源程序,掌握汇编语言程序格式。 3.掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。 实验内容: 在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。 1、有3个内存单元x,,y z,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+2z-y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。 2、写一个完整的源程序,用DEBUG调试运行,查看运行结果。 DATA SEGMENT;定义数据段DATA AUGEND DD99251 SUM DD? DATA ENDS ;请补充语句定义附加段EXTRA,将ADDEND赋值为双精度数-15962 CODE SEGMENT;定义代码段CODE ASSUME CS:CODE,DS:DATA,ES:EXTRA START:MOV AX,DAT MOV DS,AX ;请补充完成给ES赋值的语句,将EXTRA赋值给ES。 ;请补充进行加法运算的语句,把数据段DATA中的AUGEND和附加段EXTRA中的ADDEND相加,并把结果存放在DATA的SUM中。 MOV AX,4C00H INT21H CODE ENDS END START 3、完成实验教程第一章的内容。学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。 实验报告要求:

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

哈工大_机电系统控制基础实验_指导书

前言 《机电系统控制基础》既是一门理论性较强、又紧密联系工程实际的实践性较强的课程,本课程的重点在于培养学生对机电系统进行建模、分析与控制的能力。难点在于如何使机电类专业的学生结合工程实际,特别是结合机械工程实际,从整体分析系统的动态行为,理解和掌握略显深奥、难懂的经典控制理论,并应用经典控制论中的基本概念和基本方法来分析、研究和解决机械工程中的实际问题。 通过实验教学环节使学生验证课堂教学的理论,使学生能够建立机电系统控制的整体概念,加深对经典控制论中基本概念和基本方法的理解,并掌握其在分析、研究和解决实际机械工程控制问题中的应用。通过三方面的实验:原理性仿真实验,面向机电系统中典型物理对象/系统的特性测试与分析实验,和典型机电系统的控制三方面实验。将所学的课程内容融会贯通,培养学生分析和解决问题的能力。

1 机电系统控制基础原理性仿真实验 1.1 实验目的 通过仿真实验,掌握在典型激励作用下典型机电控制系统的时间响应特性,分析系统开环增益、系统阻尼、系统刚度、负载、无阻尼自振频率等机电参数对响应、超调量、峰值时间、调整时间、以及稳态跟踪误差的影响;掌握系统开环传递函数的各参数辨识方法,最后,学会使用matlab软件对机电系统进行仿真,加深理解系统动态响应特性与系统各参数的关系。 1.2系统典型输入的响应实验 1.2.1 实验原理 1.一阶系统的单位脉冲响应 惯性环节(一阶系统)单位脉冲响应simulink实现图,如图1-1所示 (a)可观测到输出曲线 (b)输入、输出曲线均可观测到 图1-1惯性环节(一阶系统)单位脉冲响应simulink实现图 2.一阶系统的单位阶跃响应 一阶系统的单位阶跃响应simulink实现图如图1-2所示。

汇编语言实验(1)

课程名称汇编语言与微机原理实验名称字符串显示实验 实验目的、要求 1.掌握汇编语言程序设计的编写链接调试运行的完整过程 2.掌握利用masm.exe、link.exe等进行汇编、连接的方法及执行目的程序的方法。 3.初步认识ASCII码 4.初步认识利用DOS系统功能调用显示字符与字符串的方法 5.认识汇编源程序结构(框架)。 实验原理 利用DOS的中断调用在屏幕上显示字符串”Hello World”。 主要设备 计算机一台汇编语言软件 实验步骤及原始数据记录 程序源代码 1.显示数据区中的字符串"Hello World" assume cs:code,ds:data,ss:stack stack segment stack dw 256 dup (0) stack ends data segment msg db 'Hello World!',0dh,0ah,$ data ends code segment start: mov ax,data mov ds,ax mov ah,09h mov dx,offset msg int 21h exit: mov ah,4ch int 21h code ends end start

四、操作步骤: 1.在C盘生成一个新文件夹,例如P1,在该文件夹中拷入masm.exe、link.exe、debug.exe等工具程序 2.打开记事本,将上面第1个程序复制生成纯文本文件,文件名以.asm为扩展名。例如:A1.ASM。(注意保存时要选择保存类型为“所有文件”)。 3.从“开始”→程序→附件→命令提示符,进入DOS命令界面。 4. 使用CD命令,进入新文件夹,例如:P1,命令为:CD C:\P1 5. 执行MASM <文件名>,对源程序进行编译。 6. 执行LINK.EXE <文件名>,连接生成执行程序。例如:LINK A1 7. 执行生成的程序,记录屏幕响应的情况。例如:A1 可以不带扩展名EXE。程序运行正常的话,应该要显示字符串"Hello World!"。 实验结果 程序运行之后,屏幕上显示字符串“Hello World”。 闲来无聊,想重新学习一下汇编,第一个helloworld,想起绝影的一句话"你们学高级语言,但是高级语言会变,我学低级语言,学了永远也不会变!" - -b stack segment stack ; 定义堆栈段 db 100 dup(?) ;堆栈段长100字节, 这里db就是字节的意思,如果是用dw就是字,100 dup(?) 中的dup是重复的意思,这句话是重复100遍,一遍定义一个字节,每个字节里全填0 stack ends ; 堆栈段结束 data segment ;数据段 szHello db 'hello,world',0dh,0ah,'$' ;定义szHello , 0dh,0ah分别是回车键,换行键的ASCII码, '$'是DOS功能调用INT 21H中9号功能要求的要显示字符串的结束标志,写成szHello db

汇编语言(第2版)王爽著 课后实验报告详解

汇编语言实验报告 : 班级学号 学生姓名 提交日期 成 绩

实验1-1如下: 用E命令将指令写入内存:

用A命令将指令写入内存: 实验1-2代码如下: 用a命令在2000:0000处写如要写如的代码,然后用R命令来修改CS为2000,IP修改为0,然后用T命令执行,直到AX中的值为10,因为是默认为十六进制,所以ax中的0010实际代表十进制的16。如图:

实验1-3: 用D 命令输入内存fff0h~fffffh,则可看到:

生产日期为06/15/09在地址为FFFF5~FFFF12处,现在用E命令随便修改一下有: 在window7下虚拟的dos中可以改,但如果重新打开dos中的debug 则日期任然不会改变,因为那是ROM。 实验1-4代码如下:

内存地址为B800:0开始的为显存,是RAM,可以改变其值来在屏幕中显示,其中这一个字符占两个字节,前一个(低)为字符的ASCII 码,后一个(高)为要显示的颜色,内存B800:0和B800:1这两个字节对应着屏幕中的第一个字符的位置,依次类推,每个屏幕的行有80个字符,对应的内存占160个字节 实验2-1:(按实验结果填空) Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax=5BEA Add ax,[2] ;ax=5CCA Mov bx,[4] ;bx=30F0 Add bx,[6] ;bx=6026 Push ax ;sp=00FE; 修改的内存单元的地址是2200:00FE 内容是5CCA Push bx ;sp=00FC; 修改的内存单元的地址是2200:00FC内容是6026 Pop ax ;sp=00FE; ax=6026. Pop bx ;sp=0100; bx=.5CCA Push [4] ;sp=00FE; 修改的内存单元的地址是2200:00FE内容是30F0 Push [6] ;sp=00FC; 修改的内存单元的地址是2200:00FC内容是2F36 实验截图如下:

机械控制工程基础实验指导书版

河南机电高等专科学校《机械控制工程基础》

目录 实验任务和要求............................................................................................................................................. 实验模块一MATLAB基础实验............................................................................................................

实验任务和要求 一、自动控制理论实验的任务 自动控制理论实验是自动控制理论课程的一部分,它的任务是: 1、通过实验进一步了解和掌握自动控制理论的基本概念、控制系统的分析方法和设 2、按实验指导书要求进行操作;在实验中注意观察,记录有关数据和图像,并由指 导教师复查后才能结束实验。 3、实验后关闭电脑,整理实验桌子,恢复到实验前的情况。

4、认真写实验报告,按规定格式做出图表、曲线、并分析实验结果。字迹要清楚, 画曲线要用坐标纸,结论要明确。 5、爱护实验设备,遵守实验室纪律。 实验模块一MATLAB基础实验 ——MATLAB环境下控制系统数学模型的 建立 一、预备知识 1.MATLAB的简介 MATLAB为矩阵实验室(Matrix Laboratory)的简称,由美国MathWorks公司出品的商业数学软件。主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 来源:20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。 地位:和Mathematica、Maple并称为三大数学软件,在数学类科技应用软件中,在数值计算方面首屈一指。 功能:矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言

相关文档