汇编语言程序设计学生用

上传人:第*** 文档编号:58293884 上传时间:2018-10-28 格式:PDF 页数:67 大小:973.56KB
返回 下载 相关 举报
汇编语言程序设计学生用_第1页
第1页 / 共67页
汇编语言程序设计学生用_第2页
第2页 / 共67页
汇编语言程序设计学生用_第3页
第3页 / 共67页
汇编语言程序设计学生用_第4页
第4页 / 共67页
汇编语言程序设计学生用_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《汇编语言程序设计学生用》由会员分享,可在线阅读,更多相关《汇编语言程序设计学生用(67页珍藏版)》请在金锄头文库上搜索。

1、1第第4章汇编语言程序设计章汇编语言程序设计4.1 4.1 汇编语言汇编语言程序格式和伪指令程序格式和伪指令汇编语言汇编语言程序格式和伪指令程序格式和伪指令4.34.3 汇编语言汇编语言程序设计程序设计汇编语言汇编语言程序设计程序设计4.2 4.2 DOSDOS功能调用功能调用功能调用功能调用1教学重点教学重点重点:重点:汇编语言程序的基本结构;汇编语言程序的基本结构;伪指令及其使用方法;伪指令及其使用方法;DOS功能调用;功能调用;基本的汇编语言程序设计方法。基本的汇编语言程序设计方法。难点:难点:2汇编语言程序设计汇编语言程序设计24.1 汇编语言程序格式汇编语言程序格式4.1.1 汇编语

2、言程序格式汇编语言程序格式4.1.2 伪指令语句伪指令语句4.1.3 汇编语言程序框架汇编语言程序框架3汇编语言程序的编写过程汇编语言程序的编写过程1)用文本编辑器建立扩展名为)用文本编辑器建立扩展名为.ASM源文件。源文件。2)用)用MASM程序将扩展名为程序将扩展名为.ASM的文件汇的文件汇 编成扩展名为编成扩展名为.OBJ的文件。的文件。3)用)用LINK程序把扩展名为程序把扩展名为.OBJ的文件连接 成扩展名为的文件连接 成扩展名为.EXE的文件。的文件。4)在)在DOS方式下直接键入文件名就可执行方式下直接键入文件名就可执行4该程序。该程序。3汇编语言源程序的操作流程图汇编语言源程序

3、的操作流程图汇编语言程序的上机过程汇编语言程序的上机过程出错出错出错出错出错出错编 辑 程 序编 辑 程 序WINDOWS源程序文件源程序文件 EXMP.ASM汇 编 程 序汇 编 程 序出错出错文件文件 EXMP.OBJ (EXMP.LST) () (EXMP.CRF)连 接 程 序连 接 程 序出错出错文件文件 EXMP.EXE (EXMP.MAP) () (EXMP.LIB)5WINDOWS文本编辑器文本编辑器EDITASMMASMLINKDEBUGDEBUG 常用命令A 起始地址 汇编并保存一段指令语句U 起始地址 反汇编DEBUG 常用命令A 起始地址 汇编并保存一段指令语句U 起始

4、地址 反汇编T =起始地址 单步执行(执行一条语句)R 寄存器 显示或修改寄存器内容D 存储单元逻辑地址 显示存储单元T =起始地址 单步执行(执行一条语句)R 寄存器 显示或修改寄存器内容D 存储单元逻辑地址 显示存储单元(8080个字节个字节/ /次次)6(8080个字节个字节/ /次次)N 文件名 定义文件L 装入文件N 文件名 定义文件L 装入文件4语句类型语句类型指令语句指令语句4.1.1 汇编语言语句格式汇编语言语句格式语句类型语句类型作用:产生相应的机器代码,指定作用:产生相应的机器代码,指定CPU做什么操作。做什么操作。伪指令语句伪指令语句 作用:不产生相应的机器代码,仅仅起控

