- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 汇编语言程序基础 ;本章主要内容;4.1 机器语言与汇编语言;程序设计语言按其级别可以划分为机器语言、汇编语言和高级语言三大类。
1.机器语言
机器语言就是计算机指令系统。用机器语言编的程序可以被计算机直接执行。
2.汇编语言
汇编语言用助记符来代替机器指令的操作码和操作数,如用ADD表示加法,SUB表示减法,MOV表示传送数据等。 ;4.2 汇编语言的基本语法;4.2.1 语句格式;4.2.2 语句类型与结构;
;
;4.2.3 汇编语言中的表达式;
;
;4.2.4 汇编语言的运算符;3.关系运算符
关系运算符包括EQ(等于)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)、GE(大于等于)共六种。它们对两个运算对象进行比较操作,若满足条件,表示运算结果为真“TRUE”,输出结果为全“1”;若比较后不满足条件,则运算结果为假“FALSE”,输出结果为全“0”。 ;4.分析运算符
分析运算符的操作对象必须是存储器操作数,即变量、标号或过程名。返回的结果是一个数值常量。
1)SEG运算符
取段地址运算符,该运算返回变量或标号所在段的段地址(字常量)。
2)OFFSET运算符
取段内偏移地址符,该运算返回变量或标号所在段的段内偏移地址。;3)TYPE运算符
取类型属性运算符,该运算返回变量或标号的类型值。若运算对象是标号,则返回标号的距离属性值,若运算对象是变量,则返回变量类型所占字节数。
4)LENGTH运算符
取数组变量元素个数运算符,如果变量是用重复数据操作符DUP说明的,则返回DUP前面的数值(即重复次数);如果没有DUP说明,则返回值总是1。
5)SIZE运算符
取数组变量总字节数运算符,该运算符返回数组变量所占的总字节数,相当于LENGTH和TYPE两个运算符返回值的乘积。 ;5.分离运算符
1)LOW运算符
取地址表达式或16位绝对值低8位。
2)HIGH运算符
取地址表达式或16位绝对值高8位。
3)SHORT运算符
当转移指令的目标地址与该指令之间的距离在-128~127字节范围内时,可用SHORT运算符进行说明,以保证汇编程序能为该指令生成最短的机器码,从而提高运行效率。;6.组合运算符
1)“:”运算符
用来临时给变量、标号或地址表达式指定一个段???性。
2)PTR运算符
赋予表达式指定的类型,新的类型只在所处的指令内有效。格式为
类型 PTR 表达式
3)THIS运算符
该运算符和“=”(或EQU)伪指令连用,把它后面指定的类型属性或距离属性赋给当前的变量或标号。常用的格式为
变量或标号=THIS 属性
4)圆括号“( )”运算符
用来改变被括运算符的优先级别。 ;4.3 伪 指 令;4.3.1 符号定义伪指令;4.3.2 变量定义伪指令;1.数值表达式
这种形式定义的变量具有表达式给定的数值初值。
例如:
BETA DW 4*10H ;BETA为字类型,初值为64
2.ASCII字符串
字符串必须用单引号括起来。DB伪指令为串中每一个字符分配一个字节单元,且自左到右按地址递增的顺序依次存放,字符个数不得超过255个。
例如:
MSG DB STUDENT ;3.地址表达式
地址表达式的运算结果是一个地址,因此只能用DW或DD定义。如果用DW定义,则将原变量或标号的偏移地址定义为新变量;如果用DD定义,则将原变量或标号的偏移地址和段地址分别置入新变量的低位和高位字中。 ;4.?表达式
表示所定义的变量未指定初值。
例如:
BUF DW ? ;定义一个字变量BUF,初值为一随机数
5.〈n〉DUP〈表达式〉
用于定义重复变量,DUP是重复数据操作符,n表示重复次数,括号内的表达式表示要重复的内容。DUP可以嵌套使用,即圆括号中的表达式又是一个带DUP的表达式。;4.3.3 段定义伪指令;2)组合方式
组合方式指出如何链接不同模块中的同名段,把不同模块中的同名段按照指定的方式组合起来。既便于程序运行,又可以达到有效使用存储空间的目的。组合方式有六种。
(1)PUBLIC
(2)STACK
(3)COMMON
(4)MEMORY
(5)〈数值表达式〉
(6)不指定方式。 ;3)定位方式
定位方式通过汇编告知LINK程序如何将组合后的新段定位到存储器中。定位方式有四种。
(1)PARA方式
(2)BYTE方式
(3)WORD方式
(4)PAGE方式
4)分类名
指令对分类名相同的各模块中的所有段是如何处理的呢?LINK程序把各模块中分类名相同的所有段(段名未必相同)放在连续的存储区域内,但仍然是不同的段。分类名相同的各个段在链接时,先出现的在前,后出现的在后。分类名应用单引号括起来。 ;2.ORG伪指令
格式
文档评论(0)