实验一 系统认识实验Word文档下载推荐.docx

上传人:b****4 文档编号:17164693 上传时间:2022-11-28 格式:DOCX 页数:22 大小:397.84KB
下载 相关 举报
实验一 系统认识实验Word文档下载推荐.docx_第1页
第1页 / 共22页
实验一 系统认识实验Word文档下载推荐.docx_第2页
第2页 / 共22页
实验一 系统认识实验Word文档下载推荐.docx_第3页
第3页 / 共22页
实验一 系统认识实验Word文档下载推荐.docx_第4页
第4页 / 共22页
实验一 系统认识实验Word文档下载推荐.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

实验一 系统认识实验Word文档下载推荐.docx

《实验一 系统认识实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验一 系统认识实验Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。

实验一 系统认识实验Word文档下载推荐.docx

\xingyan\TC;

2如何使用星研集成环境软件

下边几节,介绍如何使用星研集成环境软件:

以下将使用汇编语言,将数据段中3000H~30FFH单元的内容传送给实验仪B4区的61C256的2000H~20FF中;

B4区的61C256在I/O设备区,使用

读写;

再将它传送回数据段的6000H~60FFH中。

2.1数据传送程序(ASM)

星研集成环境软件推荐您使用项目为单位来管理您的程序。

如果您做一个简单的实验,或只希望看一个中间结果,您可以不建立项目文件,系统需要的各种设置,来源于“缺省项目”。

本节不使用项目文件。

本例子旨在通过建立一个具体的程序来介绍星研集成软件的使用方法以及它的强大的调试功能。

使用户很快的上手,体验到我们软件功能的强大和方便。

本实例是将数据段中3000H~30FFH单元的内容传送给实验仪B4区的61C256的2000H~20FFH中;

再将它传送回数据段的6000H~60FFH中,程序是用汇编语言来编写。

下面介绍相应的操作步骤:

首先运行星研集成软件。

启动画面如图:

1、设置缺省项目

执行[主菜单»

辅助»

缺省项目],出现一个对话框:

选择“STARES8688仿真模块”。

点击进入下一步:

“选择语言”

您可以根据自己的需要以及程序的类型作相应的选择,本实例选择Borland公司的TurboC(3.0)、TASM(5.0)(请确定在选择语言之前已经安装好相应的编译软件)。

然后再点击进入下一步:

“编译、连接控制项”

实验仪提供64Kmemory空间,memorymodel请选择tiny,缩写为mt;

如果需要源程序级别调试,必须使用-v–y控制项,为了支持多文件编译、连接,必须使用-c控制项。

一般不必改变TurboC的编译控制项。

如果需要源程序级别调试,必须使用/zi/l控制项。

一般不必改变Tasm的编译控制项。

如果需要源程序级别调试,必须使用/m/l/v控制项。

一般不必改变TLINK的连接控制项。

“存贮器出借方式”

仿真模块EMU598提供64K仿真RAM,作程序段(CS)、数据段(DS)、附加段(ES)、堆栈段(SS)使用。

2、建立源文件

下面我们建立源文件,执行[主菜单»

文件»

新建],(或者点击图标

)打开窗口如下:

首先选择存放源文件的目录,输入文件名,注意:

一定要输入文件名后缀。

对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。

比如:

*.asm文件,使用TASM来对它编译。

本实例文件名为move.asm。

窗口如下:

按“确定”即可。

然后出现文件编辑窗口:

输入源程序,本实例的源程序如下:

.MODEL

TINY

;

memorymode:

tiny

.STACK

100

堆栈

.CODE

开始程序段

START:

MOV

AX,@DATA

DS,AX

ES,AX

NOP

CX,100H

SI,3000H

DX,2000H

START1:

AL,[SI]

OUT

DX,AL

INC

SI

DX

LOOP

START1

DI,6000H

START2:

IN

[DI],AL

DI

START2

SJMP

$

Move

ENDP

END

START

输入源程序,如下图:

这样一个源文件就建立好了。

3.编译、连接文件

首先选择一个源文件,然后可以编译、连接文件了。

对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、EXE文件)。

编译、连接文件的方法有如下二种:

(1)使用[主菜单»

编译、连接]或[主菜单»

重新编译、连接]”。

(2)点击图标

来“编译、连接”或“重新编译连接”。

“编译连接”与“重新编译、连接”区别:

“重新编译、连接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、EXE文件)。

编译、连接过程中产生的信息显示在信息窗的“建立”视中。

编译没有错误的信息如下:

若有错误则出现如下信息框:

有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。

这时用户可以作相应的修改,直到编译、连接文件通过。

4.调试

在进入调试状态以前,请正确设置通信口:

执行[主菜单»

通信],对话框如下:

仿真器、实验仪配套的通信线可以与微机USB口相连,即为USB通信线,请选择USB。

对于最下面一行的校验,通常您不必选中它,可以提高传送DOB、HEX、BIN文件时的速度。

在进入调试状态以前,你还必须确定仿真器、实验仪与微机的正确连接,如果使用仿真器,仿真头正确地连接在仿真器上。

电源接通,开关打开。

在软件中选择对应的仿真器、实验仪型号,具体设置如下:

仿真器、实验仪],对话框如下:

根据你所使用的机型作相应选择。

如果编译、连接正确后,可以开始调试程序。

进入调试状态方法有:

a)执行[主菜单»

运行»

进入调试状态]

b)点击工具条的

c)执行[主菜单»

装载DOB、HEX、BIN文件]

进入后的窗口如下:

在整个图片中我们可以看到相对应的窗口信息。

在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。

中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。

寄存器窗我们可以看到一些常用的寄存器的数值。

