




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 3 章第三章 指令系统 ( 4 ) 13.8 位操作类指令位操作类指令以二进制位为基本单位进行数据位操作类指令以二进制位为基本单位进行数据的操作;这是一类常用的指令,都应该特别掌的操作;这是一类常用的指令,都应该特别掌握握注意这些指令对标志位的影响注意这些指令对标志位的影响1、逻辑运算指令、逻辑运算指令AND OR XOR NOT TEST2、移位指令、移位指令SHL SHR SAR3、循环移位指令、循环移位指令ROL ROR RCL RCR第 3 章第三章 指令系统 ( 4 ) 2 逻辑与指令 AND对两个操作数执行逻辑与运算,结果送对两个操作数执行逻辑与运算,结果送到目的操作数到目的操
2、作数AND指令设置指令设置CF = OF = 0,根据结果,根据结果设置设置SF、ZF和和PF状态,而对状态,而对AF未定义未定义AND reg,imm/reg/memAND reg,imm/reg/mem ;regregregregimm/reg/memimm/reg/memAND mem,imm/regAND mem,imm/reg ;memmemmemmemimm/regimm/reg 只有相只有相“与与”的两位都是的两位都是1,结,结果才是果才是1;否则,;否则,“与与”的结果为的结果为0第 3 章第三章 指令系统 ( 4 ) 3逻辑或指令 OR对两个操作数执行逻辑或运算,结果送对两个
3、操作数执行逻辑或运算,结果送到目的操作数到目的操作数OR指令设置指令设置CF = OF = 0,根据结果设,根据结果设置置SF、ZF和和PF状态,而对状态,而对AF未定义未定义OR reg,imm/reg/memOR reg,imm/reg/mem ;regregregregimm/reg/memimm/reg/memOR mem,imm/regOR mem,imm/reg ;memmemmemmemimm/regimm/reg 只要相只要相“或或”的两位有一位是的两位有一位是1,结果就是结果就是1;否则,结果为;否则,结果为0第 3 章第三章 指令系统 ( 4 ) 4 逻辑异或指令 XOR对
4、两个操作数执行逻辑异或运算,结果对两个操作数执行逻辑异或运算,结果送到目的操作数送到目的操作数XOR指令设置指令设置CF = OF = 0,根据结果,根据结果设置设置SF、ZF和和PF状态,而对状态,而对AF未定义未定义XOR reg,imm/reg/memXOR reg,imm/reg/mem ;regregregregimm/reg/memimm/reg/memXOR mem,imm/regXOR mem,imm/reg ;memmemmemmemimm/regimm/reg 只有相只有相“异或异或”的两位不相同,的两位不相同,结果才是结果才是1;否则,结果为;否则,结果为0第 3 章第三
5、章 指令系统 ( 4 ) 5逻辑非指令 NOT对一个操作数执行逻辑非运算对一个操作数执行逻辑非运算NOT指令是一个单操作数指令指令是一个单操作数指令NOT指令不影响标志位指令不影响标志位NOT reg/memNOT reg/mem ;reg/memreg/memreg/memreg/mem 按位取反,原来是按位取反,原来是“0”的位变的位变为为“1”;原来是;原来是“1”的位变为的位变为“0”例例3.27:逻辑运算:逻辑运算mov al,45h;逻辑与 al=01hand al,31h;CF=OF=0,SF=0、ZF=0、PF=0mov al,45h;逻辑或 al=75hor al,31h;C
6、F=OF=0,SF=0、ZF=0、PF=0mov al,45h;逻辑异或 al=74hxor al,31h;CF=OF=0,SF=0、ZF=0、PF=1mov al,45h;逻辑非 al=0bahnot al;标志不变例例3.28:逻辑指令应用:逻辑指令应用;AND指令可用于复位某些位(同0相与),不影响其他位:将BL中D3和D0位清0,其他位不变and bl,11110110B;OR指令可用于置位某些位(同1相或),不影响其他位:将BL中D3和D0位置1,其他位不变or bl, 00001001B;XOR指令可用于求反某些位(同1相异或),不影响其他位:将BL中D3和D0位求反,其他不变xo
7、r bl, 00001001B这些指令反应这些指令反应了汇编语言的了汇编语言的特点:方便的特点:方便的位操作位操作第 3 章第三章 指令系统 ( 4 ) 8 测试指令 TEST对两个操作数执行逻辑与运算,对两个操作数执行逻辑与运算,结果不结果不回送到目的操作数回送到目的操作数TEST指令设置指令设置CF = OF = 0,根据结果,根据结果设置设置SF、ZF和和PF状态,而对状态,而对AF未定义未定义TEST reg,imm/reg/memTEST reg,imm/reg/mem;regregimm/reg/memimm/reg/memTEST mem,imm/regTEST mem,imm/
8、reg;memmemimm/regimm/reg只有相只有相“与与”的两位都是的两位都是1,结,结果才是果才是1;否则,;否则,“与与”的结果为的结果为0例例3.29:测试为:测试为0或或1test al,01h;测试AL的最低位D0jnz there;标志ZF=0,即D0=1;则程序转移到there.;否则ZF=1,即D0=0,顺序执行there: . TEST指令通常用于检测一些条件是否指令通常用于检测一些条件是否满足,但又不希望改变原操作数的情况满足,但又不希望改变原操作数的情况用于程序的转向用于程序的转向判断判断第 3 章第三章 指令系统 ( 4 ) 10移位指令(shift)将操作数
9、移动一位或多位,分成将操作数移动一位或多位,分成逻辑移位和算逻辑移位和算术移位术移位,分别具有左移或右移操作,分别具有左移或右移操作SHL reg/mem,1/CLSHL reg/mem,1/CL;逻辑左移,最高位进入;逻辑左移,最高位进入CFCF,最低位补,最低位补0 0SHR reg/mem,1/CLSHR reg/mem,1/CL;逻辑右移,最低位进入;逻辑右移,最低位进入CFCF,最高位补,最高位补0 0SAL reg/mem,1/CLSAL reg/mem,1/CL;算术左移,最高位进入;算术左移,最高位进入CFCF,最低位补,最低位补0 0SAR reg/mem,1/CLSAR r
10、eg/mem,1/CL;算术右移,最低位进入;算术右移,最低位进入CFCF,最高位不变,最高位不变SALSAL与与SHLSHL相同相同移位指令的功能最高位不变最高位不变最高位补最高位补0第 3 章第三章 指令系统 ( 4 ) 12移位指令的操作数移位指令的第一个操作数是指定的移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或被移位的操作数,可以是寄存器或存储单元存储单元后一个操作数表示移位位数后一个操作数表示移位位数,该操,该操作数作数为为1,表示移动一位;当移位位,表示移动一位;当移位位数数大于大于1时,则用时,则用CL寄存器值表示,寄存器值表示,该操作数表达为该操作数表达为CL第
11、 3 章第三章 指令系统 ( 4 ) 13 移位指令对标志的影响按照移入的位设置进位标志按照移入的位设置进位标志CF根据移位后的结果影响根据移位后的结果影响SF、ZF、PF对对AF没有定义没有定义如果进行一位移动,则按照操作数的最如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志高符号位是否改变,相应设置溢出标志OF:如果移位前的操作数最高位与移位:如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则后操作数的最高位不同(有变化),则OF = 1;否则;否则OF = 0。当移位次数大于。当移位次数大于1时,时,OF不确定不确定例例3.30:移位指令:移位指令mov
12、 cl,4mov al,0f0h;al=f0hshl al,1;al=e0h;CF=1,SF=1、ZF=0、PF=0,OF=0shr al,1;al=70h;CF=0,SF=0、ZF=0、PF=0、OF=1sar al,1;al=38h;CF=0,SF=0、ZF=0、PF=0、OF=0sar al,cl;al=03h;CF=1,SF=0、ZF=0、PF=1例例3.31:移位乘法:移位乘法mov si,axmov si,axshlshl si,1 si,1;si2si2axaxadd si,axadd si,ax;si3si3axaxmov dx,bxmov dx,bxmovmov cl,03h
13、 cl,03hshl dx,clshl dx,cl;dx8dx8bxbxsub dx,bxsub dx,bx;dx7dx7bxbxadd dx,siadd dx,si;dx7dx7bxbx3 3axax 逻辑左移一位相当于无符号数乘以逻辑左移一位相当于无符号数乘以2 逻辑右移一位相当于无符号数除以逻辑右移一位相当于无符号数除以2用移位指令代用移位指令代替乘法指令是替乘法指令是高效的程序高效的程序第 3 章第三章 指令系统 ( 4 ) 16循环移位指令(rotate)将操作数从一端移出的位返回到另一端将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分形成循环,分成不带进位和带进
14、位,分别具有左移或右移操作别具有左移或右移操作ROL reg/mem,1/CLROL reg/mem,1/CL;不带进位循环左移;不带进位循环左移ROR reg/mem,1/CLROR reg/mem,1/CL;不带进位循环右移;不带进位循环右移RCL reg/mem,1/CLRCL reg/mem,1/CL;带进位循环左移;带进位循环左移RCR reg/mem,1/CLRCR reg/mem,1/CL;带进位循环右移;带进位循环右移不带进位循环移位指令带进位循环移位指令第 3 章第三章 指令系统 ( 4 ) 19循环移位指令对标志的影响按照指令功能设置进位标志按照指令功能设置进位标志CF不影
15、响不影响SF、ZF、PF、AF如果进行一位移动,则按照操作数的最如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志高符号位是否改变,相应设置溢出标志OF:如果移位前的操作数最高位与移位:如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则后操作数的最高位不同(有变化),则OF = 1;否则;否则OF = 0。当移位次数大于。当移位次数大于1时,时,OF不确定不确定例例3.32:32位数移位位数移位;将;将DX.AXDX.AX中中3232位数值左移一位位数值左移一位shlshl ax,1 ax,1rclrcl dx,1 dx,1DXAXCF0例例3.33:位传送:位
16、传送;把;把ALAL最低位送最低位送BLBL最低位,保持最低位,保持ALAL不变不变rorror bl,1 bl,1rorror al,1 al,1rclrcl bl,1 bl,1rolrol al,1 al,1AL、BLCFBLCFALCFAL之之D0BL 其他位也不变? 此例不用看此例不用看例例3.34:BCD码合并码合并;AH.ALAH.AL分别存放着非压缩分别存放着非压缩BCDBCD码的两位码的两位;将它们合并成为一个压缩;将它们合并成为一个压缩BCDBCD码存码存ALALand ax,0f0fhand ax,0f0fh;保证高;保证高4 4位为位为0 0movmov cl,4 cl,
17、4rol ah,clrol ah,cl;也可以用;也可以用shl ah,clshl ah,cladd al,ahadd al,ah;也可以用;也可以用or al,ahor al,ah第 3 章第三章 指令系统 ( 4 ) 233.9 串操作类指令串操作指令是串操作指令是80868086指令系统中比较独特指令系统中比较独特的一类指令,采用比较特殊的数据串寻址的一类指令,采用比较特殊的数据串寻址方式,在操作主存连续区域的数据时,特方式,在操作主存连续区域的数据时,特别好用、因而常用别好用、因而常用重点掌握:重点掌握:MOVS STOS LODSCMPS SCAS REP一般了解:一般了解:REPZ
18、/REPE REPNZ/REPNE第 3 章第三章 指令系统 ( 4 ) 24串数据类型串操作指令的操作数是串操作指令的操作数是主存中连续主存中连续存放的数据串(存放的数据串(String)即在连即在连续的主存区域中,字节或字的序列续的主存区域中,字节或字的序列串操作指令的串操作指令的操作对象是以字(操作对象是以字(W)为单位的字串,或是以字节(为单位的字串,或是以字节(B)为)为单位的字节串单位的字节串第 3 章第三章 指令系统 ( 4 ) 25串操作数两种情况:两种情况:1、两个操作数均为、两个操作数均为串串数据;数据;nMOVS 用于将一串从源移动到目的用于将一串从源移动到目的nCMPS
19、 用于将两串逐一比较用于将两串逐一比较2、两个操作数一为、两个操作数一为AL/AX,另一为,另一为串串nSTOS 用于将用于将AL/AX中字节中字节/字填充到字填充到目的串目的串nLODS 用于从用于从源串源串中取字节中取字节/字到字到AL/AXnSCAS 用于从用于从目的串目的串中查找特定的字节中查找特定的字节/字字第 3 章第三章 指令系统 ( 4 ) 26串寻址方式源操作数用寄存器源操作数用寄存器SI寻址,默认在数据段寻址,默认在数据段DS中:中:DS:SI ,但允许段超越,但允许段超越目的操作数用寄存器目的操作数用寄存器DI寻址,默认在附加段寻址,默认在附加段ES中:中:ES:DI ,
20、不允许段超越,不允许段超越每执行一次串操作指令,每执行一次串操作指令,SI和和DI将自动修改:将自动修改:n1(对于字节串)或(对于字节串)或2(对于字串)(对于字串)n执行指令执行指令CLD指令后,指令后,DF = 0,地址指针增,地址指针增1或或2n执行指令执行指令STD指令后,指令后,DF = 1,地址指针减,地址指针减1或或2第 3 章第三章 指令系统 ( 4 ) 27串传送MOVS(move string)把字节或字操作数从主存的源地址把字节或字操作数从主存的源地址传送至目的地址传送至目的地址MOVSBMOVSB;字节串传送:;字节串传送:ES:DIDS:SIES:DIDS:SI;S
21、ISISISI1 1,DIDIDIDI1 1MOVSWMOVSW;字串传送:;字串传送:ES:DIDS:SIES:DIDS:SI;SISISISI2 2,DIDIDIDI2 2例例3.35:字节串传送:字节串传送mov si,offsetmov si,offset source sourcemov di,offsetmov di,offset destination destinationmovmov cx, cx,100100;cxcx传送次数传送次数cldcld;置;置DF=0DF=0,地址增加,地址增加again:again: movsbmovsb;传送一个字节传送一个字节dec cxd
22、ec cx;传送次数减;传送次数减1 1jnzjnz again again;判断传送次数;判断传送次数cxcx是否为是否为0 0;不为;不为0 0,则到,则到againagain位置执行指令位置执行指令;否则,结束;否则,结束offsetoffset是汇编操作符,是汇编操作符,求出变量的偏移地址求出变量的偏移地址例例3.36:字串传送:字串传送mov si,offsetmov si,offset source sourcemov di,offsetmov di,offset destination destinationmovmov cx, cx,5050;cxcx传送次数传送次数cldcl
23、d;置;置DF=0DF=0,地址增加,地址增加again:again: movswmovsw;传送一个字传送一个字dec cxdec cx;传送次数减;传送次数减1 1jnzjnz again again;判断传送次数;判断传送次数cxcx是否为是否为0 0;不为;不为0 0,则到,则到againagain位置执行指令位置执行指令;否则,结束;否则,结束第 3 章第三章 指令系统 ( 4 ) 30解释offset是什么?是什么? Offset是汇编语言提供的汇编伪指是汇编语言提供的汇编伪指令,它指示变量的偏移地址(本例令,它指示变量的偏移地址(本例中中source和和destination均为
24、变量)。均为变量)。该段程序的功能是什么?该段程序的功能是什么?将数据段中由将数据段中由source指示的指示的100个个字 节 数 据 , 传 送 到 附 加 段 由字 节 数 据 , 传 送 到 附 加 段 由 destination 指示的主存区。指示的主存区。第 3 章第三章 指令系统 ( 4 ) 31串存储STOS(store string)把把AL或或AX数据传送至目的地址数据传送至目的地址STOSBSTOSB;字节串存储:;字节串存储:ES:DIALES:DIAL;DIDIDIDI1 1STOSWSTOSW;字串存储:;字串存储:ES:DIAXES:DIAX;DIDIDIDI2
25、2例例3.37:串存储:串存储movmov ax,0 ax,0movmov di,0 di,0movmov cx,8000h cx,8000h;cxcx传送次数(传送次数(323210241024)cldcld;DF=0DF=0,地址增加,地址增加again:again: stoswstosw;传送一个字;传送一个字dec cxdec cx;传送次数减;传送次数减1 1jnzjnz again again;传送次数;传送次数cxcx是否为是否为0 0 可将可将CLD改为改为STD吗?吗?如何改用如何改用STOSB? 可不用给可不用给DI 赋值吗?赋值吗?DI为偶数即可为偶数即可第 3 章第三章
26、 指令系统 ( 4 ) 33串读取LODS(load string)把指定主存单元的数据传送给把指定主存单元的数据传送给AL或或AXLODSBLODSB;字节串读取:;字节串读取:ALDS:SIALDS:SI;SISISISI1 1LODSWLODSW;字串读取:;字串读取:AXDS:SIAXDS:SI;SISISISI2 2例例3.38串读取串读取1mov si,offsetmov si,offset block blockmov di,offset dplusmov di,offset dplusmov bx,offset dminusmov bx,offset dminusmov ax,
27、dsmov ax,dsmov es,axmov es,ax;设置;设置es=dses=ds, ,说明数据都在一个段中说明数据都在一个段中mov cx,countmov cx,count;cxcx字节数字节数cldcld例例3.38串读取串读取2go_on:go_on: lodsblodsb;从;从blockblock取出一个数据取出一个数据test al,80htest al,80h;检测符号位,判断是正是负;检测符号位,判断是正是负jnzjnz minus minus;符号位为;符号位为1 1,是负数,转向,是负数,转向minusminusstosbstosb;符号位为;符号位为0 0,是正
28、数,存入,是正数,存入dplusdplusjmpjmp again again;程序转移到;程序转移到againagain处继续执行处继续执行例例3.38:串读取:串读取3minus:minus: xchg bx,dixchg bx,distosbstosb;把负数存入;把负数存入dminusdminusxchg bx,dixchg bx,diagain:again: dec cxdec cx;字节数减;字节数减1 1jnzjnz go_on go_on;完成正负数据分离;完成正负数据分离第 3 章第三章 指令系统 ( 4 ) 37解释该段程序的功能是什么?该段程序的功能是什么?数据段数据段D
29、S中有一个数据块,具有中有一个数据块,具有count个字节,起始地址为个字节,起始地址为block。现在要把其中的正数、负数分开,分现在要把其中的正数、负数分开,分别存入同一个段的两个缓冲区。别存入同一个段的两个缓冲区。存放正数的起始地址为存放正数的起始地址为dplus,存放负,存放负数的起始地址为数的起始地址为dminus。第 3 章第三章 指令系统 ( 4 ) 38串比较CMPS(compare string)将主存中的源操作数减去至目的操作数,将主存中的源操作数减去至目的操作数,以便设置标志,进而比较两操作数之间以便设置标志,进而比较两操作数之间的关系的关系CMPSBCMPSB;字节串比
30、较:;字节串比较:DS:SIDS:SIES:DIES:DI;SISISISI1 1,DIDIDIDI1 1CMPSWCMPSW;字串比较:;字串比较:DS:SIDS:SIES:DIES:DI;SISISISI2 2,DIDIDIDI2 2例例3.39a:比较字符串:比较字符串mov si,offsetmov si,offset string1 string1mov di,offsetmov di,offset string2 string2mov cx,countmov cx,count ; ;是字符串的个数(字节)是字符串的个数(字节)cldcldagain:again:cmpsbcmpsb
31、;比较两个字符;比较两个字符jnz unmatjnz unmat;有不同字符,转移;有不同字符,转移dec cxdec cxjnzjnz again again;进行下一个字符比较;进行下一个字符比较movmov al,0 al,0;字符串相等,设置;字符串相等,设置00h00hjmpjmp output output;转向;转向outputoutput,这句不能掉了,这句不能掉了unmat:unmat:movmov al,0ffh al,0ffh;设置;设置ffhffhoutput:output:movmov result,al result,al;输出结果标记;输出结果标记若有一个不相等:
32、若有一个不相等:AL=FFH若所有都相等:若所有都相等:AL=00H第 3 章第三章 指令系统 ( 4 ) 40 串扫描SCAS(scan string)将将AL/AX减去至目的操作数,以便设置减去至目的操作数,以便设置标志,进而比较标志,进而比较AL/AX与操作数之间的与操作数之间的关系关系SCASBSCASB;字节串扫描:;字节串扫描:ALALES:DIES:DI;DIDIDIDI1 1SCASWSCASW;字串扫描:;字串扫描:AXAXES:DIES:DI;DIDIDIDI2 2例例3.40a:查找字符串:查找字符串mov di,offsetmov di,offset string st
33、ringmovmov al,20h al,20h ;20H;20H是什么?是什么?mov cx,countmov cx,countcldcldagain:again: scasbscasb;搜索;搜索jzjz found found;为;为0 0(ZF=1ZF=1),发现空格),发现空格dec cxdec cx;不是空格;不是空格jnzjnz again again;搜索下一个字符;搜索下一个字符.;不含空格,则继续执行;不含空格,则继续执行found:found: .第 3 章第三章 指令系统 ( 4 ) 42重复前缀指令(repeat)串操作指令执行一次,仅对数据串中的串操作指令执行一次,
34、仅对数据串中的一个字节或字量进行操作。但是串操作一个字节或字量进行操作。但是串操作指令前,都可以加一个重复前缀,实现指令前,都可以加一个重复前缀,实现串操作的重复执行。重复次数隐含在串操作的重复执行。重复次数隐含在CX寄存器中寄存器中重复前缀分重复前缀分2类,类,3条指令:条指令:n配合不影响标志的配合不影响标志的MOVS、STOS(和(和LODS)指令的)指令的REP前缀前缀n配合影响标志的配合影响标志的CMPS和和SCAS指令的指令的REPZ和和REPNZ前缀前缀第 3 章第三章 指令系统 ( 4 ) 43REP重复前缀指令REP前缀可以理解为:当数据串没前缀可以理解为:当数据串没有结束有
35、结束(CX0),则继续传送,则继续传送例例3.36和和例例3.37中,程序段的最后中,程序段的最后3条指令,可以分别替换为:条指令,可以分别替换为:REP MOVSB 和和 REP STOSWREPREP;每执行一次串指令,;每执行一次串指令,CXCX减减1 1;直到;直到CXCX0 0,重复执行结束,重复执行结束重复串传送(例(例3.36)mov si,offsetmov si,offset source sourcemov di,offsetmov di,offset destination destinationmovmov cx,100 cx,100;cxcx传送次数传送次数cldcl
36、drep movsbrep movsbagain:again:movsbmovsb;传送一个字节;传送一个字节decdec cx cx;传送次数减;传送次数减1 1jnzjnz again again ;判断传送次数;判断传送次数cxcx是否为是否为0 0;不为;不为0 0(ZF=0ZF=0),则转移),则转移againagain位置执行位置执行;否则,结束;否则,结束第 3 章重复串存储(例(例3.37)movmov ax,0 ax,0movmov di,0 di,0movmov cx,8000h cx,8000hcldcldrep stoswrep stoswagain:again: st
37、oswstosw;传送一个字;传送一个字decdec cx cx;传送次数减;传送次数减1 1jnzjnz again again;判断传送次数;判断传送次数cxcx是否为是否为0 0第 3 章第 3 章第三章 指令系统 ( 4 ) 46REPZ重复前缀指令REPZ/REPE前缀可以理解为:当数据前缀可以理解为:当数据串没有结束串没有结束(CX0),并且串相等,并且串相等(ZF1),则继续比较,则继续比较找不同找不同REPZREPZ;每执行一次串指令,;每执行一次串指令,CXCX减减1 1;并判断;并判断ZFZF是否为是否为0 0,跳出循环,跳出循环;只要;只要CXCX0 0或或ZFZF1 1
38、,重复执行结束,重复执行结束第 3 章第三章 指令系统 ( 4 ) 47REPNZ重复前缀指令REPNZ/REPNE前缀可以理解为:当前缀可以理解为:当数据串没有结束数据串没有结束(CX0),并且串不,并且串不相等相等(ZF0),则继续比较,则继续比较找相同找相同REPNZREPNZ;每执行一次串指令,;每执行一次串指令,CXCX减减1 1;并判断;并判断ZFZF是否为是否为1 1,跳出循环,跳出循环;只要;只要CXCX00或或ZFZF0 0,重复执行结,重复执行结束束第 3 章第三章 指令系统 ( 4 ) 48(重复控制前缀)串指令 控制重复次数控制重复次数 基本操作基本操作重复前缀: RE
39、P REPZ/REPE REPNZ/REPNE(CX)=(CX)-1REP后的后的串串 指指 令令YNCX=0 ?(CX)=(CX)-1REPZ 后的后的串串 指指 令令YNYNCX=0?ZF=1 ?(CX)=(CX)-1REPNZ后的后的串串 指指 令令YNYNCX=0 ?ZF=0 ?(1)REP前缀 (CX)0则表示重复次数未满;(2)REPZ/REPE REPNZ/REPNE前缀 根据(CX)和(ZF)的值判断是否结束串指令。程序有两个出口程序有两个出口第 3 章第三章 指令系统 ( 4 ) 49执行完执行完REPZ CMPSB后,此时:后,此时:ZF=1, 两串相等两串相等CX=0 , 两串所有元素已比较完两串所有元素已比较完SI、DI串尾的下一单元串尾的下一单元(重复控制前缀)(重复控制前缀)串操作指令的执串操作指令的执行过程行过程执行完执行完REPZ CMPSB后,此时:后,此时:ZF=0, 两串不等两串不等CX=3, 剩下的未比较的元素个数剩下的未比较的元素个数SI、DI指向第一个不相等元素的下一元素。指向第一个不相等元素的下一元素。112233 441a4d112233442c4d2b3c3b3cstring1string2DS: SIES: DI(CX)=3ZF=0112233 441a2b3c4d112233441a2b3c4dstring1stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会协同推动劳动教育的策略
- 《电路基础与欧姆定律:初三物理电学入门教案》
- 图书数字化平台运营协议
- 中考考前指导:最后一节地理课
- 预测模型构建从理论到实践
- 顾客体验至上新零售场景的设计原则与技巧
- 非遗在线教育平台的开发及推广策略
- 非物质文化遗产在当代建筑设计中的创新实践
- 非物质文化遗产的现代演绎主题婚礼策划的新趋势
- 防灾减灾及应急管理措施分析
- SOR-04-014-00 药品受托生产企业审计评估报告模板
- 两人股权分配协议书模板
- 2024至2030年中国中试基地行业发展形势及前景规划分析报告
- 儿科护理期末试卷及答案
- 安全伴我行-大学生安全教育智慧树知到期末考试答案章节答案2024年哈尔滨工程大学
- 江西省第一届职业技能大赛分赛场项目技术文件(世赛选拔)重型车辆维修
- CJ/T 28-2013 中餐燃气灶炒菜灶
- JJF 1064-2024坐标测量机校准规范
- 污水处理厂安全风险分级管控体系方案1
- 珠宝行业代卖合作协议书
- 北京市朝阳区2022-2023学年四年级下学期语文期末试卷(含答案)
评论
0/150
提交评论