步骤1:将该程序在编辑区编写,如图1-31所示:
图1-31
图为编辑并编译正确后的结果,
如果编译有错误可以通过双击错误行,来快速在编辑区定位错误位 置,如下图1-32所示
图1-32
步骤2:用手触动386EX扩展板插座右下角的复位按键,对下位机硬件复位。 步骤3:单击通信设置菜单项中的连接,连接串口(默认连接串口属性为COM1 和38400传输速率)或USB接口。如下图1-33:
26
图1-33
步骤4:单击串口菜单项中的下载程序,将生成的exe文件下载到下位机。 如下图1-34显示下载文件进程:
图1-34
步骤5:在源文件中设置断点,可以使用快捷键F9,断点设置完后单击调试 菜单项中的运行(F5),运行到断点。如下图1-35。若要全速运行实验程序, 则不设置断点,直接单击调试菜单项中的运行(F5)即可。当全速运行时, 内存查看窗口,寄存器查看窗口和数据段变量查看窗口不可操作。
图1-35
用户此时可以在内存地址窗口中输入要查看内存的首地址(段地址:偏移地址),注意:段地址和偏移地址必须输满四位。上图中为查看以0为首地址的80个内存单元,也可以在数据查看窗口中查看并修改数据段变量内容;在寄存器查看窗口中查看并修改寄存器内容。
步骤6:单击调试菜单项中的单步进入(F11)或单步跳跃(F10)来进一步 调试程序,如果是单步进入,则单步进入过程,数值变化将以红色显示。如 下图1-36:
27
图1-36
步骤7:当调试完毕后,单击调试菜单项中的退出调试(Shift + F5)。 (四)开发环境约定
在使用386EX集成开发环境进行编辑、调试32位汇编语言程序时,汇编语言的使用有一些约定如下:
1、 源程序一开始需要写 .Model Small
.386
两条伪指令,表示编程模式是小模式,仅支持一个代码段和一个数据段和支持386CPU 32位指令。注意这两条伪指令的书写顺序不可颠倒。如果两条伪指令都不写,则默认为16位指令操作模式。
2、汇编程序中可以使用固件支持的部分INT 16H和INT 21H功能调用,其调用格式与PC机完全相同。详见最后附录介绍。
3、程序结束处可使用INT 21H 的4CH功能结束程序返回监控程序。
实例如下:
.Model small .386
DATA SEGMENT DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA BEG:
MOV AX,DATA MOV DS,AX MOV EAX,1 CALL FUN1
28
CALL FUN2
MOV EBX,3
MOV AH,4CH ;程序结束调用 INT 21H
FUN1 PROC RET
FU1 ENDP
FUN2 PROC RET FU2 ENDP
CODE ENDS END BEG
5、 如果用户程序中含有死循环,进入死循环后,开发环境则失去了对程序的监控权(即此
时无法再进行调试)。解决方法:必须对下位机复位,然后关闭开发环境后再重新打开,进行重新调试。
6、 本开发环境只支持下面两种模式
? .Model small (推荐使用此模式)
.386
? .Model small
7、用户程序中只能含有一个数据段和一个代码段,
8、用户程序装入0:1400开始的内存单元,用户数据段装入1000:0开始的内存单元。一般情况,数据段变量内容可直接在窗口右下方点击变量名即可观察。如果需要观察存储单元的16进制数,则需在左边的地址窗口输入以上段地址:偏移地址才可显示代码段和数据段内容。
9、 在遇到串口或USB不能连接成功时,先复位下位机,然后关闭开发环境,之后再次打开开发环境重新进行调试。
10、串口的默认波特率为38400bps,如果要想改变波特率,在打开集成开发环境后,正确
的操作步骤是:
通信设置->连接->通信设置->重新设定波特率->确定->连接->下载程序。 上述操作原理是先建立默认波特率的连接,成功后再改变波特率。
29
实验 2 8253定时/计数器实验
【实验目的】
熟悉8253在系统中的电路接法,掌握8253的工作方式及应用编程。 【实验内容一】
使用8253两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各0.5秒。
【实验接线图】
GATE0CLK0OUT0GATE1CLK1OUT18254_CS+5V1MHz时钟电路+5VL0LED显示灯0-F地址译码
【实验程序】
【撰写实验报告】实验报告包括的内容 1、写出实验序号、实验题目;
2、依次写清楚本实验的目的、原理、器材等内容; 3、详细写出实验步骤、内容;
4、写出实验结果并按要求对实验结果进行分析;
5、可以谈谈做该实验的体会:成败的原因、关键及今后应注意的事项。
30