计算机通信接口技术实践课_第1页
计算机通信接口技术实践课_第2页
计算机通信接口技术实践课_第3页
计算机通信接口技术实践课_第4页
计算机通信接口技术实践课_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实习目的熟悉与掌握PC汇编语言程序的熟悉环境、输入输出软中断调用、调试和运行方法。二、实验任务(1)编程1:要求按任一个数字、字母键就在屏幕上显示出来,当键入的键为Q时返回DOS;(2)编程2:附图1-1-1流程图编程。三、实验原理(一)汇编语言程序的组成8088汇编语言程序主要由以下几部分组成:代码段、数据段、堆栈断。.代码段代码段是由汇编CPU指令组成的程序部分,这些指令挖成各种任务,如数据传送、实现算术运算功能等等。代码段的定义形式如下:段标识符,SEGMENT定位类型组合类型类别段标识符ENDS定位类型组合类型类别在一般情况下可以省略不写。一些讲要讲述的数据段、堆栈断的定义形式与上同。

2、.数据段虽然代码断是一个汇编程序必不可少的部分,但是几乎所有是8088汇编语言程序都至少需要一个数据段,用来存放有关数据。例:以下数据段定义了3个变量(A,B,C)。DATASEGMENT从数据口3F8H读数据并显示。附图1-1-1流程图ADB2BDB3CDW?DATAENDS上述语句中的DB和DW是汇编伪指令,分别定义了两个字节和一个属性为字的存储单元。A存储单元存放数值2,B中存放数字3,而16存储单元C中存放不定值。.堆栈段堆栈是8088体系中的一种特殊类型的存储器,它的特点是“先进后出,后进先出”,即最先入栈的数据最后才弹出。堆栈段是汇编程序设计中,一般用来保存程序的返回地址,在调用子

3、程序前保存当前各个寄存器的值(也称保存程序现场)。也可以用来临时保存一些变量值。在段定义SEGMWNT后加上类别为STACK就可以定义一个段为堆栈段。(二)汇编语言程序设计1.简单程序设计简单程序只具有顺序结构,是按照语句出现的选后次序执行一系列的动作,它没有分支、循环和转换,如附图1-1-2所示。(2)分支程序设计在很多实际问题中,往往都需要根据不同的情况进行不同的处理。这种思想体现在程序设计中,就是根据不同条件而跳到不同的程序段去执行,如附图1-1-3所示。语句1语句2语句N附图1-1-2顺醋结构附图1-1-3分支电路在汇编程语言程序中,判断条件跳转是通过条件转移指令来实现的。例子如下:例

4、:判断AX的第5是否为1,如果为1将BX内容加1。TESTAL,B;将AL内容与20H相与JZNEXT;如果结果为0,则转入NEXT去执行INCBX;如果结果非0,则表示第5位为1,BX内容加1NEXT:TEST指令可改变标志位,当AL第5位为1是,AL内容与B想与的结果是非0,即ZF标志位为0,执行JZ指令时不跳转。反之,当第5位为0时,想与的结果为0,执行JZ指令时则跳转到标号NEXT处。.循环程序设计循环结构是重复做一系列动作,直到满足条件为止,流程图如附图1-1-4所示。一种结构(a)是党某一条件一直成立,则重复做同一个动作或一系列动作,直到条件不成立为止。它是先检查条件,再执行动作。

5、另一种(b)是先执行动作,再检查条件成立与否,因此,这种结构至少要执行循环体内同一次。循环程序一般分为4个部分:设置循环的初值。如设置循环次数,为使循环体正常工作而建立的初始状态等。循环体。循环体是循环工作的主要部分,也是在循环程序中被重复执行的部分,是为完成某种特定功能而设计的程序段。修改部分。为保证每次循环,相关信息日循环计数器的值、操作数地址等能发生有规律的变化,为下次循环做偶好准备。循环控制部分。循环控制是循环程序是个户的关键。每个循环程序必须选择一个恰当的循环控制条件来控制循环的运行和结束。有时循环次数是已知的,可使用循环次数计数器来控制:有时循环次数是未知的,则应该根据具体情况设置

6、控制循环结束的条件。下面举例说明循环程序设计的方法。附图1-1-4循环结构例:计算从NTADAD单元开始连接20附图1-1-4循环结构DATASEGMENTNDATADB2010896701763908702367343291018DATAENDSCSEGSEGMENTASSUMECS:CSEG,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETNDTATMOVAH,0MOVCX,20REPEAT:MOVAL,BXCMPAL,0JNZNEXT;取首地址,建立地址指针;计数器清零;取首地址,建立地址指针;计数器清零;循环次数;取一个数;与零比较;不为零则继续取

