微机原理及接口2013年度第12次课

上传人:kms****20 文档编号:50947892 上传时间:2018-08-11 格式:PPT 页数:44 大小:1.51MB
返回 下载 相关 举报
微机原理及接口2013年度第12次课_第1页
第1页 / 共44页
微机原理及接口2013年度第12次课_第2页
第2页 / 共44页
微机原理及接口2013年度第12次课_第3页
第3页 / 共44页
微机原理及接口2013年度第12次课_第4页
第4页 / 共44页
微机原理及接口2013年度第12次课_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《微机原理及接口2013年度第12次课》由会员分享,可在线阅读,更多相关《微机原理及接口2013年度第12次课(44页珍藏版)》请在金锄头文库上搜索。

1、微机原理及接口第3章 汇编语言程序设计3.1 3.1 汇编语言程序格式汇编语言程序格式3.4 3.4 汇编语言程序设计汇编语言程序设计3.3 DOS3.3 DOS功能调用功能调用3.2 3.2 伪指令伪指令教学重点本章介绍程序结构、伪指令、汇编语言程序设计重点:汇编语言程序的基本结构; 伪指令及其使用方法; 基本的汇编语言程序设计方法。难点:汇编语言程序的设计3.1 汇编语言程序格式汇编语言汇编程序汇编语言源程序的格式汇编语言语句的分类汇编语言的语句格式汇编语言用助记符和符号地址指令编写的程序就是汇编语言或汇编语言源程序。汇编语言是面向机器的语言。特点:1. 汇编语言的指令与机器指令一一对应,

2、用助记符表示操作码,便于记忆和分析程序。2. 可充分利用机器的硬件功能和结构特点,有效的加快程序的执行速度,实时性能好。3.1 汇编语言程序格式汇编程序用于将汇编语言编写的源程序自动翻译成机器能执行的二进制代码程序(即目标程序)的软件叫汇编程序作用:1. 将源程序的助记符翻译成用二进制代码组成的目标程序;2.检查语法错误;3.展开宏指令。3.1 汇编语言程序格式汇编语言源程序的格式1. 分段编写(代码段、数据段、堆栈段、附加段);2. 每个段都要有段名;3. 编写程序,段无先后;4. 段分配由汇编程序来完成,由操作系统来划分5. 数据的分配由汇编程序来完成6. 汇编语言源程序结束用END语句7

3、. 每一个段的起始于结束格式为:段名 SEGMENT 段名 ENDS8. 每个源程序至少要有代码段。3.1 汇编语言程序格式汇编语言语句分类语句类型指令语句作用:产生相应的机器代码,指定CPU做什么操作。伪指令语句(指示性语句 )作用:不产生相应的机器代码,仅控制汇编过程。可 以完成数据的定义,分配存储器,指示程序开始 和结束等功能。宏指令语句作用:由编程者按照一定的规则来定义的一种较“宏大 ”的指令,包括多条指令或伪指令 。3.1 汇编语言程序格式汇编语言的语句格式3.1 汇编语言程序格式名字 操作码 操作数 ;注释说明:1.综括号括起来的项可有可无;项与项之间用空格键隔开;操作数与操作数之

4、间用逗号分隔。名字:某些数据或存储器地址编的临时符号名字。名字由131个字符组成。可以是AZ,az,09 ,?、_等。但第一个字符必须是字母。 命名规则: (1) 数字不能作为名字的第一个符号。 (2) 单独的问号(?)不能作为名字。 (3) 最大有效长度为31位。 (4) 汇编语言中有特定含义的保留字(如操作码、寄存器名 等),不能作为名字使用。 (5)见名知义。如用BUFFER表示缓冲区、SUM表示累加 和等。3.1 汇编语言程序格式汇编语言的语句格式名字3.1 汇编语言程序格式汇编语言的语句格式名字段名:逻辑段的名字名字变量名:存放某一数据的存储单元地址标号名:存放某一指令的存储单元地址

