指令系统应用举例.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令系统应用举例 [书例 2.2] P63 MOV SI , OFFSET BUFFER1 ; 源数据块首地址的偏移量送SI MOV DI , OFFSET BUFFER2 ; 目标首址的偏移量送DI MOV CX , 200 ; 数据块长度送CX NEXT: MOV AL , [SI] ; 源数据块中一个字节传到AL MOV [DI] , AL ; AL 传送到目标地址 INC SI ; SI 加1 INC DI ; DI加1 DEC CX ; CX减1 JNZ NEXT ; 如不等于0 , 转移到NEXT …… [书例 2.3] P67 MOV BP , SP ; 设置基址指针寄存器 PUSH AX ; 推入AX , SP减2 PUSH BX ; 推入BX , SP减4 PUSH CX ; 推入CX , SP减6 …… MOV AX , [BP-2] ; 恢复AX原来的内容 MOV BX , [BP-4] ; 恢复BX原来的内容 MOV CX , [BP-6] ; 恢复CX原来的内容 ADD SP , 6 ; 恢复SP原来的内容 CX , 5 ; 循环次数送CX SI , 0 ; SI初值为0 ; 清进位标志CF AL , DATA2 [SI] ; 取一个字节加数 DATA1 [SI] , AL ; 与被加数相同且送回内存区 INC SI ; SI加1 , 指向下一字节 DEC CX ; 循环次数减1 JNZ LOOPER ; 如不为0 , 转LOOPER …… ; 如为0 , 运算结束 [书例2.6] P75 要求计算两个多字节十六进制数之和: 3B74AC60F8H+20D59E36C1H=? MOV MOV CLC LOOPER: MOV ADC LEA SI , STRING1 LEA BX , STRING2 LEA DI , SUM MOV CX , 4 CLC NEXT: MOV AL , [SI] ADC AL , [BX] AAA MOV [DI] , AL ; (SI) 被加数地址指针 ; (BX) 加数地址指针 ; (DI) 结果地址指针 ; (CX) 循环次数 ; 清进位标志CF ; 取一个字节被加数 ; 与加数相加 ; ASCII调整(非压缩) ; 送存 [书例2.7] P77 计算4609+3875= ? 设被加数和加数的每一位数都以ASCII码 形式存放在内存中 , 低位在前 , 高位在后。 ; SI加1 ; BX加1 ; DI加1 ; 循环次数减1 ; 如不为0 , 转NEXT ; 如为0 , 结束运算 INC INC INC DEC JNZ SI BX DI CX NEXT [书例2.8] P81 内存数据段存放了100个带符号数 , 首地址为AREA1 , 要求 将各数取绝对值后存入以AREA2为首址的内存区 。 LEA SI , AREA1 ; (SI) 源地址指针 LEA DI , AREA2 ; (DI) 目标地址指针 MOV CX , 100 ; (CX) 循环次数 CHECK: MOV AL , [SI] ; 取一个带符号数到AL OR AL , AL ; AL内容不变 , 但使之影响标志 JNS NEXT ; 若 (SF)=0 , 则转NEXT NEG AL ; 否则求补 NEXT:

文档评论(0)

139****2545 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档