- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章_汇编语言格式
《汇编语言》 第四章 汇编语言程序格式 回顾 IBM-PC的寻址方式 指令寻址方式 操作数的寻址方式 IBM-PC指令系统 数据传送指令 运算指令 控制转移指令 串处理指令 处理机控制指令 简单的汇编语言程序设计 目标 汇编语言语句格式 常量表达式、数值表达式 变量定义及应用 变量、标号和逻辑段的属性 基本伪指令和操作符 EQU/=、+-*/、DB/DW/DD、?/DUP、ORG/$、OFFSET/SEG/PTR、END、SEGMENT/ENDS 完整段定义源程序格式,DOS的程序结构 汇编语言源程序的编辑、汇编、连接和调试 指令格式 硬指令和伪指令 硬指令 使CPU产生动作、并在程序执行时才处理的语句 指令格式: 标号: 硬指令助记符 操作数,操作数;注释 伪指令(Directive) 不产生CPU动作、在程序执行前由汇编程序处理的说明性语句 例如,数据说明、变量定义、分配存储区等等。 伪指令与具体的处理器类型无关,但与汇编程序的版本有关。 伪指令的格式: 名字 伪指令助记符 参数,参数,…;注释 汇编语言基础 标号、名字与标识符 标号 反映硬指令位置(逻辑地址)的标识符,后跟一个冒号分隔 名字 反映伪指令位置(逻辑地址)和属性的标识符,后跟空格或制表符分隔,没有一个冒号 常见名字的表现方式有:变量名、段名、过程名等 标识符(Identifier) 是名字和标号的统称,一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、@)组成,不能以数字开头 默认情况下,汇编程序不区别标识符中的字母大小写 一个程序中,每个标识符的定义是唯一的,还不能是汇编语言采用的保留字 汇编语言基础 保留字(Reserved Word) 保留字是汇编程序已经利用的标识符,主要有: 硬指令助记符:例如,MOV、ADD 伪指令助记符:例如,DB、EQU 操作符:例如,OFFSET、PTR 寄存器名:例如,AX、CS 预定义符号:例如,@data 助记符 硬指令助记符可以是任何一条处理器指令,也可以是一条宏指令 伪指令助记符 操作数与参数 处理器指令的操作数可以是立即数、寄存器和存储单元 伪指令的参数可以是常数、变量名、表达式等;可以有多个,参数之间用逗号分隔。 汇编语言基础 注释 语句中由分号“;”开始的部分为注释内容,用以增加源程序的可读性 必要时,一个语句行也可以由分号开始作为阶段性注释 汇编程序在翻译源程序时将跳过该部分,不对它们做任何处理 分隔符 语句的4个组成部分要用分隔符分开 标号后用冒号,注释前用分号 操作数之间和参数之间使用逗号分隔 其他部分通常采用空格或制表符,多个空格和制表符的作用与一个相同 MASM支持续行符 “\” 常量 常数:表示一个固定的数值,常用的数制有: 十进制常数(D/d)、十六进制常数(H/h)、二进制常数(B/b)、八进制常数(Q/q) 以字母A~F开头的十六进制数,前面要用0表示 MASM中默认进制的设置: .RADIX n 字符串常数 用单引号或双引号括起来的单个字符或多个字符,其数值是每个字符对应的ASCII码的值 符号常数:利用一个标识符表达的一个数值 等价EQU伪指令: 符号名 EQU 数值表达式 或 符号名 EQU 字符串 等号=伪指令: 符号名 = 数值表达式 说明:二者间的区别在于=定义的常量可重复赋值,而EQU不允许 数值表达式 数值表达式 一般是指由运算符连接的各种常数所构成的表达式 汇编程序在汇编过程中计算表达式,最终得到一个数值 表达式在程序运行之前,就已经计算结果;所以,程序运行速度没有变慢,但增强程序的可读性 MASM对除伪指令外各种汇编时处理的指令统称为操作符(Operator) 运算符 算术运算符、逻辑运算符、(逻辑)移位运算符、关系运算符、高低分离符 运算符 算术运算符 +、-、*、/、MOD MOD也称为取模,它计算除法之后的余数 加+和减-运算符还可以用于地址表达式的计算 除加、减外,其他运算符的参数必须是整数 例:mov ax,3*4+5 ;等价于 mov ax,17 逻辑运算符 AND、OR、XOR、NOT 实现按位相与、相或、异或、求反的逻辑运算 例:or al,03h AND 45h;等价于 or al,01h 运算符 逻辑移位运算符SHL/SHR 实现左移、右移的逻辑操作;移入低位或高位的是0 格式为:数值表达式 SHL/SHR 移位次数 例:mov al,0101b SHL (2*2) 关系运算符 用于比较和测试符号数值 EQ、NE、GT、LT、GE、LE MASM用-1表示条件为真,MASM用0表示条件为假 例: mov bx,((PORT
文档评论(0)