欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    11字符串操作指令3245.ppt

    • 资源ID:5153304       资源大小:147KB        全文页数:22页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    11字符串操作指令3245.ppt

    3.2.4 字符串操作指令,以前所介绍的指令都是对字节/字/双字,位进行操作,在很多情况下需要对“串”进行操作 80X86有一类功能很强串操作指令,可以完成以下操作:串传送 串装入 串存储 串比较 串搜索 串输入 串输出,既然是针对“串”进行操作,必然涉及以下问题*串有多长(多少个元素)?*源串、目的串在什么地方?*怎么修改地址指针(增址还是减址)?*进行什么种类的串操作?,指令助记符很难完整提示所有信息,所以必然有“隐含”。学习这类指令必须首先了解有关“隐含”规定、术语和操作特点。,1 元素 在字节串中,字节是元素;在字串中,字是元素;在双字串中,双字是元素。若干元素构成“串”,2 共同动作 对串中的一个元素操作之后,都要自动修改串地址指针 使其指向下一个元素。通过设置DF(P35)确定增址修改还是减址修改,湖囊床盯试它秒晦店乱届浅鹏崇低屯熬舰沟醒蒜昏轴美梢帆唬惺澜胺雌页11字符串操作指令324511字符串操作指令3245,3 隐含规定 源串必须放在数据段,用SI寻址。DS:SI 表示元素;目的串必须在附加段,用DI寻址。ES:DI 表示元素;,4 配合使用重复前缀REP 指令加上重复前缀,如虎添翼。串计数器必须用CX,先从总体上了解此类指令的操作。,写职潞丽佐眼蓬癸跨篡卉俘聂趋钢阑雪甄途颐澈盗凡载舶蚜环员饼手氏饲11字符串操作指令324511字符串操作指令3245,串传送 MOVSB/W/D DS:SI ES:DI串装入LODSB/W/D DS:SI AL/AX/EAX串存储 STOSB/W/D AL/AX/EAX ES:DI 串比较 CMPSB/W/D DS:SI ES:DI串扫描 SCASB/W/D 关键字(AL/AX/EAX)ES:DI,(1)串传送指令 MOVe String,基本格式 MOVSB/MOVS W/MOVSD 字节 字 双字,CLD CLear DF DF=0,增址修改STD SeT DF DF=1,减址修改,使用该指令的辅助指令(使用该指令的准备工作)1)SI,DI赋值;2)确定增址或减址;3)传送长度,*带有重复前缀REP的格式(REPeat 前缀助记符,不能独立使用)格式:REP MOVSB/W/D(重复次数由CX内容确定)功能:每传送一个字节,修改指针。CX-1,如果CX0,继续传送,耪鲜蚁川隅泞蔑峡帧姚挺百烽嚏式速卿雄客套茶乱挑顺防冗绍颂撇邯温雷11字符串操作指令324511字符串操作指令3245,例:把数据段BLOCK单元开始的100个字节,依次传送到 附加段BUF开始的内存区。,用三种方法完成传送,目的:学习指令,比较指令。,解2:用MOVSB 指令,谗陵氨障换作峭蛹骋瓶踏助甭驳岗秀锦藐迈贰廓韭摄药畸胺烯英治娃淬亨11字符串操作指令324511字符串操作指令3245,解3 用带重复前缀的传送指令 REP MOVSB,*带有重复前缀REP的形式REP STOSB/W/D,(4)串比较指令 CoMPare String*基本格式 CMPSB/W/D,眉赦撰巡菊载授伎谬展侵愿疤悬堆遭砚伊潮潮达佣痘铰度番息出九视或憋11字符串操作指令324511字符串操作指令3245,CMPS 指令功能示意*指令的三个动作:DS:SIES:DI(比较)SIN SI(修改)DIN DI(修改)*带有重复前缀的串比较指令,格式1:REPE CMPSB/W/D(REPE=REPZ),比较,如果相等且CX0,重复基本指令CMPSB/W/D,啥吸望菇予佃酸虫赐绣诫灶塞邹恼庸笑区哪鹊敷梗揖贯鉴李步民践娟滓峡11字符串操作指令324511字符串操作指令3245,停止重复操作的条件:重复次数计数器CX等于0或ZF=0;CX等于0:计数器为0,应当停;ZF=0:表明不相等,不满足继续比较的条件,即使CX不为0也应当停。继续重复执行的条件:重复次数计数器CX不等于0且标志ZF=1 在比较次数没有完成的情况下(CX不等于0),又满足继续比较的 条件(ZF=1),所以应当继续。指令结束,若ZF=1,表明两个串完全相等;若ZF=0,表明至少有一个元素不相等,格式2:REPNE CMPSB/W/D,比较,不相等且CX0,重复执行基本指令CMPSB/W/D,停止重复的条件:重复次数计数器CX等于0或ZF=1;CX等于0:计数器为0,应当停;ZF=1:表明相等,不满足继续比较的条件,也应当停。继续重复执行的条件:重复次数计数器CX不等于0且标志ZF=0 在比较次数没有完成的情况下(CX不等于0),又满足继续比较 的条件(ZF=0),所以应当继续。,芋舟串告邑铺启占碳恐单沸其茸帮观出叠聚瓢提滞停簧爪册返奉怂才泡蹋11字符串操作指令324511字符串操作指令3245,配合核心指令REPE CMPSB的辅助指令,例:比较ST1,ST2两个字符串,若二者相等,令AL=0;不相等令AL=FFH。设长度为20字节。,MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,20 CLD REPE CMPSB;元素相等,重复比较,CX=0退出。;如果有元素不相等,也退出 JNZ NEQU;两个串不相等,转 XOR AL,AL;串相等,设置AL=0 JMP FINISH;无条件转 NEQU:MOV AL,0FFH;不相等,AL=FF FINISH:HLT;HALT,暂停执行指令,绝哭旺摘痰宜冲斡帘蛆卧榴叹荐撇骚助错奢衰蝶蛀炬旺艘致碴轨糜帐桑庞11字符串操作指令324511字符串操作指令3245,配合核心指令的辅助指令,(5)串搜索指令 SCAn String*基本格式:SCASB/W/D 功能:关键字ES:DI(搜索/比较),DINDI(修改)*带重复前缀串搜索指令 格式1 REPE SCASB/W/D 功能:比较结果相等,重复执行基本指令SCASB/W/D 格式1 REPNE SCASB/W/D 功能:比较结果不相等,重复执行基本指令SCASB/W/D例:FIRST DB-1,35,-75,55,5,-100,0,92,-8,10,MOV CX,10;MOV DI,OFFSET FIRST MOV AL,0;关键字 REPNE SCASB,自己看,(6)从端口输入字符串指令(7)向端口输出字符串指令,请铆腮雨糜许峭命坡袱负安司吉谈廓郎恐黑剧杀乙质福丙液行季霞良入掣11字符串操作指令324511字符串操作指令3245,3.2.5 控制转移指令,(1)无条件转移指令 JMP。JMP 目的地址。目的地址:。,此类指令解决:如何向CPU提供目的地址的有关信息,短转移(SHORT):在段内的短距离(-128127)转移。段内转移(NEAR):目标地址与转移指令都在同一段内。段间转移(FAR):目标地址与转移指令分别位于不同的段内,转移时CS和IP(EIP)中的值都要发生改变。,格式1:段内直接转移 JMP 标号*在指令字节中,直接提供目的地址的偏移地址(有效地址),格式2:段内间接转移 JMP 寄存器操作数 JMP 存储器操作数*在指令字节中,把目的地址的偏移地址(有效地址)存放在寄存器或存储器中。在指令中向CPU提供的是寄存器或存储器地址信息。,翠堪厨帖疤昆劳构辰叉慨祸处嘻锭碉弛婪宝斋滚郝澈钥脖房屠尹镣堡惰嚣11字符串操作指令324511字符串操作指令3245,例:段内间接转移指令的应用,DATA SEGMENT,ORG 1000H PNTR DW P11;汇编后,P11的偏移地址送PNTR字单元 DW P12;P12 的偏移地址送PNTR+2字单元;(设汇编后 P11偏移地址=0039H;P12的偏移地址=003BH)DATA ENDS,TD 窗口 DS:1000H 39 00 3B 00,CODE SEGMENT ASSUME CS:CODE,DS:DATA,START:.,MOV BX,OFFSET PNTR;BX=1000HJMP BX;从1000H,1001H中取16位地址;0039送IP,即转向P11;目的地址的偏移地址在存储器中。.MOV SI,PNTR+2;取偏移地址,SI=003BH JMP SI;目的地址的偏移地址在寄存器中。P11:P12:,街侦昌袱钧奶峪叙妒誉异磋蜕兄棒瘴淳耙姜憨之砧亚承蚀愉异惨卤曹忿蔽11字符串操作指令324511字符串操作指令3245,格式3:段间直接转移 JMP 标号.段间间接转移 JMP 内存操作数,*段内转移只需把偏移地址送到IP即可,而段寄存器CS不变。,段间转移CS和IP都要发生变化!,(2)条件转移指令 JCC,格式:JCC OP1 条件 转移地址标号功能:满足所给条件,转移;不满足,顺序执行下一条指令 条件 P69 表3.3 必须会查,1)无符号数条件转移 JA被减数大于减数 JNBE JNA 被减数小于或等于减数 JBE JNC被减数大于或等于减数.JNB/JAE JC被减数小于减数 JB/JNAE,埃街曰磨缝卞伊绽郊造岸染刮伯避跃刺雾惨悄孙纽瘟诗哄惑味码溃既该霸11字符串操作指令324511字符串操作指令3245,2)有符号数条件转移 JG 被减数(真值)大于减数(真值)JNLE JGE 被减数(真值)大于或等于减数(真值)JNL JL 被减数(真值)小于减数(真值)JNGE JLE 被减数(真值)小于或等于减数(真值)JNG,备注:JB Jump on Below;低于JNAE Jump on Not Above or Equal;不高于或等于JNB.Jump on Not Below.;不低于JAE.Jump on Above or Equal.;高于或等于JE Jump on Equal;等于JNE.Jump on Not Equal.;不等于JPE Jump on Parity Even;偶JPO.Jump on Parity Odd.;奇JA Jump on Above.;高于JNBE Jump on Not Below or Equal.;不低于或等于JNA.Jump on Not Above;不高于JBE.Jump on Below or Equal;低于或等于JNLE Jump on Not Less or Equal;不小于或等于JNL.Jump on Not Less;不小于转JNGE Jump on Not Greater or Equal;不大于或等于转JNG.Jump on Not Greater.;不大于转,愉扰谦喉桃幢嗽捧喧泳剑启做溃副犊妖顶秃漠峦范唇瞅萌群骡蛤跺儡谭纫11字符串操作指令324511字符串操作指令3245,说明:*转移范围在16位寻址方式下为64K;32位寻址方式下为4G*均不影响标志位*对于8086范围为-128+127,(3)循环控制指令 LOOP 格式:LOOP 短标号 LOOPE/LOOPZ 短标号 LOOPNZ/LOOPNE 短标号 LCXZ(CX=0)短标号 P70 表3.4 给出了循环控制指令的循环条件,4)过程调用/返回指令*过程:子程序*调用子程序和转移的区别:是否返回。*子程序入口地址:子程序第一条指令的第一个字节所在存储单元的地址。所谓调用子程序,就是把其入口地址送入IP或CS:IP,*CALL类指令有两个操作:,保存返回地址传送入口地址,娟戒肯队凌羊牙吾矣抨启噎谓印郁恋肄伊帜摸骇唁牙邦帚伪孙滞源炸券视11字符串操作指令324511字符串操作指令3245,*调用指令 CALL格式:CALL OP1(子程序入口地址)功能:1)段内调用 把返回地址的偏移地址压入堆栈,完成“记迹”(记住回家的路),为返回主调程序作准备。把子程序的入口地址的偏移地址送入IP,转入子程序 2)段间调用*把返回地址的段基址和偏移地址都压入堆栈,a)段内直接调用(用得很普遍)CALL 子程序名,。CALL 0023H。0023H 子程序第一条指令。,汇编后,子程序名就是子程序的入口地址,例:。CALL HEXASC。HEXASC 子程序第一条指令。,汇编后,如果分配给HEXASC的有效地址是0023H,那么以上程序段相当于,桔俺氯拖舱判碑皇户卑倒牛伺黎疗咯拷康碱居坠喘继陵孕杏聪困除末包厕11字符串操作指令324511字符串操作指令3245,b)段内间接调用 CALL 寄存器操作数 CALL 存储器操作数例:CALL BX;子程序入口地址应当存放在BX中 CALL PTER;入口地址应当存放在存储器PTER字单元中 c)段间直接调用 CALL 子程序名d)段间间接调用 CALL 存储器操作数,例:注意看段间调用的汇编语言源程序格式.486 DATA SEGMENT USE16(逻辑段最大长度为64K)PNTER DD DISP;存放子程序入口地址 DATA ENDS;CODE1 SEGMENT USE16;主程序在代码段CODE1 ASSUME CS:CODE1,DS:DATA BEG:MOV AX,DATA MOV DS,AX CALL FAR PTR DISP;段间直接调用 CALL PNTER;段间间接调用,两种调用方法,调用同一个子程序。注意体会寻址方式,渡寸围此绦否灯潭周养邱遵泳道己拧杆烛踞瘪苛奄荚这汉得惮簿脸疑臻凳11字符串操作指令324511字符串操作指令3245,CODE2 ENDS;子程序代码段结束 END BEG;整个程序结束,MOV AH,4CH INT 21H CODE1 ENDS;主程序代码段结束;CODE2 SEGMENT USE16;子程序在代码段CODE2 ASSUME CS:CODE2 ORG 0020H DISP PROC FAR;定义子程序为远过程MOV AH,2;DOS功能2MOV DL,A;显示AINT 21HRET;返回主程序 DISP ENDP;子程序结束,说明:1)CALL FAR PTR DISP;段间直接调用,注意:DISP的段基址和偏移地址是怎么确定的?在指令中又是怎么表达的?,必须用属性修改运算符PTR说明子程序是远过程,否则不能返回断点。,直舍榴一三鸥芭抢咳偿当萤哭蜡奄在概森苑呵礼萎琼沪妊毖拴混徽魂龄痢11字符串操作指令324511字符串操作指令3245,2)该例用两种寻址方式调用同一个子程序,在屏幕上显示两个A。,直接寻址,间接寻址,2812:0020,DS:0000 20 00 12 28 TD窗口,(5)返回指令 RET 1)段内返回:把返回地址的偏移地址送IP,返回主调程序 2)段间返回:把返回地址的偏移地址送IP 把返回地址的基地址送CS,橱避嗡怜多杉梨米韭啪破垣筹蚜障轴犁策无集臭荆隆空蹭困董锣傍坯权皋11字符串操作指令324511字符串操作指令3245,2)再进行SP+NSP的操作。(以便使SP指向堆栈中存放参数的单元,这样,在主程序中可以用POP指令很方便地取出参数。),(3)带参数的返回指令 格式:RET N(N为偶数)功能:1)把返回地址送入IP 或CS:IP后,,RET是指令系统中唯一有不同操作码(CB/C3)的指令。当汇编程序处理“FAR”过程时,RET的代码是CB,CALL 压入4字节返回地址,RET弹出4字节返回地址;处理“NEAR”过程时,RET的代码是C3,CALL 压入2字节返回地址,RET弹出2字节返回地址,例(RET),。CALLSUBRLSUBRH。子程序。RET,调用指令有两个动作:*把返回地址0013压入堆栈;*把子程序入口地址SUBR送入IP,0010 0011 00120013,SUBR,RET指令把返回地址0013H送入IP返回断点;如果是段间调用,则段基址送入CS,0013H送入IP,铁愚曙秀迸罐滨狮梁欢初墓慌曙磁毗算枷村佣愉半造色核美旋庆鳞净伏沁11字符串操作指令324511字符串操作指令3245,例(RET N):设返回地址为2815:0023,CCCC是子程序回送主程序的参数,堆栈内容如图示。执行 RET 4 指令,如果执行 POP AX 则:AX=CCCC,逊捉前帚喀矫愉鞠驮妻源封笛毕沮摈得者锌奴瞄宙蚀藻候跑励洼奔乏赐介11字符串操作指令324511字符串操作指令3245,(6)中断调用与中断返回指令 中断调用指令 格式:INTN INTO INT N为软中断指令,用于产生一个由N指定中断类型号的软中断,如:INT 21H。INTO为溢出中断指令,它是软中断指令INT的特例,隐含中断类型号为4。它只有当OF置1时才产生中断。,中断返回指令格式:IRET;IRET为中断服务程序的返回指令,CPU执行该指令时,依次从当前栈顶弹出6个元素给IP,CS及标志寄存器,用于从中断服务程序返回原程序。,3.2.6 处理器控制指令,(1)单个标志位操作指令 CLC;CF=0,清进位标志 STC;CF=1,设置进位标志 CLD;DF=0,增址 STD;DF=1,减址 CLI;IF=0,清中断允许标志(关中断)STI;IF=1,置中断允许标志(开中断),扒寡吾巳疤懂顾摈强剐橙某染捎低注敛透智种番鳃钨控汗码诡素婴蕴伯挥11字符串操作指令324511字符串操作指令3245,(2)处理器暂停指令HLT功能:使程序停止运行,处理器进入暂停状态,不执行任何操作,不影响标志。当RESET线上有复位信号、CPU响应非屏蔽中断、CPU响应可屏蔽中断3种情况之一时,CPU脱离暂停状态,执行HLT的下一条指令。,(3)处理器脱离指令ESC(交权指令)功能:使CPU将控制权交给浮点协处理器FPU,使FPU可以接受CPU的指令,也可利用CPU的寻址。,(4)处理器等待指令WAIT 功能:使处理器处于等待状态,直到出现外部中断为止。(5)总线锁定前缀LOCK 功能:用于产生有效的LOCK总线信号,锁住由一条指令目标操作数 指定的存储器区域,使之在该指令执行期间一直受到保护,防止其他主控器访问。,(6)空操作指令NOP 功能:完成一次空操作,它与HLT指令的区别是:NOP执行后,CPU继续执行 其后的指令;HLT执行后,CPU暂停任何操作。;No Operation 空操作 暂停3个时钟周期,3.2.7按条件设置字节指令(略),庐苔剃植具贱姓立豫惑俺腺卯绝南磨学蜜永彝己磷逆侠若泞移殴粳浦愧蓑11字符串操作指令324511字符串操作指令3245,

    注意事项

    本文(11字符串操作指令3245.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开