第二部分 汇编语言程序设计——伪指令.pptVIP

第二部分 汇编语言程序设计——伪指令.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二部分 汇编语言程序设计——伪指令

第二部分 汇编语言程序设计 —— 伪指令 南京工程学院 钱瑛 参数、变量和标号 本节详细讨论汇编语言程序语句的主要部分: 参数 变量名 标号 并引出相关的伪指令和操作符 本节重点掌握: 常数的表达、 变量定义伪指令DB/DW/DD、 地址操作符和类型操作符 数值型参数 在源程序语句格式的4个组成部分中,参数是指令的操作对象(学习硬指令时被称为操作数),参数之间用逗号分隔 参数根据指令不同可以没有,可以有1个、2个或多个 汇编语言程序中,指令参数有数值型,它的主要形式是常数和数值表达式; 硬指令的操作数有立即数;立即数就要用数值型参数表达 1. 常数 常数(常量)表示一个固定的数值 它又分成多种形式: (1)十进制常数 (2)十六进制常数 (3)二进制常数 (4)八进制常数 (5)字符串常数 (6)符号常数 十进制常数 由0 ~ 9数字组成,以字母D或d结尾 缺省情况下,后缀D或d可以省略 汇编语言大小写不敏感,D和d通用 例如:100、255D 十六进制常数 由0~9、A~F组成,以字母H或h结尾 以字母A~F开头的十六进制数,前面要用0表达,以避免与其他符号混淆 汇编语言大小写不敏感, H和h 通用 例如:64H、0FFh、0B800H 二进制常数 由0或1两个数字组成,以字母B或b结尾 汇编语言大小写不敏感,B和b通用 例如 字符串常数 用单引号或双引号括起来的单个字符或多个字符,其数值是每个字符对应的ASCII码的值 例如:d = 64H AB= 4142H Hello, Everybody ! 符号常数 利用一个标识符表达的一个数值 MASM提供等价机制,用于常量定义 符号定义伪指令: 等价EQU伪指令 符号名 EQU 数值表达式 符号名 EQU 字符串 等号=伪指令 符号名 = 数值表达式 常数若使用有意义的符号名来表示,可以提高程序的可读性,同时更具有通用性 符号常数实例 符号定义 DosWriteChar equ 2 CarriageReturn = 13 CallDOS equ int 21h 符号应用(左边程序段等价右侧的符号形式) mov ah,2 ;mov ah,DosWriteChar mov dl,13 ;mov dl,CarriageReturn int 21h ;CallDOS 2. 数值表达式 数值表达式一般是指由运算符连接的各种常数所构成的表达式 汇编程序在汇编过程中计算表达式,最终得到一个数值 程序运行之前,就已经计算出了表达式;所以,程序运行速度没有变慢,但增强程序的可读性 MASM对除伪指令外各种汇编时处理的指令统称为操作符(Operator) 运算符 算术运算符 + - * / MOD 逻辑运算符 AND OR XOR NOT 移位运算符 SHL SHR 关系运算符 EQ NE GT LT GE LE 高低分离符 HIGH LOW HIGHWORD LOWWORD 算术运算符 实现加、减、乘、除、取余的算术运算 mov ax,3*4+5 ;等价于 mov ax,17 其中MOD也称为取模,它产生除法之后的余数,如19 mod 7 = 5 加+和减-运算符还可以用于地址表达式 除加、减外,其他运算符的参数必须是整数 逻辑运算符 实现按位相与、相或、异或、求反的逻辑运算 or al,03h AND 45h ;等价于 or al,01h 移位运算符 实现对数值的左移、右移的逻辑操作;移入低位或高位的是0 格式为: 数值表达式 SHL/SHR 移位次数 mov al,0101b SHL (2*2) ;等价于 mov al 关系运算符 用于比较和测试符号数值 MASM用0FFFFH(补码 -1)表示条件为真 MASM用0000H表示条件为假 mov bx,((PORT LT 5)AND 20)OR((PORT GE 5)AND 30) ;当PORT5时,汇编结果为mov bx,20 ;否则,汇编结果为mov bx,30 高低分离符 取数值的高半部分或低半部分 HIGH、LOW从一个字数值或符号常量中得到高、低字节 mov ah,HIGH 8765h ;等价于mov ah,87h 从MASM 6.0引入的HIGHWORD、LOWWORD取一个符号常量(不能是其他常数)的高字或低字部分 dd_value equ 0ffff1234h ;定义一个符号常量 mov ax,LOWWORD dd_value ;等价于mov ax,1234h 地址型参数 汇编语言程序中,指令参数还有地址型,它的主要形式是标号和名字(变量名、段名、过程名等) 硬指令的操作数有存储单元;存储单元就应该用地址型参

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档