微机原理与接口 C0307.pptx

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

微机原理与接口技术 串操作指令 有5条指令 MOVS (Move string) 串传送 CMPS (Compare string) 串比较 SCAS (Scan string) 串扫描 LODS (Load from string)从串取指令 STOS (Store into string)存入串指令 串操作指令说明 针对数据块或字符串的操作 可实现存储器到存储器的数据传送 待操作的数据串为源串,目标操作数称为目的串 串操作指令说明 串指令的执行需要确定: 串所在的区域 串的首地址(原串、目的串起始地址) 串长度 串的操作方向 串操作指令要求 串所在区域及首地址 源串一般在数据段,偏移地址由SI指定。允许段超越(除代码段) 目的串必须在附加段,偏移地址由DI指定 串长度 串长度值由CX指定 串操作方向 由DF标志位决定,指令根据DF位自动修改地址指针 DF=0,增地址 DF=1,减地址 重复前缀 无条件重复 REP CX≠0, REP后的指令重复执行 常用于传送类指令 条件重复 相等(为零)重复:REPE(REPZ) CX≠0 ∩ ZF=1 不相等(不为零)重复:REPNE(REPNZ) CX≠0 ∩ ZF=0 串操作指令流程 设置操作方向 完成否 串操作指令实现 重复前缀实现 按增地址方向操作,串操作结束时: 串传送指令:指针指向串尾+1 串比较类指令:指针指向结束位+1 按减地址方向操作,串操作结束时: 串传送指令:指针指向串尾-1 串比较类指令:指针指向结束位-1 串传送 功能: 源数据串送到目的地址 格式: MOVS dst-string , src-string MOVSB MOVSW 串传送指令与无条件重复前缀REP连用 串比较 功能: 两个数据串的比较 操作: 目的串-源串,结果不写回目标地址 格式: CMPS dst-string, src-string CMPSB CMPSW 串比较指令常与条件重复前缀REP连用 串扫描 功能: 在指定存储区域中寻找某个关键字 格式: SCAS dst-string SCASB SCASW 执行与CMPS相似的操作,区别: 源操作数是AX或AL 操作: 字节操作: (ES:DI)-(AL) (DI) ← (DI) + 1 字操作: (ES:DI)-(AX) (DI) ← (DI) + 2 LEA DI , STRING ; (DI) ← 字符串首地址 MOV CX , 100 ; (CX) ← 字符串长度 CLD ; 使DF=0 MOV AL , 0DH ; (AL) ← 回车符 REPNE SACSB ; 如未找到, 重复扫描 JZ FOUND ; 如找到, 转FOUND MOV DL , ‘N’ ; 串中无回车符, 则(DL) ←‘N’ JMP DISPLY ; 转到DISPLY [例] 在包含100个字符的字符串STRING中寻找第一个回车符CR(其ASCII码为0DH), 找到后将其地址保留在(DS:DI)中, 并在屏幕上显示字符‘Y’。若字符串中没有回车符, 则在屏幕上显示‘N’。 FOUND: DEC DI ; (DI) ← (DI) - 1 MOV DL , ‘Y’ ; (DL) ←‘Y’ DISPLY: MOV AH , 02H ; (AH) ← 功能号 INT 21H ; 显示字符 HLT 从串取 (load from string) 格式: LODS src-string LODSB LODSW 操作: 字节操作: (AL)←(DS: SI) (SI)←(SI) + 1 字操作: (AX)←(DS: SI) (SI)←(SI) + 2 从串取指令 用于将内存某个区域的数据串依次装入累加器,以便输出到接口 LODS指令一般不加重复前缀 存入串 (store into string) 格式: STOS dst-string STOSB STOSW 操作: 字节操作: (ES:DI)←(AL) (DI) ←(DI) + 1 字操作: (ES:DI)←(AX) (DI) ←(DI) + 2 存入串指令 常用于将内存某个区域置相同的值 此时: 将待存入的数据放入AL(字节)或AX(字) 确定操作方向(地址增减)、区域大小(串长度) 使用存入串指令+无条件重复前缀,实

文档评论(0)

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

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

1亿VIP精品文档

相关文档