ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:94.11KB ,
资源ID:23656590      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-23656590.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《微型计算机原理》课件第5章 知识点目录.doc)为本站会员(bubibi)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

《微型计算机原理》课件第5章 知识点目录.doc

1、第5章 汇编语言程序设计知识点第一讲知识点名称:汇编语言源程序格式重点:分段结构中代码段的框架难点:语句格式中操作数的表达式汇编语言源程序的结构是分段结构形式,一个汇编语言源程序由若干段组成,每个段以SEGMENT语句开始,以ENDS语句结束。整个源程序的结尾是END语句。这里所说的汇编语言源程序中的段(称为逻辑段)与存储器的段(称为物理段),既有联系,又在概念上有所区别。我们已经知道,微处理器对存储器的管理是分段的,因而,在汇编语言程序中也要求分段组织指令、数据和堆栈,以便将源程序汇编成为目标程序后,可以分别装入存储器的相应段中。所以,源程序中的段也分为代码段、数据段、附加段、堆栈段。在汇编

2、语言源程序中,可以没有数据段,但至少要有一个代码段。代码段主要由以下几部分组成:(1) 段定义:使用SEGMENT/ENDS语句定义;(2) 段说明:用ASSUME语句说明物理段和逻辑段的关系;(3) 装填段:只装填数据型段寄存器(如DS、ES);(4) 功能段:完成指定功能的程序段;(5) 段返回:设置返回DOS的方法。汇编语言源程序是由语句组成的,语句分为三种:实指令语句:在汇编时会产生供CPU执行的指令代码。所以指令语句又称为可执行语句。伪指令语句:在汇编时不会产生供CPU执行的指令代码。所以伪指令语句又称为非执行语句。宏指令语句:是汇编语言为简化源程序编写而设计的,也称为自定义语句。实

3、指令语句的格式为:名字: 助记符 操作数 ;注释伪指令语句的格式为:名字 定义符 操作数 ;注释“名字”是语句的符号地址,它有三个主要属性:段属性(SEGMENT)、偏移属性(OFFSET)、类型属性(TYPE)。 “助记符和定义符”表示语句的功能。“操作数”是操作的对象。它可以是常量、变量、标号、寄存器、表达式等。“注释”是语句或程序段的说明,不会被汇编。第二讲知识点名称:汇编语言上机过程重点:上机的操作过程难点:返回DOS方法之标准返回方法对于汇编语言源程序需要通过如下程序处理后,才可以生成一个在DOS操作系统下运行的可执行文件(.EXE文件):(1) 文本编辑程序:如DOS的编辑器或Wi

4、ndows的写字板。用于输入源程序,以产生汇编源程序文件(.ASM)。(2) 宏汇编程序MASM:用于对源程序进行汇编,以产生浮动的二进制目标文件(.OBJ)。根据需要还可以生成列表文件(.LST)、交叉引用文件(.CRF)。(3) 连接程序LINK:将目标文件转换成可执行文件(.EXE)。根据需要还可以生成内存映像文件(.MAP)。生成的可执行程序,系统通过如下的步骤会将其放入存储器中:(1) 确定存储器可用空间,以便存放可执行程序(.EXE文件)(2) 建立一个程序前缀段(PSP) 程序段前缀大小100H。即256个字节。 存放执行过程中的控制信息。 PSP最开始的两个字节存放有CD20H

5、代码,它是一条 INT 20H中断指令(即返回DOS指令)。(3) 装入可执行程序.exe,并对段寄存器付初值,以指向相应段的起始地址。装入的顺序是:数据段、附加段、代码段、堆栈段。在汇编语言源程序中一定要设置DOS返回,这样生成的可执行程序在执行后才能正确的结束。设置DOS放回的方法有两种:(1) 非标准方法调用INT 21H的4CH功能返回DOS,即 MOVAH,4CH INT21H(2) 标准方法借用PSP首单元的INT 20H返回DOS。其过程是: 把主程序定义成一个远距离过程。即:过程名 PROC FAR RET过程名 ENDP 在给DS、ES赋初值之前,用下列三条指令,把PSP首单

6、元的逻辑地址压入堆栈,即 PUSH DS ;PSP段地址压栈 MOV AX,0 ;或用XOR AX,AX指令 PUSH AX ;PSP段首单元的偏移地址 ;压栈(偏移地址为0000H)其实这就是利用子程序返回语句RET从堆栈中弹出PSP的首地址(逻辑地址)转移到PSP去执行中断指令INT 20H而返回DOS。第三讲知识点名称:汇编源程序的编写之伪指令语句重点:数据定义为指令难点:数据定义后的存储单元分配伪指令语句是给汇编程序的命令,在汇编过程中由汇编程序进行处理,如定义数据、定义符号、分配存储区、定义段、定义过程、指示段结束等。因此,它不会产生目标代码。宏汇编程序MASM提供了几十种伪指令,其

