新编位微型计算机原理及应用李继灿主编00002.ppt

新编位微型计算机原理及应用李继灿主编00002.ppt

  1. 1、本文档共148页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
源串首址→DS:SI 缓冲区首址→ES:DI 串长度→CX DS:[SI] → AL AL → ES:[DI] 传送一字节 SI+1 → SI DI+1 → DI 修改地址 代码段: 给DS赋初值 给ES赋初值 MOV SI,OFFSET SOURCE MOV DI,OFFSET BUF MOV CX,LLL AGA: MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGA MOV AH,4CH INT 21H CX-1 → CX 计数 CX=0 控制 N Y 返回DOS 80X86有6条串操作指令,它们是串传送、串比较、串搜索、串装入、串存储和I/O串操作,本小节仅介绍前5条。 各种串操作指令虽然功能不同,但有许多共同之处,例如:源串和目标串的存储及寻址方式都有隐含规定,即:源串要放在数据段,目标串要放在ES附加段,在16位寻址操作,CPU自动用SI间址访问数据段,用DI间址访问ES附加段、用CX做为串计数器。在32位寻址操作下,CPU自动用ESI间址访问数据段,用EDI间址访问ES附加段,用ECX做串计数器。 由于实模式下逻辑段的最大体积为64K,没有必要使用32位寻址,为了描述方便,在介绍指令功能的时候,均以16位寻址为基础。 关于串操作指令的总说明 串传送 功能:把DS:[SI]的若干元素→ ES:[DI]的若干单元 基本型格式: 字节串传送 MOVSB 字串传送 MOVSW 双字串传送 MOVSD 说明: ①关于“元素”的概念 在字节串传送指令中,一个元素就是1个字节 在字串传送指令中,一个元素为2个字节 在双字串传送指令中,一个元素为4个字节 ②指令执行前的准备工作: 源串的首地址/末地址→DS:SI 目串的首地址/末地址→ES:DI D标志置0/置1 ③该指令传送一个元素后,CPU自动修改SI,DI 当D标志为0时,SI,DI增量修改 当D标志为1时,SI,DI减量修改 ? 字节操作 字 操 作 双字操作 D标志=0 为增址型 SI+1→SI DI+1→DI SI+2→SI DI+2→DI SI+4→SI DI+4→DI D标志=1 为减址型 SI-1→SI DI-1→DI SI-2→SI DI-2→DI SI-4→SI DI-4→DI 修改串指针的操作 有重复前缀的格式 REP MOVSB REP MOVSW REP MOVSD 准备工作:① 同基本型格式 ② 欲传送的元素个数→CX CX=0? CX-1 →CX DS:[SI]的一个元素→ES:[DI] 根据D标志修改SI,DI Y N 指令结束 REP MOVSB REP MOVSW 指令功能示意图 REP MOVSD 应用举例 以上例题,若使用“MOVSB”,代码段可以改写如右下: 给DS赋初值 给ES赋初值 MOV SI, OFFSET SOURCE MOV DI,OFFSET BUF MOV CX,LLL CLD AGA: MOVSB LOOP AGA MOV AH,4CH INT 21H 给DS赋初值 给ES赋初值 MOV SI,OFFSET SOURCE MOV DI,OFFSET BUF MOV CX,LLL AGA: MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGA MOV AH,4CH INT 21H 应用举例 以上例题,若使用“REP MOV

文档评论(0)

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

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

1亿VIP精品文档

相关文档