5、 ,标号后面紧跟“:”号过程名:子程序的名字常数名:代表某一确定的常数标号的三种属性段属性偏移属性类型属性定义该指令放在哪个逻辑段。表示该指令放在逻辑段哪个偏移地址中。指出该标号是在本段内引用还是在其他段中 引用。段内引用属性为NEAR;段间引用属 性为FAR。3.1 汇编语言程序格式汇编语言的语句格式名字标号标号:某一指令所存放单元的符号地址。操作数:用来指定参与操作的数据。多于一个,之间用逗号分开 。可以是常数或表达式。操作码与操作数例:MOV AX , BX操作码:指明操作的性质和功能,指令中的助记符都是操作码无操作数:一个操作数:两个操作数:伪指令、宏指令可有多个操 作数:3.1 汇编

6、语言程序格式变量段属性偏移属性类型属性表示变量放在哪个逻辑段表示变量放在逻辑段哪个偏移地址中变量类型定义变量所占的字节数。如:BYTE(DB,1字节)、WORD(DW,2字节)、 DWORD(DD,4字节)、QWORD(DQ,8字节) 、TBYTE(DT,10字节)。3.1 汇编语言程序格式汇编语言的语句格式名字变量变量:某一数据所存放单元的符号地址。操作数立即数(常数)存储器(标号、变量)表达式(由操作数和运算操作符组成)寄存器3.1 汇编语言程序格式汇编语言的语句格式操作码/伪指令汇编语言的语句格式操作数常数数值常数字符串常数 符号常数 后缀:二进制B、八进制O或Q、 十进制D、十六进制H

7、。十进制数可省掉后缀十六进制数以AF开头时,前面 须加数字0字符串在计算机中以ASCII码存储 。如A的存储值是41H,AB的存储 值是41、42H等。用EQU或 “=” 定义的符号常量。如用COUNT EQU 3或 COUNT=3定义后 , COUNT是一个符号常数, 与数值3等价。汇编语言的语句格式操作数常数3.1 汇编语言程序格式汇编语言的语句格式操作数表达式3.1 汇编语言程序格式表达式:用一个运算符对一个或几个操作数运算,这就 构成了一个表达式,从而得到一个新值。1.算术运算符2.逻辑运算符3.关系运算符4.分析运算符5.合成运算符汇编语言的语句格式操作数表达式 算术运算符3.1 汇

8、编语言程序格式算术运算符:只能用于数值表达式汇编语言的语句格式操作数表达式 逻辑运算符3.1 汇编语言程序格式逻辑运算符:只能用于数值表达式汇编语言的语句格式操作数表达式 关系运算符3.1 汇编语言程序格式当关系不成立时,结果为0;当关系成立时,结果为-1.(关系式的两个操作数必须是数字或是同一段内的两个 地址单元) 设(AI)=6汇编语言的语句格式操作数表达式 分析运算符3.1 汇编语言程序格式分析运算符:对变量或标号的属性进行分解。分别返回 不同属性的值。SIZE返回值=LENGTH返回值*TYPE返回值汇编语言的语句格式操作数表达式 组合运算符3.1 汇编语言程序格式组合运算符:用于建立

9、或改变变量及标号的新类型。汇编语言的语句格式注释项注释前面要求加上分号。用于说明、解释程序使之便于阅读或检查。注释对汇编不起任何作用,不对应于任何机器码, 只是增强源程序的可读性。3.1 汇编语言程序格式第3章 汇编语言程序设计3.1 3.1 汇编语言汇编语言程序格式程序格式3.4 3.4 汇编语言程序设计汇编语言程序设计3.3 DOS3.3 DOS功能调用功能调用3.2 3.2 伪指令伪指令3.2 伪指令 常用的常用的伪指令伪指令有有: :vv数据定义伪指令数据定义伪指令vv符号定义伪指令符号定义伪指令vv段定义伪指令段定义伪指令vv过程定义伪指令过程定义伪指令vv结束结束伪指令伪指令vv宏