7、常用的伪指令有:(1) 数据定义为指令变量名 定义符 操作数,操作数,其中定义符有DB,DW,DD,DQ,DT等。操作数可以是常量、变量、标号、表达式、?(预留单元)、n DUP(初值,)(重复定义)等。其中,DB 定义变量为字节类型,为其后的每个数据分配1单元空间。DW定义变量为字类型,为其后的每个数据分配2个单元空间。DD定义变量为双字节类型,为其后的每个数据分配4单元空间。(2) 段定义为指令 段名 SEGMENT 定位类型 组合类型 类别 : 段名 ENDS 用于定义一个逻辑段,给逻辑段赋予一个段名,并以后面的任选项(定位类型、组合类型、类别)规定该逻辑段的其他特性。其中,定位类型:确

8、定逻辑段起始的边界位置。组合类型:确定同名逻辑段的连接方法。类别: 确定同名逻辑段的连接顺序。(3) 段说明为指令ASSUME 段寄存器名:段名,段寄存器名:段名, 用于说明物理段与逻辑段之间的关系。如果说明代码段和堆栈段的,系统会给CS和SS赋予初值,指向定义的代码段和堆栈段。而DS和ES则需要用MOV语句赋值确定。(4) 过程定义为指令 过程名 PROC NEARFAR : 过程名 ENDP过程定义为指令是将一段程序定义成一个过程(也称为子程序),将来可以用过程调用语句来调用。过程有两个类型属性,近距离类型和远距离类型。这可以在定义时说明:NEAR:近距离类型。表示定义的过程只能为本段调用

9、。(不选默认)FAR: 远距离类型。表示不仅可供本段调用,也可供其它段调用。第四讲知识点名称:汇编源程序的编写之宏指令语句及数据的输入与输出重点:字符串的输入与输出难点:宏指令语句的使用宏指令语句是汇编语言为简化源程序编写而设计的。先对要求多次使用的某一程序段进行宏定义,以后在程序中需要使用该程序段的地方,写上一条宏指令语句即可。汇编时,宏指令语句调用的地方被相应的程序所代替。即宏指令语句使用的三部曲:宏定义、宏调用、宏扩展。宏定义:用一段程序(宏体)定义一条宏指令语句。宏调用:在程序中使用该段程序时,使用该定义的宏指令语句。宏展开:用宏定义的宏体(一段程序)替换宏指令语句。注意,使用宏指令语

10、句时,一定要先定义后调用。否则,在汇编时会出现错误而无法生成可执行文件。在汇编语言程序设计中往往需要从键盘上输入一些数据或需要把数据显示在屏幕上。微型计算机系统为汇编用户提供了两个程序接口来使用计算机的硬件资源,一个是RAM中的DOS功能调用,另一个是ROM中的BIOS (basic input/output system)功能调用。它们都是通过中断指令INT n来调用的。其中,INT 21H称为DOS系统功能调用,它包含了近百个已经标准化了的系统调用子功能,通过功能号来调用这些子功能。调用子功能方法是:MOV AH,功能号INT 21H常用的功能有:单字符输入(1号功能),单子符输出(2号功

11、能),字符串输出(9号功能),字符串输入(10号功能)等。(1) 单子符输入(1号功能调用)MOV AH, 1;功能号1送AHINT 21H;等待键盘输入(2) 单子符输出(2号功能调用)MOVDL, ASCII码;待输出的ASCII码送DLMOV AH, 1;功能号1送AHINT 21H;输出DL中的ASCII码(3) 字符串输出(9号功能调用)LEADX, 变量名;待输出的字符串首地址送DXMOVAH, 9;功能号9送AHINT 21H;输出字符串(4) 字符串输入(10功能调用)LEADX, 变量名;存放字符串区域的首地址送DXMOVAH, 0AH;功能号10送AHINT 21H;等待键

12、盘输入字符串,以回车结束第五讲知识点名称:汇编语言程序设计之顺序程序设计和分支程序设计重点:分支程序设计难点:分支程序的判断条件顺序程序也称为直线程序,它是一种最简单的程序结构。顺序程序的特点是从程序的第一条指令开始,按顺序执行,直到执行完最后一条指令。然而,许多实际问题并不能设计成顺序程序,需要根据不同的条件作出不同的处理。把不同的处理方法编制成各自的处理程序段,运行时由机器根据不同的条件自动作出选择判断,绕过某些指令,仅执行相应的处理程序段。按这种方式编制的程序,执行的顺序与指令存储的顺序失去了完全的一致性,称之为分支程序。分支程序是机器利用改变标志位的指令和转移指令来实现的。转移指令有J

