- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六部分 数据处理 Assembly Language Programming 1 串数据的处理 串? 内存中的一系列的字节或者字 支持串的操作 复制 存储 比较 查找 串操作的特点 操作的数据单位 字节DB, 字DW, 双字DD 对奇数字节串,选用字节操作 对偶数字节串,选用字操作,加快速度 寄存器的使用 源寄存器:DS:SI 目标寄存器:ES:DI 通常需要定义扩展段ES,不过也可以如下: MOV AX, @data MOV DS, AX MOV ES, AX 操作指令 两种方式:基本指令和标准指令 基本格式指令 格式; MOVS BYTE1, BYTE2 传送从BYTE2开始的字节到开始于BYTE1的字节。其中 操作数源和目标都采用上表中的寄存器 BYTE1, BYTE2操作数指明传送的长度 注:我们侧重于标准格式 重复前缀指令REP REP指令重复执行相应指令,例如 REP MOVSB 重复的次数由CX定 每执行一次,CX - - , 直到CX减为0为止 串操作的重复方向:决定了对SI和DI的操作 左?右:CLD 将DF清0 字节:SI = SI + 1 , DI = DI + 1 字: SI = SI + 2, DI = DI + 2 右?左:STD 将DF置1 字节:SI = SI - 1 , DI = DI - 1 字: SI = SI - 2, DI = DI - 2 串传送Moving MOVSB, MOVSW 字节或者字在内存间的拷贝 执行效果: 源寄存器 DS:SI 和 目标寄存器 ES:DI SI 和 DI 加/减 1或2 若CX中含有重复操作的次数,REP前缀重复执行串数据的传送操作 例:串拷贝 ;Copy array a to b, assume ES=DS, and 10 bytes are to be copied ;字节复制 MOV CX, 10 ;10 bytes to copy MOV DI, OFFSET B ;destination MOV SI, OFFSET A ;source CLD ;left to right REP MOVSB ;字复制 MOV CX, 5 ;10 bytes to copy MOV DI, OFFSET B ;destination MOV SI, OFFSET A ;source CLD ;left to right REP MOVSW 例:数据迁移 ;shift bytes of a 3 bytes to right MOV CX, 7 ;bytes to copy MOV DI, OFFSET A+9 ;destination MOV SI, OFFSET A+9-3 ;source STD ;copy from right to left REP MOVSB 例:复制 PATTERN DB !@#* ;duplicate data DB (100-4) DUP (?) ;space MOV CX, 100-4 ;96 bytes to copy MOV SI, OFFSET PATTERN MOV DI, OFFSET PATTERN+4 CLD ;destructive overlap REP MOVSB 串存入Storing STOSB, STOSW 将 AL 或 AX 数据拷贝到串相应的字节或字中 拷贝的目标地址由 ES:DI指定 每完成拷贝,ES:DI指向下一个拷贝的地址上 可以结合REP重复进行操作 例:存储的初始化 ARR DW 200 DUP (?) ;empty words ;to be initialized to A050A050... MOV AX, 50A0H MOV DI, OFFSET ARR MOV CX, 200 ;array size CLD REP STOSW 读取串 Loading LODSB, LODSW 将 DS:SI 地址的数据拷贝到 AL 或 AX 每完成一次读取,DS:SI指向下一读取的单位 例:串处理 ;array B = toUpper(array A) MOV DI, OFFSET B ;dest MOV SI, OFFSET A ;source MOV CX, 30 ;array size CLD ;left to right processing LP: LODSB ;get next byte AND AL,0DFh ;to upper case STOSB ;store at next location LOOP LP 串扫描Sca
您可能关注的文档
最近下载
- 义务教育版(2024)四年级全一册第7课《数字编码随处见》.pptx VIP
- 《工程勘察定向钻探技术规程》.pdf VIP
- 多联机空调施工组织设计方案.docx VIP
- 计算机应用基础(Windows10+WPSOffice 2019)中职全套教学课件.pptx
- DELL EMC 存储设备健康检查报告(模板).doc VIP
- 金融知识竞赛题库第四部分中国人民银行法试题及答案.doc VIP
- 2025-2030年中国猪苓中药材行业现状调查及投资前景预测研究报告.docx
- 大疆无人机公司介绍.ppt VIP
- 防酸碱劳保培训课件.pptx VIP
- GBZT 181-2024 建设项目放射性职业病危害评价报告编制标准.pdf VIP
文档评论(0)