存贮窗1、存贮窗2显示相应的程序段(CS)、数据段(DS)、IO设备区的数据,还有变量窗,自动收集变量显示其中。

反汇编窗显示对程序反汇编的信息代码、机器码、对应的源文件。

在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。

这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。

用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;

将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。

在调试过程中,可以根据您的需要,在[主菜单»

查看]中打开:

寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。

您也可以通过[主菜单»

设置»

格式],设置每一种窗口使用的字体、大小、颜色。

移动窗口到您喜欢的位置、大小。

 

首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。

对于高级语言,在您的程序前有一段库文件提供的初始化代码,

(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;

如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行行后停下。

您可以使用以下命令调试您的程序:

设置或清除断点(功能键为F2)

在当前光标行上设置或清除一个断点

单步进入(功能键F7)

单步执行当前行或当前指令,可进入函数或子程序。

连续单步进入(功能键Ctrl+F7)

连续执行“单步进入”,用鼠标点击

或按任意键后,停止运行。

单步(功能键F8)

单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。

如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。

连续单步(功能键Ctrl+F8)

连续执行“单步”,用鼠标点击

运行到光标行(功能键F4)

从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击

,停止运行。

全速断点(功能键F9)

从当前地址开始全速运行用户程序,碰到断点或用鼠标点击

全速运行(功能键Ctrl+F10)

从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,用鼠标点击

全速运行时,屏蔽了所有断点,即不会响应任何断点。

停止运行

终止微机与仿真器之间通信(功能键ESC)。

欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。

建议用户多用ESC键。

在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。

5.调试的方法及技巧

一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。

在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。

进入调试界面后,由于我们本次操作需要观察三个数据块:

数据段3000H~30FFH,数据段6000H~60FFH,I/O区2000H~20FFH,可以打开二到三个存贮器窗口,具体操作是:

[主菜单»

查看]

然后根据你的需要打开不同的窗口。

调整后的调试界面为:

由于我们本次操作主要是观察存贮器窗口,所以我们拉大了这两个存贮器窗口的大小。

每个窗口设置了4个分页项:

,我们可以在不同的分页项设置不同的观察数据空间以及地址范围。

中可以选择CS:

Memory,DS:

Memory,I/O,根据需要可以做不同的选择。

中可以直接输入地址,然后按回车,就可以直接转到我们输入的地址的窗口上面观察数据。

由于我们在此程序中的写入数据的RAM空间分别为DS:

3000H~30FFH、DS:

6000H~60FFH、I/O区2000H~20FFH,故我们建立的分页项如下:

存贮0分页项:

存贮1分页项:

存贮2分页项:

我们这样设置界面的目的就是当用户要观察不同地址段的数据时,只要切换一下分页项就行了。

由于本次程序需要同时观察DS:

3000~30FFH、I/O:

2000~20FFH和I/O:

2000H~20FFH、DS:

6000H~60FFH,所以打开二个存贮器窗。

如图:

软件中总共存在3个存贮器窗。

可以同时观察三个不同的地址。

存贮器窗口支持数据的直接修改功能。

本软件的所有窗口中的数据都支持直接修改功能。

用户可以根据自己的需要在窗口中直接修改数据。

执行程序前,将DS:

3000H~300FH中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相对应的地址中直接输入数据即可。

一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。

在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:

我们可以观察到在本程序中所使用的一些寄存器的变化,比如AX、CX、DX、SI的数值的变化,每一次循环,CX减一,DX、SI加一,AX寄存器的低字节AL暂存从DS:

[SI]取出的数值:

11、22、33、44、55、66……。

我们可以看到存贮器窗口中的相对应的RAM的数据的变化。

比如

其中右边为相应数据的ASCII码。

切换分页项我们可以观察到其它地址的数据。

把光标移动到MOVDI,6000H行上,点击图标

(功能键F4),全速运行到光标行,检查IO:

2000H~20FFH内容,是否与DS:

3000H~30FFH相同,如果完全一样,说明以上程序没有任何问题。

切换分页项,存贮器窗显示DS:

6000H开始的单元内容,将光标移到JMP$行的左边,鼠标变为

,点击鼠标,在该行上设置了一个断点,也可以用鼠标点击该行,将光标移到鼠标处,点击图标

(功能键为F2),设置断点,重复操作,清除断点。

点击图标

(功能键F9),CPU全速断点运行到光标处停下,检查DS:

6000H~60FFH内容,与I/O:

2000H~20FFH内容是否一样,相同表示程序没问题;

如果不相同,将光标移到MOVDI,6000H行上(具体操作是:

用鼠标点击该行,然后再点击图标

),使用单步进入命令F7或连续单步进入命令Ctrl+F7,检查结果,判断程序出错原因。

实验一数据传送

一、实验目的

熟悉星研集成环境软件的使用方法。

熟悉Borland公司的TASM编译器

熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。

二、实验内容

1、熟悉星研集成环境软件。

2、编写程序,实现数据段的传送、校验。

三、程序框图

四、实验步骤

在DS段内3000H~30FFH中输入数据;

使用单步、断点方式调试程序,检测DS段内6000H~60FFH中的内容。

熟悉查看特殊功能寄存器、CS段、DS段的各种方法。

五、程序清单

.DATA

MOV

CALL

CLD

清方向标志

REPE

CMPSB

JNE

ERROR

TRUE:

JMP$

ERROR:

Move:

PROC

NEAR

CMP

SI,DI

JZ

Return

JNB

Move1

ADD

SI,CX

DEC

DI,CX

STD

Move1:

REP

MOVSB

Return:

RET

Move

六、思考题

1、子程序Move中为什么比较SI、DI?

答:

源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。

2、编写一个程序,将DS段中的数据传送到实验仪B4区的61C256中。

说明:

读写。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1