5、制汇编过程 的作用。作用:不产生相应的机器代码,仅仅起控制汇编过程 的作用。宏指令语句宏指令语句7宏指令语句宏指令语句 作用:宏指令语句是由编程者按照一定规则来定义的 一种较“宏大”的指令; 可包括多条指令或伪指令。作用:宏指令语句是由编程者按照一定规则来定义的 一种较“宏大”的指令; 可包括多条指令或伪指令。4.1.1 汇编语言语句格式汇编语言语句格式指令语句与伪指令语句的区别:指令语句与伪指令语句的区别:指令语句指令语句汇编时翻译成二进制机器代码的语句。汇编时翻译成二进制机器代码的语句。指令语句指令语句标号标号 操作码操作码 操作数操作数 操作数操作数 注释注释指令语句指令语句标号标号:操

6、作码操作码 操作数操作数, 操作数操作数;注释注释伪指令语句伪指令语句也叫指示性语句;也叫指示性语句;只是为汇编程序在翻译汇编语言源程序时提供相关信息, 并不翻译成机器代码。只是为汇编程序在翻译汇编语言源程序时提供相关信息, 并不翻译成机器代码。伪指令语句伪指令语句名字名字操作码 操作数操作码 操作数 ;注释注释格式上的别格式上的别8格式上的格式上的区区别别:指令语句的标号后有冒号“:”指令语句的标号后有冒号“:”而伪指令语句的名字后则没有冒号。而伪指令语句的名字后则没有冒号。5名字名字名字由字母开头。名字由字母开头。命名规则命名规则:(1)数字不能作为名字的第一个符号。)数字不能作为名字的第

7、一个符号。(2)汇编语言中有特定含义的保留字。)汇编语言中有特定含义的保留字。如操作码、寄存器名等,不能作为名字使用。如操作码、寄存器名等,不能作为名字使用。(3)见名知义。)见名知义。9如用如用BUFFER表示缓冲区、表示缓冲区、SUM表示累加和等。表示累加和等。指令助记符及操作数指令助记符及操作数指令助记符:指令助记符:指明操作的性质和功能,指令助记符 与操作数之间用空格分开。指明操作的性质和功能,指令助记符 与操作数之间用空格分开。如如MOV、ADD 等都是操作码。等都是操作码。操作数操作数:用来指定参与操作的数据。:用来指定参与操作的数据。指令中可以有一个或两个操作数;指令中可以有一个

8、或两个操作数;也可以没有操作数。也可以没有操作数。10当操作数多于一个时,操作数之间用逗号分开。当操作数多于一个时,操作数之间用逗号分开。6汇编语言数据表示汇编语言数据表示1、常量、常量(1)数值常量数值常量汇编语言中的数值常数可以是二进制汇编语言中的数值常数可以是二进制十进制或十六十进制或十六汇编语言中的数值常数可以是二进制汇编语言中的数值常数可以是二进制、十进制或十六十进制或十六 进制数;进制数;书写时用加后缀书写时用加后缀二进制用二进制用B十进制用十进制用D十六进制用十六进制用H11十六进制用十六进制用H。十六进制数以十六进制数以AF开头时,前面须加数字开头时,前面须加数字0,以避免 和

