第4章-汇编语言程序设计new.ppt

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

4.1 汇编语言基础 4.1 汇编语言基础 汇编语句的组成 汇编语句的组成 汇编语句的组成 4.1 汇编语言基础 常数 常数 表达式 表达式 表达式 4.1 汇编语言基础 标识符 标识符可以包含1~31个字符; 标识符对大小写不敏感 标识符的第一个字符必须是字母、下划线、@、?或者$,后继字符可以是数字。 标识符不能与汇编器的保留字相同。 4.1 汇编语言基础 数据定义 数据定义 格式中的表达式可以有以下几种情况: 一个或多个常数或表达式。常数之间、表达式之间用逗号隔开。 带引号的字符串。 一个问号“?”。 重复方式。此时表达式部分的格式为:重复次数 DUP(表达式) 数据定义 数据定义 4.1 汇编语言基础 属性操作符 属性操作符 PTR 运算符 4.1 汇编语言基础 符号定义 符号定义 符号定义 其他伪指令 顺序程序设计 顺序程序设计 顺序程序设计 顺序程序设计 顺序程序设计 顺序程序设计 顺序程序设计 分支程序结构 无条件转移指令 JMP 无条件转移指令 JMP 无条件转移指令 JMP 无条件转移指令 JMP 条件转移指令 条件转移指令 条件转移指令 条件转移指令 条件转移指令 分支程序举例 分支程序举例 分支程序举例 分支程序举例 方法一 方法二——跳转表法 循环程序的基本结构 循环程序的基本结构 循环指令 循环指令 循环指令 循环指令 循环指令 循环程序举例 DOS系统功能调用 DOS系统功能调用 DOS系统功能调用 DOS系统功能调用 4.6.1 子程序设计 返回指令 调用指令 调用指令 调用指令 调用指令 调用指令 过程定义 过程定义 参数和结果的传递 寄存器传递参数 寄存器传递参数 寄存器冲突问题 寄存器冲突问题 内存单元传递参数 堆栈传递参数 字符串操作指令 字符串操作指令 字符串传送指令MOVS 字符串比较指令CMPS 字符串扫描指令SCAS 字符串存储指令STOS 字符串存储指令LODS 重复指令前缀 十六进制到ASCII码 二进制到ASCII串的转换 ASCII码到十六进制码 注意 字符串操作指令所使用的默认寄存器是:DS:SI(源串地址),ES:DI(目的地址),CX(字串长度),AX或AL(存取或搜索的默认值)。 字符串操作指令可以进行字操作也可以进行字节操作,它可以由指令中的操作数的类型指出,也可以由指令码后加上W或B来指出 DF=1,则修改地址指针时用减法;DF=0时,则修改地址指针时用加法,MOVS、STOS、LODS指令不影响标志位。 指令的功能是把由DS:SI间接寻址的一个字节(或一个字)传送到由ES:DI间接寻址的一个字节单元(或一个字单元)中去,然后,根据方向标志DF及所传送数据的类型(字节或字)对SI及DI进行修改。 例4.15 在数据段中有一字符串MESS1,其长度为20,要求把它传送到MESS2开始的存储区域内,每个字符占一个字节。 LENG = 20 MESS1 DB 20 DUP(?) MESS2 DB 20 DUP(?) …… MOV AX, SEG MESS1 MOV DS, AX MOV ES, AX LEA SI,MESS1 ;置源串偏移地址 LEA DI,MESS2 ;置目的串偏移地址 MOV CX,LENG ;置串长度 CLD ;方向标志复位 AGAIN:MOVSB ;字符串传送 LOOP AGAIN 源串和目的串在同一个段中 指针修正将以递增的方式进行 循环20次完成赋值 字符串比较指令由DS:SI间接寻址的一个字节(或一个字)与由ES:DI间接寻址的一个字节(或一个字)进行比较操作,比较后只影响标志位,源串和目的串不会被修改。比较时是用源串减去目的串。 例4.16 在数据段中有字符串MESS1和MESS2,现要求找出它们之间不相匹配的位置。 LENG = 8 MESS1 DB ‘abcdefgh’ MESS2 DB ‘abcdFSgh’ …… MOV AX, SEG MESS1 MOV DS, AX MOV ES, AX LEA SI,MESS1 ;装入源串偏移地址 LEA DI,MESS2 ;装入目的串偏移地址 MOV CX,LENG ;装入字符串长度 CLD ;方向标志复位 AGAIN:CMPSB ;字符串比较 JNE NO_EQUAL ;有一个字符不相等说明两串不等 LOOP AGAIN EQUAL: …… NO_EQUAL: 若两字

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档