1. 首页
  2. 文档大全

微机系统与接口技术(钱晓捷)第三章

上传者:11****88 2022-06-10 04:02:13上传 PPT文件 1.41MB
微机系统与接口技术(钱晓捷)第三章_第1页 微机系统与接口技术(钱晓捷)第三章_第2页 微机系统与接口技术(钱晓捷)第三章_第3页

《微机系统与接口技术(钱晓捷)第三章》由会员分享,可在线阅读,更多相关《微机系统与接口技术(钱晓捷)第三章(160页珍藏版)》请在文档大全上搜索。

1、第第3 3章章第第3章:汇编语言程序设计章:汇编语言程序设计教学重点汇编语言源程序格式与开发汇编语言源程序格式与开发常量、变量和标号常量、变量和标号汇编语言程序设计方法汇编语言程序设计方法顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计子程序设计子程序设计3.1 汇编语言源程序格式汇编语言源程序格式完整的汇编语言源程序由完整的汇编语言源程序由段组成段组成。一个汇编语言。一个汇编语言源程序可以包含源程序可以包含若干个代码段、数据段、附加段若干个代码段、数据段、附加段或堆栈段,或堆栈段,段与段之间的顺序可随意排列段与段之间的顺序可随意排列需独立运行的程序必须包含一个需独立运

2、行的程序必须包含一个代码段代码段,并指示,并指示程序执行的程序执行的起始点起始点,一个程序只有一个起始点,一个程序只有一个起始点所有的可执行性语句必须位于某一个代码段内,所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内说明性语句可根据需要位于任一段内通常,程序还需要一个堆栈段通常,程序还需要一个堆栈段 源程序由语句序列构成汇编语言的语句格式汇编语言的语句格式执行性语句执行性语句执行性语句用于表达处理执行性语句用于表达处理器指令器指令(也称为硬指令也称为硬指令),汇编后对应一条指,汇编后对应一条指令代码。由处理器指令组成的代码序列是令代码。由处理器指令组成的代码序列是程