10、指令宏指令DATADATASEGMENTSEGMENT BLOCKDB 43H,0ABH, PDATADB 20 DUP(?) DATADATAENDSENDS例题例题DBDB用来定义用来定义字节字节 DWDW用来定义用来定义字字 DDDD用来定义用来定义双字双字v数据定义伪指令DB,DW,DD,DQ,DTDQ:DQ: 4 4个字个字 DT:DT: 1010个字节压缩个字节压缩BCDBCD码码DATASEGMENT DATA1 DATA1 DB DB 10, 10H10, 10H DATA2 DATA2 DWDW 100H,100100H,100 DATA3 DATA3 DDDD 2*30,0

11、FFFBH2*30,0FFFBH STR1 DBDB1234 STR2 DWDWAB ABC DBDB0,1,?,?,? DATAENDS例例1 1:dup: 重复伪指令String2 db 20 dup (?)DATA SEGMENT A DB ABCDEF B DW 10 DUP(1,2DUP(2) DATA ENDS例例2 2:1.1.等值伪指令等值伪指令EQUEQU格式为:符号名格式为:符号名EQUEQU表达式表达式例:例:CONSTANTCONSTANTEQUEQU1001002.2.等号等号(=)(=)伪指令伪指令 与与EQUEQU类似类似, ,但允许重新定义但允许重新定义 例:例

12、: EMP=7EMP=7;值为值为7 7 EMP=EMP+1EMP=EMP+1;值为值为8 8vv符号定义伪指令符号定义伪指令vv段定义伪指令段定义伪指令与段有关的伪指令有:与段有关的伪指令有:SEGMENT、ENDS、ASSUME段定义伪指令的格式如下:段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS这两个伪指令总是成对出现,二者前面的段名一致。 二者之间一般是符号、变量定义等伪指令。对于代码段则 是指令及伪指令。此外,还必须明确段和段寄存器的关系,这可由 ASSUMEASSUME语句来实现。ASSUME 段寄存器名段寄存器名: :段名段名 ,段寄存器名,段寄存器名: :段名段

13、名 ,.告诉汇编程序用告诉汇编程序用SEGMENTSEGMENT定义过的定义过的段段的的段地址段地址将要将要 存放在哪个存放在哪个段寄存器段寄存器中。中。并没有给段寄存器赋予实际 的初值。真正把段地址装入段寄存器(称为段初始化)的 操作需要由程序员自己完成MOVAX,DATAMOVDS,AXMOVES,AX这些语句实现了将段基址装入段寄存器。而代码段 不需要用户装入,由初始化程序装入。ASSUME CS: CODE, DS: DATA, EASSUME CS: CODE, DS: DATA, ES: DATA2S: DATA2vv段定义伪指令段定义伪指令vv过程定义伪指令过程定义伪指令过程的含

14、义和子程序是一样的,一个过程可以被其它程序 所调用,这个过程的最后一条指令,一般是返回指令。过程定义伪指令的格式为: 过程名 PROC NEAR(近过程)或 过程名 PROC FAR (远过程)RET 过程名 ENDP调用一个过程的格式为:调用一个过程的格式为:CALLCALL 过程名过程名说明: (1)过程名为过程的入口地址(首地址);(2) PROC和ENDP指令须成对出现;(3)过程中至少要设 置一条RET指令;(4)远过程可由其他代码段调用,近 过程只能由本代码段调用。vv结束伪指令结束伪指令ENDEND当汇编程序对源程序进行汇编过程中,如遇到END,表示 源程序到此结束。 格式为:

15、END 标号标号通常就是程序第一条指令的标号。vv宏指令宏指令宏定义 宏指令名 MACRO 形式参数表ENDM宏调用 宏指令名 实参数表 实参数与形参数一一对应,宏指令也可不带参数宏展开-汇编程序在遇到宏指令时,将其展开为一条 一条的指令性语句,并在这些语句前加“+”号例:将一位16进制数(0-8)转换成ASCII码DATA SEGMENTDATA1 DB 5TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H,38HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,DATA1MOV BX,OFFSET TABLEXLATCODE ENDSEND START第3章 汇编语言程序设计3.1 3.1 汇编语言汇编语言程序格式程序格式3.4 3.4 汇编语言程序设计汇编语言程序设计3.3 DOS3.3 DOS功能调用功能调用3.2 3.2 伪指令伪指令调用指令:调用指令:INT 21HINT 21H 这是一条这是一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号