新版第4章 汇编措辞法度模范设计.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新版第4章 汇编措辞法度模范设计

第4章 汇编语言程序设计 4.1 汇编语言概述 机器指令:用二进制编码的指令 如:1000 1001 1101 1000 4.1 汇编语言概述(续) 图4.1 汇编语言程序的建立、汇编和连接过程 4.2 汇编语言源程序格式 汇编语言源程序采用分段式结构。 一个汇编语言源程序由若干段组成,一般有数据段、代码段、扩展段和堆栈段四种类型,源程序可以根据实际需要来确定段的数目。 4.2.1 汇编语言的语句格式 1. 汇编语言的语句分类 汇编语言有三种基本语句: 指令语句 指令语句是指在汇编时产生目标代码对应着机器某种操作的语句,每条指令语句都对应着CPU的一条机器指令。 伪指令语句 伪指令语句不产生任何目标代码,它是一种指示性语句,只是指示汇编程序如何进行汇编,只有在汇编和连接时才起作用。 宏指令语句 宏指令语句是以宏名定义的一段指令序列,是一般性指令语句的扩展。 在汇编时,凡是出现宏指令语句的地方全部用其对应指令序列的目标代码代替。 2. 汇编语言语句的格式 指令语句的格式为: [标号:] 助记符号 [操作数] [;注释] 伪指令语句的格式为: [名称] 定义符号 [参数][,…参数][;注释] 1)标号和名称 标号和名称代表该语句的存储器地址。 标号后面要紧跟一个冒号“:” 。标号在一些指令中充当操作数,用来表示转移地址。 名称可以是变量名、段名、过程名等。 汇编语言中标识符的命名规则为: ①标识符的第一个字符必须是字母、问号?、@或下划线四者之一; ②从第二个字符开始可以是字母、问号?、@、下划线或数字; ③标识符不能是保留字(例如MOV、STACK)。 在给标识符命名时,应使标识符命名与它代表的内容相符。 2)助记符和定义符 指令语句中的助记符,规定了该指令语句的操作。例如ADD、XOR等。 伪指令语句中的定义符对应于8086宏汇编中提供的伪操作功能。 3)操作数 根据不同的指令,可能是单操作数或双操作数,也可能不带操作数。 伪指令语句中的操作数可以是一个或多个,操作数之间用逗号隔开。 操作数可以是: (1)常量 常量:指令中出现的固定不变的值。可分为: 数值常量 字符常量 数值常量允许使用二进制、十进制、十六进制数,但要注意应以B、D、H字符结尾。 十六进制数如果以字母开头,则必须在该数前面加0,以区别于标识符,如0F5H。 ASCII码常数可将字符放在单引号内,如‘A’。 (2)变量 变量:指存放在某些存储单元中的值,这些值是可变的。 可以用不同的寻址方式对其存取。变量具有如下三种属性: 段属性:指变量所在段的段基址。 偏移量属性:指变量单元地址与段的起始地址之间的地址偏移量。 类型属性:是指变量所占存储单元的字节数大小。类型有字节(BYTE) 、字(WORD)、双字(DWORD)等。 (3)标号 标号有三种属性: 段属性:定义标号的程序段的段基址,当程序中引用一个标号时,该标号的段基址应在CS寄存器中。 偏移量属性:标号所在段的起始地址与定义标号的地址之间的字节数 。 标号的类型属性:NEAR和FAR。 NEAR标号可以在段内被引用,它所代表的地址指针为两个字节; FAR标号可以跨段引用,它所代表的地址指针为四个字节。 (4)寄存器 操作数部分是寄存器名,如AX、BX、SI等。 (5)表达式 表达式:由常数、变量、操作符和运算符组成。 有三种运算符: 算术运算符 逻辑运算符 关系运算符 有两种操作符: 分析运算符 合成运算符 表达式分为数值表达式和地址表达式。 数值表达式只产生数值结果。 地址表达式不是单纯的数值,而是具有不同属性的存储器地址变量或标号,属性包括:段、偏移量和类型。 ①算术运算符 包括:+(加)、-(减)、×(乘)、/(除)、MOD(取模)等。 算术运算符可用于数值表达式,运算结果是一个数值。 在地址表达式中,只能使用“+”、“-”运算符。 ②逻辑运算符 包括:AND(与)、OR(或)、XOR(异或)、NOT(非)。 注意:逻辑运算符只适用于数字操作,对存储器地址操作不适用。 例: MOV AX,789AH XOR 000FH 该指令实际等价于 MOV AX,7895H。 ③关系运算符 包括:EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、LE(小于等于)、GE(大于等于)。 关系运算符所连接的两个操作数,必须是数字或是同一段内的存储器地址。 运算结果为数字值。 当关系不成立,则结果为0; 当关系成立,则结果为全1。 例:MOV AL,5 NE 2;关系成立,故(AL)=0FFH MOV AL,5 LT 2;关系不成立,故(AL)=00H ④分析运算符 a)取地址偏移量运算符OFFSE

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档