




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 PC系列微机汇编程序的上机过程及基础知识1汇编程序 汇编程序是把用汇编语言编写的源代码翻译成计算机能够识别的机器语言的目标模块。 在汇编过程中有两种汇编程序,其一是小汇编程序ASM,在小汇编程序下汇编语言程序可在64KB的内存条件下运行,小汇编程序不支持宏指令以及有关的功能,只能有限制地使用伪指令。其二是宏汇编程序MASM,它必须在96KB以上的内存条件下运行,宏汇编程序、包括小汇编的功能,同时可以使用所有的宏指令和伪指令。因此通常采用宏汇编程序MASM。 宏汇编程序的功能如下: 检查和编制源程序 生成宏指令; 把初始已经分配地址的目标程序重新分配为其他的地址 检查源程序的错误; 产生源程序语句列表和每个源程序汇编后的目标程序。 在汇编过程中,不运行用户编写的源程序,而是把源程序翻译成机器语言,宏汇编程序在磁盘操作系统DOS下运行。 要建立和运行用户自己编写的汇编语言程序,系统盘上必须有如下文件: 全屏幕编辑程序EDIT或其他文字编辑系统; 宏汇编程序MASM.EXE 连接程序LINK.EXE 调试程序DEBUG. .COM2汇编语言上机的四个步骤 当用户编写好汇编语言程序,需要上机调试和运行时需要经过编辑程序、连接程序、调试程序等四个步骤,如图所示。 (1)编辑源程序 用全屏幕编辑程序EDIT或其他文字处理系统建立和修改源程序。 在编辑程序状态下用键盘键人汇编语言源程序,用键盘送入的程序是一个ASCII码的信息程序,用存盘命令将在屏幕编辑好的源程序存人磁盘,这样在磁盘上产生了一个后缀为.ASM的源程序文件。 (2)汇编程序 机器只能接收机器码,源程序经过编译后可产生机器码的目标文件,后缀为.OBJ,如果在源程序中有任何语法错误,宏汇编将会指出。经过汇编程序的编译后,实际上可产生三个文件,即:机器码的目标文件.OBJ,列表文件.LST和交叉文件.CRF。 列表文件是可打印文件,它除了包含源程序以外还包含:行号、段地址和每条指令的偏移地址、每条语句所对应的目标码。如果在汇编后出现错误,则.LST文件可在出错行提示错误信息。 交叉索引文件.CRF提供在源程序中各种符号的定义和引用情况。 汇编后如果出现语法错误,应更新返回到编辑状态,进行修改,修改后再进行汇编,直到汇编成功为止。 (3)连接程序 汇编后产生的目标文件必须经过连接,才能成为可执行程序.EXE,连接程序的任务是把若干个目标文件模块连接起来,解决在汇编程序里的符号地址问题,把程序中可浮动的相对地址变为绝对地址,形成可执行的.EXE文件,然后,就可以在DOS状态下执行程序。如果执行结果不令人满意,可以通过调试程序DEBUG进行调试,再编辑、汇编、连接、执行,直到满意为让。 (4)调试程序DEBUG是调试汇编语言程序的工具,它具有跟踪程序的运行、设置断点、显示修改内存与寄存器的内容等功能,因此在调试程序中可以寻找错误和修改错误,可以对小段程序进行汇编,也可对磁盘进行读写操作。在接口应用中,DEBUG可直接用输入输出命令对接口操作,是调试各种应用程序的极其方便的工具。经过DEBUG调试后的程序,必须重新进行编辑(进入EDIT编辑程序),再进行汇编、连接、才可执行。3汇编语言上机基本知识IMS_DOS的启动开始运行COMMAND (在Window操作环境下,点击开始,后点击运行,输入COMMAND回车),进入MS_DOS环境“ ” ,界面如下。IIMS_DOS 的退出在MS_DOS环境下进入EXIT回车,返回Window操作环境,界面如下。IIIMS_DOS的基本命令显示和改变当前目录命令CD格式:CDdpath类型:内部命令。参数说明:d:参数指定用户要改变到的目录所在的驱动器盘符,path参数指定要改变成当前目录的于目录所属的路径缺省path时显示的是指定磁盘的当前路径。CD命令有两个经常使用的格式。第一种格式为:不管C盘(以C盘为例)当前目录在哪儿,都把当前目录改成根目录,格式为:CD, CD和反斜线之间可以不加分隔符;第二种格式为:把当前目录改变成上一级目录,格式为:CD.其他的目录操作、文件操作、磁盘操作可在Windows下进行后,在MS_DOS下进入相应的目录即可。IV进入DEBUG环境在MS_DOS环境下进入DEBUG回车,进入DEBUG操作环境,界面如下。V退出DEBUG环境在DEBUG环境下进入Q回车,进入MS_DOS环境,界面如下。VIDEBUG基本命令 (1) 汇编命令A格式:A 段寄存器名:偏移地址 A 段地址:偏移地址 A 偏移地址 A 功能:用该命令可以将汇编语言程序直接汇编进入内存。当键入A命令后,显示段地址和偏移地址等待用户键人汇编指令。每键入一条汇编指令回车后,自动显示下一条指令的段地址和偏移地址,再键入下一条汇编指令,直到汇编语言程序全部键人,又显示下一地址时可直接键入回车返回到提示符“”为止。 其中的段地址在段地址寄存器中,因此在使用该命令时必须将段地址寄存器送人段地址,的段地址在CS中,的段地址在CS中,偏移地址为100H。(2) 显示内存命令D格式: D 地址 D 地址范围 D功能:显示指定内存范围的内容。(3) 修改存储单元内容命令E格式: E 地址 内容表 E 地址功能:用命令所给定的内容表去代替指定地址范围的内存单元内容 一个单元,一个单元地连续修改单元内容。(4) 检查和修改寄存器内容命令R格式: R R 寄存器名功能:显示CPU内部所有寄存器的内容和全部标志位的状态。显示和修改一个指定寄存器的内容和标志位的状态。(5) 追踪与显示命令T格式:T地址或 T地址 T地址 条数 或 T地址条数功能:执行一条指定地址处的指令,停下来,显示CPU所有寄存器内容和全部标志位的状态,以及下一条指令的地址和内容。 为多条跟踪命令,从指定地址开始;若命令中用地址给定了起始地址,则从起始地址开始,若未给定,则从当前地址(CS:IP)开始,执行命令中的条数决定一共跟踪几条指令后返回DEBUG状态。(6) 反汇编命令U 格式:U地址 U地址范围 功能:将指定范围内的代码反汇编语言形式显示,同时显示该代码位于内存的地址和机器码。若在命令中没有指定地址,则以上一个U命令的最后一条指令地址的下一个单元作为起始地址;若没有输入过U命令,则以DEBUG初始化段寄存器的值作为段地址,以0100H作为偏移地址。(7) 运行命令G格式;G地址 地址地址功能:执行用户正在调试的程序。其中地址为执行的起始地址,以CS中内容作为段地址,以等号后面的地址为偏移地址。后面的地址为断点地址。在命令行中只有起始地址,没有断点地址,则程序在执行时不中断。DEBUG规定最多设置10个断点地址。设置多个断点用于调试较大的程序,即程序中有多个模块、多个通路时用,比较方便。在执行时不论走哪条通路,程序都可以在断点处停下来,以便调试程序。断点地址为程序中断处的偏移地址,段地址在CS中。当执行在DEBUG状态下汇编的小段程序时,只用G命令即可。(8)结束DEBUG返回DOS命令Q格式:Q功能:程序调试完退出DEBUG状态,返回到DOS状态下。Q命令不能把内存的文件存盘,要想存盘必须在退出DEBUG之前用W命令存盘(9)命名命令N格式:N文件名功能:在调用DEBUG时,没有文件名,则需要用N命令将要调用的文件名格式化到CS:5CH的文件控制块中。才能用L命令(读盎命令)把它调入内存进行调试 (其他形式参考DOS手册)。(10)读盘命令L格式:L地址驱动器号起始扇区号所读扇区个数 L地址 L功能:把指定驱动器和指定扇区范围的内容读到内存的指定区域中。其中地址是读人内存的起始地址,当输入没有给定地址,则隐含地址为CS:100H。起始扇区号指逻辑扇区号的起始位置。所读扇区个数是指从起始扇区号开始读到内存几个扇区的内容。驱动器号为0或1,1表示A盘,1表示B盘。 读入已在(CS:5CH中格式化的文件控制块所指定的文件。在使用该命令前用N命令命名即可将要读入的文件名格式化到CS:5CH的文件控制块中,其中地址为内存地址。 同,地址隐含在CS:100H中。如果读入的文件有扩展名COM或EXE,则始终装入CS:100H中,命令中指了地址也没用。(11)写盘命令W格式:W地址驱动器号起始扇区号所写扇区个数 W地址 W 功能:把在DEBUG状态下调试的程序或数据写入指定的驱动器中,起始扇区号为逻辑扇区号,所写扇区个数为要占盘中几个扇区。 写盘指定局区的操作应十分小心,如有差错将会破坏盘上的原有内容。如果在命令行中的地址只包含偏移地址,则W命令认为段地址在CS中。 当键入不带参数的写盘命令时,(或只键入地址参数的写盘命令),写盘命令把文件写到软盘上。该文件在用W命令之前用命名命令N将文件格式化在CS:5CH的文件控制块中。 只有W命令而没有任何参数时,与N配合使用进行写盘操作。在用W命令以前在BX和CX中应写入文件的字节数。实例:用汇编语言编写一个计算“3十5”的加法程序。首先从Windows操作环境进入MS_DOS环境,然后进入DEBUG环境,输入A和代码,运行,保存输入的源程序以及重新装入源程序,过程如下图所示。VIIEdit编辑软件进入Edit编辑状态在MS_DOS下直接键入Edit回车即可,建议同学们首先在Windows环境下建立自己的目录,然后进入MS_DOS环境,用DOS的CD(改变目录命令)切换到自己的目录下,再键入Edit回车,这样自己的目录为当前目录。Edit常用编辑功能键键功能、将光标移到上行、下一行、右移一格、左移一格Backspace退一格Del或CtrlG删除光标所在处的一个字符或一个块CtrlT删除光标所在处的一个词(此时光标必须位于这个词的第一个字符下)CtrlY删除光标所在行Ins或CtrlV插入与替换操作转换。当按一下Ins键时,光标变成长方形高亮度,此时为替换状态。再按一下Ins将光标又转回初始状态,此时为插入状态Home将光标移到光标所在行的行首End将光标移到光标所在行的行尾Ctrl+ Home将光标移到文件起始位量Ctrl+ End将光标移到文件尾CtrlEnter将光标移到下一行的起始位置Ctrl+或Ctrl+W向上卷一行Ctrl+或Ctrl+Z向下卷一行PgUp向上卷一页PgDn向下卷一页 第二章 PC系列微机的初级程序的编写与调试实验1实验目的(1)了解、熟悉PC系列微机编写,调试汇编程序环境。(2)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。(3)深入了解数据在存储器中的存取方法以及堆栈中数据的压入与弹出(4)掌握各种寻址方法以及简单指令的执行过程。2实验设备 (1)IBM PC机(PC/XT,AT,286,386、486)3实验内容 (1)设堆栈指针SPFFFEH,AX3000H,BX5000H;请编写程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。(2)设DS当前段地址,BX0300H,SI0002H;请用DEBUG的命令将存储器偏移地址300H304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时AX中的内容是什么。程序清单如下: MOV AX,BX MOV AX,0304H MOV AX,0304H MOV AX,BX MOV Ax,0001BX MOV AX,BXSI MOV AX,0001BXSI HLT (3)设AX0002H,编一个程序段将AX的内容乘以10,要求用移位实现4实验要求 (1)实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法果的分析等。 (2)本实验要求在PC机上进行。(3)本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序、执行程序。5实验报告 (1)程序说明说明程序的功能、结构。包括:程序名要符号,并对所用到的寄存器进行说明。 (2)调试说明 包括上机调试的情况、上机调试步骤、调试过程中所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 (3)画出程序框图。 (4)保留程序和执行过程清单。6编程提示 (1)实验内容1将两个寄存器的内容进行交换时,必须有一个午间寄存器才能进行内容的交换。如果用堆栈作为中间存储单元,必须遵循先进后出的原则。(2)实验内容2 其中数据段寄存器中的段地址为进入DEDUG状态后系统自动分配的段地址。 SI和BX的初值可在DEBUG状态下用R命令装入,也可以在程序中用指令来完成。 用T命令程序执行,可进行单步跟踪执行,每执行一条指令就可以看到各寄存器的状态。也可用R命令直接调出寄存器,来检验各寄存器内容是否正确。 在执行程序前,可用E命令将偏移地址300H304H送入0AH,0BH,0CH,0DH。 (3)实验内容3用移位的方法完成某些乘法运算乘2运算。是较为常见的方法,操作数左移一位为操作数算式210的程序流程图请自己画出。程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。 在程序送人后,最好将它存入磁盘,以免程序丢失需要重新调入。第三章 汇编语言复杂程序设计实验1实验目的 (1)熟练掌握编写汇编语言源程序的基本方法和基本框架。 (2)学会编写顺序结构、分支结构和循环结构的汇编程序方法。 (3)掌握程序中数据的产生与输入输出的方法。2实验内容 假设有一组数据5,4,0,3,100,51,请编写程序,判断:每一个数大于0,等于 0,还是小于0;并输出其判断结果(正数、负数和零总数分别为多少)。3实验要求(1)实验前准备分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。写出算法或画出流程图。写出源程序。对程序中结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。(2)本实验要求在PC机上进行。(3)汇编过程中出现问题,可用DEBUG进行调试。4调试说明 首先将原始数据(5,4,0,3,100,51)装入起始地址为XX的字存储单元中。 将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。 其中判断部分可采用CMP指令,得到一个分支结构,分别输出“Y0”,“Y1”,“Y1”。 程序中存在一个循环结构,循环6次,调用6次分支结构后结束。5思考题(1)试验题目中的原始数据,是否可以通过键盘提供,如何编程?请将编好的程序上机调试。(2)程序中的原始数据是以怎样的形式存放在数据区中的?请用DEDUG调试程序进行观察并分析。 第四章 可编程并行接口(8255A)实验1实验目的 并行接口是以数据的字节为单位和I/O设备或被控对象之间传送信息,凡是CPU与外设之间同时需要传送两位以上信息时均需采用并行接口。 可编程并行通信接口(8255A)是一个具有两个8位(A口和B口)和两个4位(C口)并行输入输出端口的接口芯片,为了适应多种数据传送方式的要求、8255A设置了3种工作方式:方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。实验目的如下: (1)了解8255A基本上作方式的特点和功能。 (2)掌握8255A的编程方法。2实验设备IBM PC机(PC/XT,AT,286,386、486)3实验内容用8255和8253编程,使扬声器发出600HZ的可听见频率,按任意键停止。4实验步骤 可编程并行通信接口(8255A)电路简介。可编程并行通信接口(8255A)的内部结构见下图。它包括A,B,C三个数据端门,A,B组两个控制电路,读写控制逻辑电路以及数据总线缓冲器,如下图所示。 端口A为8位数据传送,数据输入或输出时均受到锁存。 端口B为8位数据传送,数据输入时不受锁存,而数据输出时受到锁存。 端口c为8位数据传送,数据输入时不受锁存,而数据输出时受到锁存。 A组和B组两个控制电路一方面接收芯片内部总线上的控制字,另一方面接收来自读/写控制逻辑电路的读/写命令。因而由它们来确定三组端口的工作方式和读/写操作。A组控制电路控制端口入A(PA0PA7)和端口C的高4位(PC7PC4)工作方式和读/写操作。 B组控制电路控制端口13(PB0PB7)和端口C的低4位(PC3PC0)的工作方式和读/写操作。数据总线缓冲器负责管理8255A的数据传送过程,即接收/CS和来自系统总线的信号A0,A1,以反控制总线的信号RESET,/WR、/RD,并将这些信号进行组合得到对A组及B组控制电路的控制命令。 在8255A中,由系统总线的信号A0及A1来选择数据传送的端口 当A1,A0为00时,选中A端口。 当A1,A0为01时,选中B端口。 当A1,A0为10时,选中C端口。 当A1,A0为11时,选中控制口。端口C的位控制字方式控制字(1) 电路设计本IBM PC机实验原理如下图所示(2)实验装置接线方法IBM PC机实验线路已经集成在计算机主板上,不用连线。(3)编写程序 根据题意在微机上编写源程序,汇编,连接程序,调试程序,直到成功为止。5实验报告(1)画出流程图。写出各控制字(2)保存程序清单和执行结果(3)实验过程中出现了哪些问题(4)问答思考题。有几种方法可以让扬声器不发声?6编程提示设置控制字,使8255的B、C端口工作在方式功作在适当的方式。然后向B、C端口写入值,对计数器8253设置初始值前先设置控制字,然后设置初始值。第五章 可编程计数器/定时器(8253)实验1实验目的 可编程计数器/定时器(8253)既可作为计数器,又可作为定时器。它有9个I/0引脚,分为3个独立编程的计数器0、计数器1及计数器2。它们均可独立地作为计数器和定时器。每个计数器都有6种工作方式,每种工作方式依靠方式字来设置,从而产生不同方式的电信号。 本实验目的: (1)了解8253基本上作方式的特点和功能。 (2)掌握8253的编程方法。2实验设备 (1)IBM PC机(PC/XT,AT,286,386、486) 3实验内容用8255和8253编程,使扬声器发出600HZ,900,1200,1500,1800,2100,2400循环的可听见频率,按Escape键停止,其他任意键可听见频率循环。4实验步骤 (1)电路设计在进行电路设计之前,应了解8253的基本结构与工作原理,简述如下8253由6个部分组成,其工作原理图如下图所示。 计数器(计数器0、计数器1、计数器2):8253内部有3个独立的计数定时器通道。每个通道的结构完全相同,每个通道都有一个16位初始值寄存器、一个计数执行部件(减法计数器)和一个锁存寄存器。在编程时,可将计数初值送人8253的初始值寄存器中计数执行部件从初始值寄存器中得到计数初值,进行减1计数;与此同时,锁存器跟随计数执行部件的内容变化而变化。当有一个锁存命令来到时、锁存器便锁存当前计数值,直到被读走以后席,又跟随计数执行部件一起动作。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸英语函电与实务练习题
- 《学生个人电脑硬件操作培训教案》
- 土地综合开发合作协议
- 从一本好书中学到的道理读后感类作文(15篇)
- 六一亲子诵读活动方案
- 六一儿童节比武活动方案
- 六一公司团委活动方案
- 医学营养考试试题及答案
- 六一套圈圈活动方案
- 医学考试试题库及答案
- 《光伏发电工程工程量清单计价规范》
- T-JMTX 013-2020 特种设备作业人员考核细则 锅炉水处理(G3)
- 仓库搬迁及改进方案课件
- 港湾网络介绍胶片
- OFFER通知:实习生录取函
- 四川省安全员《B证》考试题库及答案
- 单值-移动极差X-MR控制图-模板
- 江苏省戏剧学校辅导员招聘考试真题2022
- 军队保密协议书模板(标准版)
- Python语言编程基础PPT完整全套教学课件
- 2023年杭州中考科学(word版及详细答案)
评论
0/150
提交评论