3.6串操作指令.ppt

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

3.6 串操作指令 针对数据块或字符串的操作; 可实现存储器到存储器的数据传送; 待操作的数据串称为源串,目标地址称为目标串。 串操作指令的特点 源串一般存放在数据段,偏移地址由SI指定。允许段重设; 目标串必须在附加段,偏移地址由DI指定; 指令自动修改地址指针,修改方向由DF决定。DF=0 增地址方向;DF=1 减地址方向; 数据块长度值由CX指定 可增加自动重复前缀以实现自动修改CX内容。 串操作指令流程 重复前缀 REP 无条件重复 REPE 相等重复 REPZ 为零重复 REPNE 不相等重复 REPNZ 不为零重复 串操作指令 串传送 MOVS 串比较 CMPS 串扫描 SCAS 串装入 LODS 串送存 STOS 3.6.1 MOV 目标串,源串 格式: MOVS OPRD1,OPRD2 MOVSB MOVSW 串传送指令常与无条件重复前缀连用 用串传送指令实现200个字节数据的传送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT 3.6.2 CMP 目标串,源串 格式: CMPS OPRD1,OPRD2 CMPSB CMPSW 串比较指令常与条件重复前缀连用,指令的执行不改变操作数,仅影响标志位。 串比较指令例 测试200个字节数据是否传送正确: 3.6.3 SCAS 目标串 格式: SCAS OPRD SCASB SCASW 执行与CMPS指令相似的操作,只是这里的源操作数是AX或AL 常用于在指定存储区域中寻找某个关键字,关键字要存放在AX或AL。P125 例 3.6.4 LODS 源串 格式: LODS OPRD LODSB LODSW 操作:对字节: AL ([DS:SI]) 对 字: AX ([DS:SI]) 用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口。 LODS指令一般不加重复前缀。P126 例 3.6.5 STOS 目标串 格式: STOS OPRD STOSB STOSW 操作:对字节: AL ([ES:DI]) 对 字: AX ([ES:DI]) P126 例 串送存指令例 将内存某个区域清零 设计思想: 3.7 程序控制类指令 转移指令 循环控制 过程调用 中断控制 3.7.1 无条件转移指令 无条件转移指令 无条件转移到目标地址,执行新的指令 有条件转移指令 在具备一定条件的情况下转移到目标地址 1. JMP 目标标号 格式: JMP OPRD 无条件转移指令 段内转移 转移的目标地址在当前代码段内 1)无条件段内直接转移 段内直接寻址 JMP Label 2)无条件段内间接转移 段内间接寻址 JMP BX JMP WORD PTR[BX] 3)无条件段间直接转移指令 转移的目标地址不在当前代码段内 无条件段间直接转移 段内直接寻址 JMP FAR Label 4)无条件段间间接转移 段间间接寻址 JMP DWORD PTR[BX] 2. CALL 过程名 (无条件调用过程) 段内调用 段间调用 调用指令与转移指令的比较 用于调用一个子过程 调用前须保护断点地址 子过程执行结束后要返回原调用处继续执行原程序 调用指令的执行过程 将调用指令的下一条指令的地址(断点)压入堆栈; 获取子过程的入口地址(子过程第1条指令的偏移地址); (执行子过程,含相应参数的保存及恢复); 将断点偏移地址由堆栈弹出,返回原程序。 1) 段内调用 子过程与原调用程序在同一代码段,在调用之前只需保护断点的偏移地址 格式: CALL NEAR PROC 段内调用例 CALL TIMRE CALL BX 2) 段间调用 子过程与原调用程序不在同一代码段,在调用之前需保护断点的段基地址和偏移地址。先将断点的CS压栈,再压入IP。 格式: CALL FAR PROC 段间调用例 CALL FAR TIMRE CALL DWORD PTR[SI] 3). 返回指令 从堆栈中弹出断点地址,返回原程序。 格式:

文档评论(0)

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

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

1亿VIP精品文档

相关文档