3、序设计的主体程序设计的主体标号标号: 硬指令助记符硬指令助记符 操作数操作数,操作数操作数 ;注释注释说明性语句说明性语句说明性语句用于表达伪指说明性语句用于表达伪指令,指示源程序如何汇编、变量怎样定义、令,指示源程序如何汇编、变量怎样定义、过程怎么设置等过程怎么设置等名字名字 伪指令助记符伪指令助记符 参数参数,参数参数, ;注释注释硬指令与伪指令硬指令与伪指令硬指令(硬指令(Instruction)使使CPU产生动作、并产生动作、并在程序执行时才处理的指令在程序执行时才处理的指令硬指令就是第硬指令就是第2章学习的处理器指令,与具体的章学习的处理器指令,与具体的处理器有关、与汇编程序无关处理

4、器有关、与汇编程序无关伪指令(伪指令(Directive)不产生不产生CPU动作、在程动作、在程序执行前由汇编程序处理的说明性指令序执行前由汇编程序处理的说明性指令伪指令与具体的处理器类型无关,但与汇编程序伪指令与具体的处理器类型无关,但与汇编程序有关。不同版本的汇编程序支持不同的伪指令有关。不同版本的汇编程序支持不同的伪指令 硬指令和伪指令采用易于记忆的符合表达,这就是助记符标号、名字与标识符标号、名字与标识符标号标号是反映硬是反映硬指令位置(逻辑地址)指令位置(逻辑地址)和和属性属性的标的标识符,后跟一个识符,后跟一个冒号冒号分隔分隔名字名字是反映是反映伪指令位置(逻辑地址)伪指令位置(逻

5、辑地址)和和属性属性的标的标识符,后跟空格或制表符分隔,识符,后跟空格或制表符分隔,没有冒号没有冒号标识符标识符(Identifier)一般最多由)一般最多由31个字母、数字个字母、数字及规定的特殊符号(如及规定的特殊符号(如 _、$、?、)组成,)组成,不不能以数字开头。能以数字开头。默认情况下,汇编程序不区别标默认情况下,汇编程序不区别标识符中的字母大小写识符中的字母大小写一个源程序中,每个标识符的定义是唯一的,还一个源程序中,每个标识符的定义是唯一的,还不能是汇编语言采用的不能是汇编语言采用的保留字保留字保留字保留字保留字(保留字(Reserved Word)是汇编程序已经)是汇编程序已

6、经利用的标识符(也称为关键字),主要有:利用的标识符(也称为关键字),主要有:硬指令助记符硬指令助记符例如:例如:MOV、ADD伪指令助记符伪指令助记符例如:例如:DB、DW操作符操作符例如:例如:OFFSET、PTR寄存器名寄存器名例如:例如:AX、CS预定义符号预定义符号例如:例如:data 汇编语言大小写不敏感(不区分大小写)操作数和参数操作数和参数处理器指令的处理器指令的操作数操作数可以是立即数、寄存器可以是立即数、寄存器和存储单元(由寻址方式确定)和存储单元(由寻址方式确定)伪指令的伪指令的参数参数可以是常数、变量名、表达式可以是常数、变量名、表达式等,可以有多个,参数之间用逗号分隔

7、(根等,可以有多个,参数之间用逗号分隔(根据不同伪指令有不同的格式)据不同伪指令有不同的格式)注释注释语句中由分号语句中由分号“;”开始的部分为注释内容,开始的部分为注释内容,用以增加源程序的可读性用以增加源程序的可读性必要时,一个语句行也可以由分号开始作为必要时,一个语句行也可以由分号开始作为阶段性注释阶段性注释汇编程序在翻译源程序时将汇编程序在翻译源程序时将跳过该部分跳过该部分,不,不对它们做任何处理对它们做任何处理分隔符分隔符语句的语句的4个组成部分要用分隔符分开个组成部分要用分隔符分开标号后用标号后用冒号冒号,注释前用分号,注释前用分号操作数之间和参数之间使用操作数之间和参数之间使用逗

8、号逗号分隔分隔其他部分通常采用其他部分通常采用空格或制表符空格或制表符多个空格和制表符的作用与一个相同多个空格和制表符的作用与一个相同MASM支持续行符支持续行符 “”例例3.1 在屏幕上显示一段信息在屏幕上显示一段信息; ;数据段(定义要显示的字符串)数据段(定义要显示的字符串)stringstringdbdbHelloHello, Assembly !, Assembly !,0dh,0ah,0dh,0ah,$ $; ;代码段(显示字符串的程序)代码段(显示字符串的程序)movmov dx,offsetdx,offset string stringmovmov ah,9 ah,9intin

9、t 21h 21hHello, Assembly !程序功能程序功能简化段定义格式简化段定义格式.model small;定义程序的;定义程序的存储模式存储模式(小型模式)(小型模式).stack;定义;定义堆栈段堆栈段(默认是(默认是1KB空间)空间).data;定义;定义数据段数据段;数据定义;数据定义.code;定义;定义代码段代码段start: mov ax,data;程序;程序开始点开始点mov ds,ax;设置;设置DS指向用户定义的数据段指向用户定义的数据段;程序代码;程序代码mov ax,4c00hint 21h;程序终止点,返回;程序终止点,返回DOS;子程序代码;子程序代码

10、end start;汇编结束,同时指明程序起始点;汇编结束,同时指明程序起始点start.exe.exe一般形式执行程序格式一般形式执行程序格式.exe格式的汇编源程序通常由若干段构成,程序格式的汇编源程序通常由若干段构成,程序部分位于代码段中。程序结束时通过部分位于代码段中。程序结束时通过AH=4CH,INT 21H返回系统。返回系统。data segment;定义定义(分配分配)数据空间数据空间data endsstack segment;保留堆栈空间保留堆栈空间stack endscode segmentassume cd:code,ds:data,es:data,ss:stacksta

11、rt:; 程序部分程序部分movah,4chint21hcode endsend start.exe过程调用形式的执行程序格式过程调用形式的执行程序格式过程调用形式的汇编源程序的主程序为一过程,返回系统过程调用形式的汇编源程序的主程序为一过程,返回系统是通过是通过RET指令实现的。在此形式源程序中,主程序开始外必指令实现的。在此形式源程序中,主程序开始外必须要加一段保存返回系统的有关参数的指令。须要加一段保存返回系统的有关参数的指令。data segment;定义定义(分配分配)数据空间数据空间data endsestra segment;定义定义(分配分配)数据空间数据空间estra end


文档来源:https://www.renrendoc.com/paper/212612909.html

文档标签:

下载地址