微原-第4章2教程分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.4 循环程序设计技术 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP MOV CX,DAT1 ;CX表示DAT1的数据个数 MOV DX,DAT2 ;DX表示DAT2的数据个数 MOV DAT,CX ;先计算出DAT的数据个数 4.4 循环程序设计技术 ADD DAT,DX LEA SI,DAT1+2 ;SI指向DAT1的数据区 LEA BX,DAT2+2 ;BX指向DAT2的数据区 LEA DI,DAT+2 ;DI指向DAT的数据区 CLD L1: MOV AL,[BX] INC BX L2: CMP AL,[SI] JB L3 MOVSB ;DAT1区中的一个数据传送到DAT区 DEC CX JZ L4 JMP L2 4.4 循环程序设计技术 L3: STOSB ;DAT2区中的一个数据传送到DAT区 DEC DX JZ L5 JMP L1 L4: MOV SI,BX DEC SI MOV CX,DX L5: REP MOVSB ;将DAT1或DAT2中剩余部分全部 传送到DAT区 MOV AH,4CH ;返回DOS INT 21H 4.4 循环程序设计技术 CODE ENDS END START 例4.8 已知缓冲区BUFA内有20个互不相等的整数(其序号从0到19),缓冲区BUFB内有30个互不相等的整数(其序号从0到29)。编写程序完成:将既在BUFA中出现又在BUFB中出现的整数(设为x)存放在缓冲区BUFC中,并将x在BUFA和BUFB中的序号分别存放于缓冲区BUFCA和BUFCB中。 解:这里涉及到5个存储区域,最好有5个指针,但BUFC、BUFCA和BUFCB为同步操作,即当找到x时,需要同时对BUFC、BUFCA和BUFCB进行操作,而且每个区域都写入一个字节,因此它们可以采用同一个指针,寻址方式为寄存器相对寻址,即设AL为找到的值,DL、BL为序号,则其操作为: 4.4 循环程序设计技术 MOV BUFC[DI],AL MOV BUFCA[DI],DL MOV BUFCB[DI],BL 对序号的处理也应仔细设计,采用寄存器相对寻址时,例如 MOV AL,BUFA[SI],其中SI即为序号。汇编语言程序如下: STACK SEGMENT STACK STACK DW 100H DUP(?) TOP LABEL WORD STACK ENDS N1=20 N2=30 DATA SEGMENT 4.4 循环程序设计技术 BUFA DB 10H,25H,67H,26H,68H,73H,83H,58H,0,06H,12H,0CDH,95H DB 0A8H,0C2H,48H,0E6H,0F1H,1AH,0F5H BUFB DB 05,12H,26H,45H,53H,60H,6AH,7FH,76H,88H,92H,0C1H,0DEH,0E1H,0F5H DB 09,17H,23H,48H,58H,65H,67H,70H,7CH,82H,96H,0CDH,0D1H,0F1H,0FEH BUFC DB 20 DUP(?) BUFCA DB 20 DUP(?) BUFCB DB 20 DUP(?) DATA ENDS 4.4 循环程序设计技术 CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP ;以BUFA为外循环,每个字节与BUFB的所有字节比较(构成内循环), ;以确定是否存在相同的值 4.4 循环程序设计技术 MOV CX,N1 XOR SI,SI

文档评论(0)

阿里山的姑娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档