13、MP和Jcc两类。前者是无条件转移指令,后者是条件转移指令。JMP无条件转移指令将控制转向其后的目的标号指定的地址。Jcc条件转移指令跟随在能改变状态标志的指令之后,以状态标志变化作为条件来决定是否将控制转向其后的目的地址处。无条件转移指令一定会发生转移,而条件转移指令不一定,只有在满足条件的情况下才会发生转移。条件转移指令以状态标志的值作为条件来判断是否转移。因此,它可以用一个标志来判断(单标志测试条件),也可以用两个标志来判断(无符号数测试条件),还可以用三个标志来判断(带符号数测试条件)单标志测试条件: 用CF、PF、ZF、SF、OF五个状态标志无符号数测试条件:用CF、ZF两个状态标志

14、带符号数测试条件:用OF、SF、ZF三个状态标志第六讲知识点名称:汇编语言程序设计之循环程序设计重点:控制循环的方法难点:分支程序的判断条件我们把能重复执行一段程序的程序称之为循环结构程序。一个循环程序通常由以下四个部分组成:1. 初始化部分:建立循环初始值。如设置地址指针,计数器,其它循环参数的起始值等。这部分不在重复执行的程序段中。2. 工作部分:在循环过程中所要完成的具体操作,是循环程序的主要部分。这部分视具体情况而定。它可以是一个顺序程序、一个分支程序或另一个循环程序。这部分是需要重复执行的程序段3. 修改部分:为执行下一个循环而修改某些参数。如修改地址指针,其它循环参数等。这部分也是

15、重复执行的部分4. 控制部分:判断循环结束条件是否成立。条件成立继续循环,否则,退出循环。通常判断循环是否结束的办法有两种:(1) 用计数控制循环:循环是否已进行预定次数(适合已知循环次数的循环)例如,在10个数中找最大数(或最小数)。这需要用循环结构程序实现。而循环程序的控制部分就是用计数控制循环。因为,在10个数中只需要循环比较9次,就可以找到最大数。(2) 用条件控制循环:循环终止条件是否已成立(适合未知循环次数的循环)。例如,从自然数1开始累加,直到累加和大于1000为止,即s=1+2+n s1000。这需要用循环结构程序实现。而循环程序的控制部分就是用条件控制循环。因为,自然数到底需

16、要加几个题目中没有给出,但给出了控制相加的条件,即和值应小于等于1000(s1000),当和值大于1000时就停止累加。第七讲知识点名称:汇编语言程序设计之过程程序设计重点:过程调用和宏调用的异同难点:过程的调用和返回如果在一个程序中需要多次执行某一连串的指令(程序段)时,那么我们可以把这段程序抽取出来,写成一个相对独立的程序段。每当我们想要执行这段程序时,就调用这段程序,执行完这段程序后再返回原来调用它的程序。这样我们每次执行这段程序时,就不必重复写这一连串的指令了,这样的程序段称为过程或子程序。使用子程序编写程序需要三个步骤:(1) 用过程定义伪指令语句PROC/ENDP定义一个子程序(过

17、程)(2) 在主程序中用CALL指令语句调用这个子程序(3) 在子程序中用RET指令语句返回主程序。调用一段程序还可以调用宏调用。那么,宏调用与过程调用有什么异同呢?宏调用是利用汇编程序的宏处理能力。在汇编过程中,由汇编程序把宏定义的宏体目标代码替换到宏调用处。汇编语言源程序中使用多少次宏指令语句,目标程序中就有多少个宏体的目标代码。因此,使用宏指令语句不能简化目标程序,不会减少目标程序占用的存储空间,也不会增加程序的运行时间。过程调用是在程序运行阶段,由CPU执行CALL语句,转到存放子程序目标代码起始处开始执行。当执行RET语句后返回调用程序继续执行,源程序中不论有多少过程调用,子程序的代码仅在目标程序中出现一次。因此,使用子程序不仅能缩短源程序的长度,且能缩短目标程序的长度。但指令指针的不断切换,将额外占用CPU时间,增加程序执行时间。显然,宏指令语句与过程调用都能起到简化源程序书写,缩短源程序长度的作用。但是,处理方法不一样,带来的时空效率不同,即目标程序长度不一样,运行时间不一样。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报