9、名字混淆,如十六进制数,以避免 和名字混淆,如十六进制数0A6H。(2)字符串常量字符串常量包括在单引号中的若干个字符形成字符串常数;包括在单引号中的若干个字符形成字符串常数;字符串在计算机中存储的是相应字符字符串在计算机中存储的是相应字符ASCII码值码值常量常量字符串在计算机中存储的是相应字符字符串在计算机中存储的是相应字符ASCII码值码值。如如AB的存储值是的存储值是41、42H等。(等。(3)符号常数符号常数用等值伪指令用等值伪指令EQU或者“或者“=”等号伪指令定义的符号常量。等号伪指令定义的符号常量。用用COUNT EQU 3 ,COUNT是一个符号常数;是一个符号常数;12与数

10、值与数值3等价。等价。7(1)算术运算符:算术运算符:+(加)、(加)、(减)(减)运算符及表达式运算符及表达式*(乘)、(乘)、/(除)(除)MOD(取模)(取模)(2) 逻辑运算符:逻辑运算符:AND(与)(与)OR(或)(或)NOT(非非)13NOT(非非)XOR(异或)(异或)逻辑运算的结果是一个常数。逻辑运算的结果是一个常数。运算符及表达式运算符及表达式(3)关系运算符:关系运算符:相等相等(EQ)相等相等(EQ),不等(不等(NE),),小于(小于(LT),),大于(大于(GT),),小于等于小于等于(LE);14小于等于小于等于;大于等于(大于等于(GE)。)。8运算符及表达式运

11、算符及表达式运算规则运算规则:运算结果为真时,其结果为全“运算结果为真时,其结果为全“1”;运算结果为假时,其结果为全“运算结果为假时,其结果为全“0”. 例如:指令例如:指令MOV BX,32EQ45等价于等价于MOV BX,0; (4)数值返回运算符)数值返回运算符OFFSET、SEG、TYPE、LENGTH、SIZE(5)修改属性运算符)修改属性运算符PTR15PTR变量在数据段、附加数据段或堆栈段中定义。变量在数据段、附加数据段或堆栈段中定义。段属性(段属性(SEG):变量变量定义变量的段起始地址。定义变量的段起始地址。偏移属性(偏移属性(OFFSET):变量所在段的段内偏移地址。变量

12、所在段的段内偏移地址。类型属性(类型属性(TYPE):16字节、字、双字字节、字、双字9数值返回数值返回:OFFSET, SEG, TYPE, LENGTH, SIZEOFFSET 变量或标号;返回偏移地址变量或标号;返回偏移地址SEG 变量或标号;返回段地址变量或标号;返回段地址TYPE 变量或标号;返回类型属性变量或标号;返回类型属性LENGTH 变量; 使用变量; 使用DUP时返回包含的 单元数,其他变量返回时返回包含的 单元数,其他变量返回1SIZE 变量;变量;SIZE=LENGTH*TYPE174.1.2 伪指令伪指令数据定义语句数据定义语句DB,DW,DD,DQ,DT,DUP标号

13、定义语句标号定义语句EQU, =标号定义语句标号定义语句QU,段定义语句段定义语句SEGMENTENDS段分配语句段分配语句ASSUME过程定义语句过程定义语句PROCENDP程序开始结束语句程序开始结束语句 NAME , ORG, END 结构定义语句结构定义语句18结构定义语句结构定义语句STRUCENDS外部伪指令外部伪指令PUBLIC EXTRAN对准伪指令对准伪指令EVEN,LABEL10SEGMENT和和ENDS总是成对使用的;总是成对使用的;用来指定段的名称和范围;用来指定段的名称和范围;还可以指明段的定位类型还可以指明段的定位类型(Alit)1. 段定义语句段定义语句SEGME

14、NTENDS还可以指明段的定位类型还可以指明段的定位类型(Aligne type);组合类型(组合类型(Combine type)和分类名。格式如下:)和分类名。格式如下:段名段名 SEGMENT定位类型定位类型组合方式组合方式类别名类别名;指令句或伪指令句;指令句或伪指令句19段名段名 ENDS(1) 段名) 段名段名是赋予该段的一个名称;段名是赋予该段的一个名称;1. 段定义语句段定义语句SEGMENTENDS它位于它位于SEGMENT与与ENDS伪指令之前;伪指令之前;需成对出现,且前后必须相同。需成对出现,且前后必须相同。注意注意:在同一模块中,:在同一模块中,不同段不同段的段名的段名

15、不能相同不能相同。2011(2)定位类型)定位类型 作用:对段放置的起始地址进行规定作用:对段放置的起始地址进行规定四种类型的起始位置分别为四种类型的起始位置分别为(X表示可为表示可为0或或1):1. 段定义语句段定义语句SEGMENTENDS四种类型的起始位置分别为四种类型的起始位置分别为(X表示可为表示可为0或或1):(A) BYTEXXXX XXXX XXXX XXXX XXXXB(B) WORD XXXX XXXX XXXX XXXX XXX0B(C) PARAXXXX XXXX XXXX XXXX 0000B(D) PAGEXXXX XXXX XXXX 0000 0000BBYTE、WORD、PARA、PAGE分别表示以字节、分别表示以字节、21字、节、页的边界为起始地址。字、节、页的边界为起始地址。如果缺省定位方式,则以节(如果缺省定位方式,则以节(PARA)的边界为起 始地址。)的边界为起 始地址。2. 段分配语句段分配语句 ASSUME格式格式 ASSUME CS

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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