如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第一部分本实验手册是利用《TPC-1型十六位微机上机实验系统》进行实验,要求用8086汇编语言来编写程序,这里,我们首先明汇编语言程序从建立到执行的过程。要建立和运行汇编语言程序,应该首先有如下文件:EDIT.COM编辑程序MASM.EXE宏汇编程序LINK.EXE链接程序DEBUG.EXE调试程序下面,以建立和执行用户程序ABC.EXE为例来说明上机过程。1、用EDIT命令建立汇编语言源程序(ASM文件)2、用MASM命令产生目标文件[OBJ文件]3.用LINK命令产生执行文件(EXE文件)4.程序的执行实际上,大部分程序必须经过调试才能纠正程序设计中的成为错误,从而得到正确的结果。所谓调试阶段,就是用调试程序(DEBUG程序)发现错误,再经过编辑、汇编、链接来纠正错误。关于DEBUG程序中的各种命令,可参阅DOS手册,下面给出最常用的几个命令。先进入DEBUG程序并装入要调试的程序hpled.exe,操作命令如下:C:\ASM>DEBUGhpled.exe;进入DEBUG,并装hpled.exe此时,屏幕上出现一个短划线。为了查看程序运行情况,常常要分段运行程序,为此,要设立“断点”,即让程序运行到某处自动停下,并把所有寄存器的内容显示出来。为了确定我们所要设定的断点地址,常常用到反汇编命令,反汇编命令格式如下:--U;从当前地址开始反汇编也可以从某个地址处开始反汇编,如下所示:--U100;从CS:100处开始反汇编确定断点地址后,就可以用G命令来设置断点。比如,想把断点设置在200H处,则如下打入命令:--G200此时,程序在0200H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的寄存器的内容来了解程序运行是否正确。对于某些程序段,单从寄存器的内容看不到程序运行的结果,而需要观察数据段的内容,此时可用D命令,使用格式如下:--DDS:0000;从数据段0单元开始显示128各字节。在有些情况下,为了确定错误到底由哪条指令的执行引起,要用到跟踪命令(单步执行命令),此命令是程序每执行一条指令,边给出所有寄存器的内容。比如:--T3;从当前地址往下执行三条指令。此指令使得从当前地址往下执行三条指令,每执行一条,便给出各寄存器内容。最后,给出下一条要执行的指令的地址、机器语言和汇编语言。从DEBUG退出时,使用如下命令:--Q;退出DEBUG,卸去所装配程序。第二部分8255A并行口的实验三、编程提示1、要完成本实验,首先必须了解交通路灯的亮灭规律。设有一个十字路口,1、3为南,北方向,2、4为东,西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延迟一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。闪烁若干次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。延迟一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁若干次后,再切换到1、3路口方向。之后,重复上述过程。2、程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态。3、8255A的A端口地址为:218HB端口地址为:219HC端口地址为:21AH控制口地址为:21BH四、程序讲解1、设置数据段,以及端口地址分配2、设置堆栈段和代码段3、主程序4、延时程序查看接线图1图2流程图1、设置数据段,以及端口地址分配datasegmentpbdb?portaequ218hportbequ219hportcequ21Ahptconequ21Bhmessdb'ENTERANYKEYCANEXITTODOS!',0dh,0ah,'$'dataends2、设置堆栈段和代码段stacksegmentstackstadw50dup(?)topequlengthstastackendscodesegmentassumecs:code,ds:data,es:data,ss:stack3、主程序start:movax,datamovds,axmoves,axmovah,09h;显示movdx,offsetmessint21hmovdx,ptcon;输入控制字moval,80h;工作在方式0outdx,al;A、B、C口都为输出查看流程图初始化设置movdx,portb;控制4个黄灯灭moval,0f0houtdx,almovdx,portc;控制4个绿灯灭moval,0f0h;4个红灯亮outdx,alcalldelay5;延时movpb,10100101