星研集成环境软件推荐使用项目为单位来管理程序。如果只是做一个简单的实验,或只希望看一个中间结果,可以不建立项目文件,系统需要的各种设置,来源于“缺省项目”。本节不使用项目文件。本例子旨在通过建立一个具体的程序来介绍星研集成环境软件的使用方法以及它的调试功能。
以数据传送程序为例介绍星研集成环境软件,程序是用汇编语言编写的。下面介绍相应的操作步骤:
首先运行星研集成环境软件。启动画面如图1-10所示。
图1-10 星研集成环境软件启动界面
1.选择仿真器或仿真模块
执行“主菜单→辅助→仿真器”,出现一个对话框,如图1-11所示,实验仪选择“SUN ES8688PCIU+”;仿真器选择“EMU86U仿真模块”;最后按“确认”键即可。
如果选择“模拟调试器”,实验仪电源不用开启,使用微机CPU模拟执行程序,可以调用附件中的软件,但无法对I/O接口操作。
2.设置缺省项目
执行“主菜单→辅助→缺省项目”,出现一个对话框,如图1-12所示,选择“8086(EMU86)”。点击进入下一步:“选择语言”,可以根据自己的需要以及程序的类型做相应的选择,如图1-13所示,本实例选择Borland公司的Turbo C(3.0)、TASM(5.0)。然后再点击进入下一步:“编译、连接控制项”。一般选择默认设置就好,直接点击“下一步”就可以了,设置完成后就可以创建源文件了。
3.建立源文件
下面我们建立源文件,执行“主菜单→文件→新建”(或者点击图标),打开窗口,如图1-14(1)所示。
首先选择存放源文件的目录,输入文件名,注意:文件名不能太长,不要超过8位,而且一定要输入文件名后缀.asm。本实例文件名为move.asm,如图1-14(2)所示。
按“确定”即可。然后出现如图1-15所示的文件编辑窗口。
图1-11 仿真器、实验仪选择界面
图1-12 设置缺省项目界面
图1-13 选择语言界面
图1-14 新建源文件
图1-15 文件编辑窗口
输入源程序,如图1-16所示,一个源文件就建立好了。
4.编译、连接文件
建立好源文件,接下来就可以进行编译、连接。对文件进行编译后,如果没有错误,与库文件连接,生成代码文件(dob、exe文件)。
编译、连接文件的方法有如下两种:
(1)使用“主菜单→项目→编译、连接”或“主菜单→项目→重新编译、连接”;
(2)点击图标或来“编译、连接”或“重新编译、连接”。
编译、连接过程中产生的信息显示在信息窗的“建立”视图中。编译没有错误的话如下图1-17所示,若有错误则出现如图1-18所示信息框。
图1-16 源程序输入界面
图1-17 编译成功界面
图1-18 编译出现错误信息
如果有错误、警告信息,用鼠标左键双击错误、警告信息,系统自动打开对应的出错文件,并定位于出错行上。这时用户可以做相应的修改,直到编译、连接文件通过。
5.调试(www.daowen.com)
在进入调试状态以前,还必须确保实验仪与微机的正确连接,电源接通,开关打开。
编译、连接正确后,可以开始调试程序。执行“主菜单→运行→进入调试状态”或点击工具条的,进入调试界面。进入后的窗口如图1-19所示。
图1-19 进入调试状态
在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“Common-Register”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,我们可在此设置断点、设置光标的运行处、编辑程序等。在“寄存器窗”中,我们可以看到一些常用的寄存器的数值。存贮器窗1中显示的是相应的代码段(CS)、数据段(DS)、IO设备区的数据。自动收集变量显示在变量窗。反汇编窗中显示的是对程序反汇编的信息代码、机器码、对应的源文件。在信息窗的“装载”视图中,显示的是装载的代码文件、装载的字节数,装载完毕后显示起始地址、结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口的形状时,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据需要,在“主菜单→查看”中打开:寄存器窗,存贮器窗1、2、3,观察窗,变量窗,反汇编窗。可以通过“主菜单→辅助→设置→格式”设置每一种窗口使用的字体、大小、颜色,如图1-20所示。首先在“种类”中选择一个窗口,然后选择“字体”“大小”,在“颜色”中选择某一类,在“前景”“背景”中选择喜欢的颜色。
图1-20 格式设置界面
可以使用以下命令调试程序:
设置或清除断点(功能键为F2),在当前光标行上设置或清除一个断点。
单步进入(功能键为F7),单步执行当前行或当前指令,可进入函数或子程序。
连续单步进入(功能键为Ctrl+F7),连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。
单步(功能键为F8),单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一行代码上。
连续单步(功能键为Ctrl+F8),连续执行“单步”,用鼠标点击或按任意键后,停止运行。
运行到光标行(功能键为F4),从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。
全速断点(功能键为F9),从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。
全速运行(功能键为Ctrl+F10),从当前地址开始全速运行用户程序,此时,按复位键,CPU从头开始执行程序,用鼠标点击,停止运行。全速运行时,屏蔽了所有断点,即不会响应任何断点。
停止运行。
终止微机与仿真器之间通信(功能键为Esc)。
注意:欲终止微机与仿真器之间的通信,功能键Esc是一个很方便的键,它的效果比点击相应图标的效果要好。建议用户多用Esc键。在系统运行“连续单步”或者“连续单步进入”时Esc键被禁止,这时用户可以按键盘的其他任意键停止其运行。
6.调试的方法及技巧
在调试状态的窗口中我们可以看到很多窗口,只要熟练地应用这些窗口来观察、分析数据就会很快地调试好程序,达到事半功倍的效果。
进入调试界面后,由于我们本次操作需要观察2个数据块:数据段3000H—300FH,数据段6000H—600FH,可以打开一到两个存贮器窗来观察,具体操作是:“主菜单→查看”,显示菜单如图1-21所示。然后根据需要打开不同的窗口。调整后的调试界面如图1-22所示。
图1-21 查看菜单项
由于我们本次操作主要是观察存贮器窗口,所以我们拉大了这两个存贮器窗的大小。每个窗口设置了4个分页项:,我们可以在不同的分页项设置不同的观察数据空间以及地址范围。在中可以选择CS:Memory,DS:Memory,I/O,根据需要可以做不同的选择。在中可以直接输入地址,然后按回车键,就可以直接转到我们输入的地址的窗口上面观察数据。
此程序中写入数据的RAM空间分别为DS:3000H—300FH、DS:6000H—600FH。由于本次程序需要同时观察DS:3000—300FH、DS:6000H—600FH,所以打开2个存贮器窗。软件中总共存在3个存贮器窗。可以同时观察三个不同的地址。
图1-22 调整后的调试界面
存贮器窗支持数据的直接修改功能。本软件的所有窗口中的数据都支持直接修改功能。用户可以根据自己的需要在窗口中直接修改数据。比如:执行程序前,将DS:3000H—300FH中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相对应的地址中直接输入数据即可。如图1-23所示。
一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐记住这些操作相对应的功能键。
在调试程序中我们多次执行“单步进入(F7)”命令,在工作区窗口的Common-Register中查看通用的寄存器,如图1-24所示。我们可以观察到在本程序中所使用的一些寄存器的变化,比如CX、DI、SI的数值的变化,每执行一次MOVSB,CX减1,DI、SI加1,从DS:[SI]取出的数值逐个复制到ES:[DI]中:11、22、33、44、55、66……。
图1-24 寄存器窗口
程序运行也可以采用全速运行程序。检查DS:6000H—600FH的内容,是否与DS:3000H—300FH的内容相同,如果完全一样(如图1-25所示),说明以上程序没有任何问题。如果结果出错,判断程序出错原因,并进行修改,直到结果正确为止。
图1-25 6000H开始存储器单元显示结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。