计算机系统指令相关.pptxVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统指令相关

2. 串比较和串搜索指令 每条串比较指令都可比较两个字或字节操作数的大小,但不保存结果。若加上重复前缀REPE/REPZ或REPNE/REPNZ,可按一定条件重复比较。 ● REPE/REPZ 该前缀的含义是:当相等/为零时重复比较。 汇编格式:REPE/REPZ CMPS/SCAS 执行的操作: (1) 当(CX)=0(即数据串比较完成)或ZF=0(即某次比较结果不相等)时退出,否则(即(CX)≠0且ZF=1)往下执行。(2) (CX)←(CX)-1。(3) 执行其后的串比较指令。(4) 执行(1)~(3)。 说明: ① REPE与REPZ是完全相同的,只是表达式不同而已。与REP相比,退出重复执行的条件除(CX)=0外,还增加了ZF=0的条件,也就是说,只要两数相等就可继续比较,如果遇到两数不相等可提前结束比较操作。 ② (CX)的递减不影响标志位。 ● REPNE/REPNZ 该前缀的含义是:当不相等/不为零时重复比较。 汇编格式:REPNE/REPNZ CMPS/SCAS 执行的操作:除退出条件为(CX)=0或ZF=1外,其他操作与REPE/REPZ相同。也就是说,只要两数不相等就可继续比较,如果遇到两数相等可提前结束比较操作。 1) CMPS指令 汇编格式1:CMPS 汇编格式2:CMFLAGS 汇编格式3:CMPS 源操作数存储器寻址方式,目的操作数存储器寻址方式执行的操作: (1) ((DS):(SI))-((ES):(DI)) (2) 若字节:(SI)←(SI)±1,(DI)←(DI)±1; 若字:(SI)←(SI)±2、(DI) ←(DI)±2时, (DF=0用“+”,否则用“-”) 说明: ① 本条指令执行后,根据两操作数相减结果置标志位,但不保存结果。 ② 本条指令与REPE/REPNE相联合可实现两个数据串的比较。例:判断BUFF1和BUFF2数据区的均含20个字节的字符串是否相等(或验证串传送指令是否正确执行),相等0送AL,不等FFH送AL MOV CX,20 MOV AL,0 CLD JMP DONE LEA SI,BUFF1 NEXT:MOV AL,0FFH LEA DI,BUFF2 …… REPE CMPSB DONE:……… JNZ NEXT 2) SCAS指令汇编格式1:SCASB汇编格式2:SCASW汇编格式3:SCAS 目的操作数执行的操作:(1) 若字节是:(AL)-((ES):(DI)) 若字:(AX)-((ES):(DI))(2)若字节: (DI)←(DI)±1; 若字: (DI) ←(DI)±2 (DF=0用“+”,否则用“-”) 说明: ① 本指令根据相减结果置标志位。 ② 本指令与REPE/REPNE相联合可实现从一个字符串中查找一个指定的字符的功能。 【例3-39】 假设有一起始地址为BLOCK,长度为100个字节的存储区,现要对这一存储区进行测试,看其中是否有内容为00H的存储单元。 MOV DI,OFFSET BLOCK CLD MOV CX,100 XOR AL,AL REPNE SCASB JZ FOUNDFOUND:…….……补充例1:比较两个字符串,找出其中第一个不相符的地址,如果两个字符串全部相同,则转到ALLMATCH进行处理。这两个字符串的长度均为20,首地址分别为STRING1和STRING2 LEA SI,STRING1 LEA DI,STRING2 MOV CX,20 CLD REPZ CMPSB JCXZ ALLMATCH DEC SI DEC DI JMP DONEALLMATCH:MOV SI,0 MOV DI,0 。。。。。 DONE:。。。。。。LEA SI,STRING+19LEA DI,STRING2+19MOV CX,20STDREPZ CMPSBJCXZ ALLMATCHINC SIINC DIJMP DONE…………. 如果要求找出最后一个不相符的字符串地址应如何修改程序拓展思考:统计两个字符串不同数据个数该如何修改程序? 3. 子程序调用和返回指令 程序员在编写程序时,为便于模块化程序设计,往往把程序中某些具有独立功能的部分编写成独立的程序模块,称之为子程序。 子程序可由调用指令CALL调用。调用子程序的

您可能关注的文档

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档