循环移位指令是将操作数首尾相接进行移位,它分为不带进位位与带进位位循环移位。这类指令只影响CF和OF标志。CF标志总是保持移出的最后一位的状态。若只循环移1位,且使最高位发生变化,则OF标志置“1”;若循环移多位,则OF标志无效。 所有移位与循环移位指令的目标操作数只允许是8/16位通用寄存器或存储器操作数,指令中的count(计数值)可以是1,也可以是n(n≤255)。若移1位,指令的count字段直接写1;若移n位时,则必须将n事先装入CL寄存器中,故count字段只能书写CL而不能用立即数n。 (四)串操作类指令 串操作类指令是惟一地在存储器内的源与目标之间进行操作的指令。 串操作类指令是惟一地在存储器内的源与目标之间进行操作的指令。 串操作指令对向量和数组操作提供了很好的支持, 可有效地加快处理速度、缩短程序长度。它们能对字符串进行各种基本的操作,如传送(MOVS)、比较(CMPS)、搜索(SCAS)、读(LODS)和写(STOS)等。对任何一个基本操作指令,可以用加一个重复前缀指令来指示该操作要重复执行,所需重复的次数由CX中的初值来确定。被处理的串长度可达64K字节。 为缩短指令长度,串操作指令均采用隐含寻址方式,源数据串一般在当前数据段中,即由DS段寄存器提供段地址,其偏移地址必须由源变址寄存器SI提供;目标串必须在附加段中,即由ES段寄存器提供段地址,其偏移地址必须由目标变址寄存器DI提供。 如果要在同一段内进行串操作,必须使DS和ES指向同一段。串长度必须存放在CX寄存器中。在串指令执行之前,必须对SI、DI和CX进行预置,即将源串和目标串的首元素或末元素的偏移地址分别置入SI和DI中,将串长度置入CX中。 为加快串操作的执行,可在基本串操作指令的前方加上重复前缀,共有无条件重复(REP)、相等/为0时重复(REPE/REPZ)和不等/不为0重复(REPNE/REPNZ)5种重复前缀。带有重复前缀的串操作指令,每处理完一个元素能自动修改CX的内容(按字节/字处理减1/减2),以完成计数功能。当CX≠0时,继续串操作,直到CX=0才结束串操作。 无条件重复前缀(REP)常与串传送(MOVS)指令连用,完成传送整个串操作, 即执行到CX=0为止。REPE和REPZ具有相同的含义,只有当ZF=1,且CX≠0时才重复执行串操作, 常与串比较(CMPS)指令连用,比较操作一直进行到ZF=0或CX=0时为止。与此相反,REPNE和REPNZ具有相同的含义,只有当ZF=0,且CX≠0时才重复执行串操作,常与串搜索(SCAS)指令连用,搜索操作一直进行到ZF=1或CX=0为止。 串操作指令对SI和DI寄存器的修改与两个因素有关,一是和被处理的串是字节串还是字串有关;二是和当前的方向标志DF的状态有关。当DF=0,表示串操作由低地址向高地址进行,SI和DI内容应递增,其初值应该是源串和目标串的首地址;当DF=1时,则情况正好相反。 8086/8088有5种基本的串操作指令。 1. MOVS目标串,源串 串传送(MOVS)指令的功能:将由SI作为指针的源串中的1个字节或字,传送到由DI作为指针的目标串中,且相应地自动修改SI/DI,使之指向下一个元素。如果加上REP前缀,则每传送一个元素,CX自动减1,直到CX=0为止。 例如:REP MOVSB指令 设当前CS=6180H,IP=120AH,DS=1000H,SI=2000H,ES=3000H,DI=1020H,CX=0064H,DF=0。则该指令的编码格式与操作过程如图3.28所示。 该指令执行后,将源串的100个字节传送到目标串,每传送1个字节,SI+1,DI+1,CX-1,直到CX=0为止。 2.CMPS目标串,源串 串比较(CMPS)指令的功能: 将由SI作为指针的源串中的1个元素减去由DI作为指针的目标串中相对应的1个元素,不回送结果,只根据结果特征置标志位;并相应地修改SI和DI内容指向下一个元素。通常,在CMPS指令前加重复前缀REPE/REPZ,用来确定两个串中的第1个不相同的数据。例:试比较上例中两串是否完全相同,若两串相同,则BX寄存器内容为0;若两串不同,则BX指向源串中第1个不相同字节的地址,且该字节的内容保留在AL寄存器中。 3. SCAS目标串串搜索(SCAS)指令的功能: 用来从目标串中搜索(或查找)某个关键字,要求将待查找的关键字在执行该指令之前事先置入AX或AL中,取决于W=1或0。 搜索的实质是将AX或AL中的关键字减去由DI所指向的目标串中的一个元素,不传送结果,只根据结果置标志位,然后修改D
您可能关注的文档
最近下载
- 河道整治工程施工质量创优计划的实施效果评估与改进策略.docx VIP
- 水利工程质量创优方案(3篇).docx VIP
- 110kv变电站的设计毕业设计(论文).docx VIP
- 华中师范大学《C++程序设计》2020-2021学年第一学期期末试卷.pdf VIP
- 电力系统仿真:电力系统暂态仿真all.docx VIP
- 电力系统暂态稳定性仿真研究毕业设计(论文).docx VIP
- 3 浮力——液面升降问题(原卷版).docx VIP
- 核心素养视域下的初中数学单元作业设计研究.docx VIP
- 纪念红军长征90周年演讲稿(2025年最新版).pptx VIP
- 2002-2012 十年北京卷高考语文试卷深度解析.pdf VIP
原创力文档

文档评论(0)