7、下一个数;为零则计数器加1;地址指针加1;重复比较,直到20个数都比较完;程序结束软中断调用指令(功能号:;4c21HDOS中断调用指令)NEST:INcBXLOOPREPEATMOVAX,4c00HINT21HcSEGENDSENDSTART.子程序设计子程序又称为过程,它相当于高几语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同此时就可以把这些程序段写成子程序的形式,以便需要时可以调用它。也可以将具有一定功能的程序段写成子程序的形式,使程序结构清楚,实现模块化程序设计。子程序是用过程定义语句PROC和ENDP来定义的

8、。一般格式如下:过程名PROC属性RET过程名ENDP其中过程名为过程名,它是子程序入口的符号地址。属性为类别属性,它可以是NEAR或FAR,由它指出对该过程的调用还是段间调用。NEAR用于段内调用,而FAR用于段间调用。过程属性确定原则是:(1)调用程序和过程若在同一代码段中,则使用NEAR属性;(2)调用程序和过程若不在同一代码段中,则使用FAR属性;(3)过程是主程序也称主过程,应定义为FAR属性。因为我们把程序的主过程看作DOS调用的一个子过程,而DOS对主过程的调用和返回都是FAR属性。另外,调用过程的指令格式为:过程名例:CODESEGMENT主过程调用过程功能调用与功能调用与高级

9、语言准备了许多标准过程供用户直接调用一样,汇编程序也可以调用两种系统服务软件,即系统功能调用,这两个服务所提供的例行程序都是实现微机系统中最基本的功能程序。这些基本功能包括显示器、键盘、打印机、串行口等设备提供输入与输出服务,对存储空间进行分配和释放的管理;对磁盘设备提供读写服务和磁盘空间的管理;以及对文件的读写、程序的运行等提供服务。有了这些例行程序,程序员就不必了解硬件接口的特征,可直接用指令设置参数后,用软中断指令调用。中断使用方法是:首先按照中断的规定,输入入口参数,然后执行指令,最后分析出口参数,如附图所-示5。设置最后分析出口参数,如附图所-示5。设置入口参数执行INTn分析出口参

10、数附图1-1-5DOS软中断调用方法下面例举部分功能子程序,中断号为(1)带显示的键盘输入(1号功能)入口参数:无功能:从键盘取一个字符显示。出口参数:输入字符的II值。说明:若键入的是则退出命令执行。例如:(2显)示字符(2号功能)入口参数:待显示字符。功能:显示单个字符。出口参数:无。例:要显示字符可用下列几条指令:(3显)示字符串(9号功能)入口参数:S字符串首地址(字符串以为结束语)。功能:在屏幕上显示字符串(不含$)。如果要显示字符串”,示例如下:有关调用的具体方法见有关手册,这里不讲诉。(三)编写汇编语言程序应特别注意的问题在编写汇编语言源程序时,除了要写出能完成程序功能的指令,如

11、还必须加入伪指令,才能形成一个完整的汇编语言源程序。见下例:DATASEGMENT;定义数据段;数据定义DATAENDS;定义代码段;主程序定义为一个过程;保存老的数据寄存器的值;对赋零值;对内容送入堆栈保存;数据寄存器赋值;完成程序功能的指令程序段;返回到;主程序结束;定义子程序;子程序指令;子程序结束CSEGENDS;代码段结束;程序结束()当把主程序建立为过程,由调用该过程。进入程序后,在源程序代码中,开始一般都有如下的语句:将的内容和作为段地址和便宜抵制入栈,以便在程序结束时用指令返回。如果在主程序开始没有用上面三条指令在堆栈中建立返回信息或主程序非一个过程,则现在程序结束时就不能直接

12、用返回指令,而应该使用汇编号为的功能调用返回。如下所示:(程序结构可参考上面循环程序设计的程序示列)()程序除了需要有段说明语句对程序的各个段行进行说明外,数据段寄存器还需要用语句特别赋值。(3)另外,程序中除了每一段,每一个过程需要有相应的结束伪指令,整个的程序也需要一个结束指令。格式为:程序执行首指令的标号(四)汇编语言程序上机操作的过程编写的程序,必须在计算机上运行,才能解决实际问题。下面我们来介绍在机上,如何运行汇编语言源程序的具体步骤可分为4个阶段,如附图所-示6机上,如何运行汇编语言源程序的具体步骤可分为4个阶段,如附图所-示6。运行调试阶段附图1-1-6汇编语言上机步骤.输入阶段用任何一种文字编辑程序(如)输入源程序,建立源程序文件,扩张名为汇2编.阶段源程序就是用汇编怨言的语句编写的程序,它是不能为机器所识别的,所以要经过汇编程序加以翻译,因此汇编程序的作用就是把源文件转换成用二进制代码表示的目标程序,即文件。在转换的过程中,汇编程序将对源程序进行二遍扫视,如果源程序中有语法错误,最后得到无语法错误的文件。常用的汇编程序是,用法是:在键入后,要键入要汇编的程序文件名。例如,如果经第一阶段建立一个文件叫,要想生成文件只要键入命令:回车

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论