pentium指令系统之逻辑运算和移位指令.ppt_第1页
pentium指令系统之逻辑运算和移位指令.ppt_第2页
pentium指令系统之逻辑运算和移位指令.ppt_第3页
pentium指令系统之逻辑运算和移位指令.ppt_第4页
pentium指令系统之逻辑运算和移位指令.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三、逻辑运算和移位指令 (一)逻辑运算指令一)逻辑运算指令 1、AND(Logical and ) 逻辑“与”指令 2、 TEST(Test or non-destructive logical and ) 测试指令 3、OR(Lgical inclusive or ) 逻辑“或”指令 4、XOR(Logical exclusive or) 逻辑“异或”指令 5、NOT(Logical not ) 逻辑“非”指令 特点:特点: 逻辑运算是按位操作,操作数应该是位串而不是数。逻辑运算是按位操作,操作数应该是位串而不是数。 影响条件码: (NOT指令除外,其他指令同) SF ZF PF SF ZF PF 1 1、ANDAND(Logical and )Logical and )逻辑逻辑“ “与与” ”指令指令 格式:AND dest, src ;B/W,(dest)(dest (src) srcsrc: : 立即数、寄存器、存储器。立即数、寄存器、存储器。 destdest: : 寄存器、存储器。寄存器、存储器。 执行操作:按位进行“与”运算。 操作类型举例: AND AL, 0FH ;寄存器 立即数 AND CX, DI ; 寄存器 寄存器 AND SI, MEM_NAME ; 寄存器 存储器 AND ALPHA DI, AX ; 存储器 寄存器 AND word ptr BXSI, 0FFFEH ; 存储器 立即数 “与”指令的用途: 对一个数据的指定位清0 将指定位与将指定位与“ “0” 0” 相与相与。 例: 若(AL)=43 3H AND AL, 0F FH ; (AL)=03H, (AL)(AL)03 03不变 不变; ;(AL)(AL)47 47=00H, =00H,屏蔽高屏蔽高4 4位位。 “与”指令应用举例: 例1:将英文小写字母ASCII转换成大写。 小写英文字母ASCII为:az 61H7AH 大写英文字母ASCII为:AZ 41H5AH 程序:MOV AL, z ; AND AL,0DFDFH; 例2:判断键盘按下的字符是不是Y? MOV AH, 7MOV AH, 7 INT INT 21H 21H ;键入无回显,(AL)=输入键的字符码 AND AL, 0DFH CMP AL, Y JE YES YES: 0110 0001 0100 0001 1101 1111 61H 41H DFH 2 2、 TESTTEST(Test or non_destructive logical and )测试指令测试指令 格式: TEST dest , src;(dest)(src) srcsrc: : 立即数、寄存器、存储器。立即数、寄存器、存储器。 destdest: : 寄存器、存储器。寄存器、存储器。 执行操作: 二个操作数相与的结果不存入目的,只影响标志位 。 操作类型举例: TEST BH, 7 ; 寄存器 立即数 TEST SI , BP ;寄存器 寄存器 TEST DI ,TABLEBX ; 寄存器 存储器 TEST SI,CH ;存储器 寄存器 TEST word ptr BXDI, 6ACEH ;存储器 立即数 例:判断A单元中数据的奇偶性 设: (A )= 0AEH 程序:MOV AL,A;(AL)=0AEH TEST AL,01H JZ EVEN ; 结果=0为偶数转EVEN 奇数处理 EVEN:偶数处理 检测(AL)的最低位是否为0,若为0转EVEN 用途: 常常用来检测指定位是用来检测指定位是1/01/0,但又不希望改变原有的操 作数的情况下,常在此指令后边加一条 条件转移指令。 3 3、OROR(LgicalLgical inclusive or ) inclusive or )逻辑逻辑“ “或或” ”指令指令 格式:OR dset, src;(dset)(dset) (src) destdest: : 寄存器、存储器。寄存器、存储器。 srcsrc: : 立即数、寄存器、存储器。立即数、寄存器、存储器。 执行操作: 进行按位“或”运算 用途: 将操作数的指定位位置置1 1。 操作类型举例: OR BL,0F6H; 寄存器 立即数 OR AH, BL;寄存器 寄存器 OR CL ,BETABXDI; 寄存器 存储器 OR GAMMASI ,DX;存储器 寄存器 OR BYTE PTR MEM_BYTE , 80H;存储器 立即数 4 4、XORXOR(Logical exclusive or)Logical exclusive or)逻辑逻辑“ “异或异或” ”指令指令 格式:XOR dset , src ;B/W(dset) (dset) (src) destdest: : 寄存器、存储器。寄存器、存储器。 srcsrc: : 立即数、寄存器、存储器。立即数、寄存器、存储器。 执行的操作:对指令的两个操作数进行按位“异或”运算。 操作类型举例: XOR DI, 23F6HH ; 寄存器 立即数 XOR SI , DX ;寄存器 寄存器 XOR CL , BUFFER ; 寄存器 存储器 XOR MEMBX,AX ;存储器 寄存器 XOR byte ptrTABLEBPSI, 3DH ; 存储器 立即数 用途:a 对某些特定位求反,某些特定位与对某些特定位求反,某些特定位与“ “1” 1” 其余位保持不变,保持不变与其余位保持不变,保持不变与“ “0” 0” 。 b b 初始化时将某个寄存器清初始化时将某个寄存器清0 0 应用举例: 例1: 将(AL)中的第1、3、5、7位求反 0、2、4、6位保持不变 。 MOV AL, 0FH XOR AL,0AAH 例2: 比较三条AX 清“0”指令: XOR AX , AX ; 清AX , 清CF,2个字节,3个T。 SUB AX, AX ;清AX , 清CF,2个字节,3个T。 MOV AX , 0 ;清AX ,不影响标志位, 3个字节,4个T。 XOR清“0”指令在多字节累加程序中十分有用。 例3: 将存放在TABLE开始的100个字节的16进制数进行累加, 和存于SUM+1、SUM单元。 程序: 100个字节的16进制数 进行累加。 LEA BX , TABLE MOV CL,100 XOR AX ,AX LOOPER:ADD AL,BX JNC GOON INC AH GOON: INC BX DEC CL JNZ LOOPER MOV SUM , AX HLT 流 程 图 5 5、NOTNOT(Logical not )Logical not )逻辑逻辑“ “非非” ”指令指令 格式: NOT dest ;B/W 指令操作数只有一个,指令对操作数按位求反对操作数按位求反。 执行操作: 字节求反:(dest)0FFH-(dest) 字求反: (dest 0FFFFH-(dest) 源操作数:寄存器、存储器。不能是立即数。源操作数:寄存器、存储器。不能是立即数。 影响标志位:对标志位无影响。 操作类型举例: NOT AH; 8位寄存器求反 NOT CX;16位寄存器求反 NOT BYTE PTR BP;8位存储器求反 NOT WORD PTR COUNT ;16位存储器求反 综合举例: 1使某些位置“0”。 IN AL,61H;(AL)= B 设备控制寄存器 想使此位为0 执行指令: AND ALAND AL,0FDH0FDH 即可。 2. 使某些位置“1”。 IN AL,61H;(AL)= 执行指令: OR ALOR AL,0202 想使此位为“1” 3. 使某些位求反: IN AL,61H ;(AL)= 0 XOR ALXOR AL,02H02H 0 0 0 0 0 0 1 0 1 4. 测试某些位(测奇偶性):测试 “奇”“偶”性。 见TEST指令的用途例子。 逻辑指令应用小结:逻辑指令应用小结: (1)AND指令用来对指令的指定位清“0”。 (2)OR指令常用来对某些位置1。 (3)XOR指令用在程序开头,使某个寄存器清“0”。 (4)NOT指令对某个数据取反,+1成补码。 (5)TEST指令用来检测指定位为1,还是0。 1 1、 算逻移位指令算逻移位指令( 4条 ): SHL , SHR,SHL , SHR, SAL , SAR SAL , SAR 。 (1)、 SHL/SAL(Shift logical left/shift arithmetic left) 逻辑左移/算术左移指令 (2)、SHR (Shift logical right ) 逻辑右移指令 (3)、SAR (Shift arithmetic right )算术右移指令 2 2、循环移位、循环移位( 4条): ROL, ROR , RCL, RCRROL, ROR , RCL, RCR。 (1)、ROL (Rotate left ) 不含CF循环左移指令 (2)、ROR (Rotate right )不含CF循环右移指令 (3)、RCL (Rotate left through carry )含CF循环左移指令 (4)、RCR (Rotate right through carry )含CF循环右移指 令 (二)移位指令(二)移位指令 共同点: 所有移位指令都可以作B/W/DW操作。 指令中的 destdest : : 寄存器、存储器寻址方式。寄存器、存储器寻址方式。 cnt : 表示移位次数 cnt=131,移位的位数可直接在指令中写出 cnt31,用CL存放移位次数 ,不能是其他寄存器。 如:SAL AX,1 MOV CL,4 SAL AX,CL 利用移位指令编制 *, / 程序, 执行时间比直接用 * ,/ 指令快, 速度可提高5-6倍。 1 1、 算逻移位指令算逻移位指令( 4条 ) : SHL , SHR,SHL , SHR, SAL , SAR SAL , SAR (1)、 SHL/SAL(Shift logical left/shift arithmetic left) 逻辑左移/算术左移指令 格式: SHL dest ,cnt ;逻辑左移指令, B/W SAL dest ,cnt ;算术左移指令, B/W dest : 寄存器、存储器寻址方式。 cnt : 表示移位次数 cnt=131,常数可写在指令中。 cnt31,用CL存放移位次数 。 执行操作:相当于无符号数的2功能。 SHL/SAL指令操作示意图如下图所示: 指令格式举例: SHL AH,1 SAL SI, CL SAL WORD PTR BX+5 ,1 SHL BYTE PTR , CL 0CF dest (2)、SHR (Shift logical right )逻辑右移指令 格式: SHR dest ,cnt ;逻辑右移指令, B/W 执行操作:相当于无符号数的2功能。 SHR指令操作示意图如下图所示: dest : 寄存器、存储器寻址方式。 指令格式举例: SHR BL , 1 SHR AX , CL SHR BYTE PTR DI+BP,1 SHR WORD PTR BLOCK ,CL dest CF0 (3 3)、)、SARSAR (Shift arithmetic right )算术右移指令算术右移指令 格式: SAR dest ,cnt ;算术右移指令, B/W 执行操作: SAR指令操作示意图如下图所示 dset destdest : : 寄存器、存储器寻址方式。寄存器、存储器寻址方式。 指令格式举例: SAR AL , 1 SHR DL , CL SHR WORD PTR TABLESI,1 SHR BYTE PTR STATUS ,CL 2 2、循环移位、循环移位( 4条): ROL, ROR , RCL, RCRROL, ROR , RCL, RCR。 共同点: ROLROL、RORROR 不含CF循环移位指令,操作数移动 操作数移动8 8次后还原次后还原 。 RCLRCL、 RCRRCR 含CF循环移位指令,操作数移动 操作数移动9 9次后还原次后还原。 影响标志OF、CF (1 1)、)、ROLROL (Rotate left )不含不含CFCF循环左移指令循环左移指令 格式: ROL dest ,cnt ;不含CF循环左移指令, B/W 执行操作:ROL指令操作示意图如下图所示 移动移动8 8次后操作数还原。次后操作数还原。 CF dest 指令格式举例: ROL BH , 1 ROL DX , CL ROL WORD PTR TABLEDI,1 ROL BYTE PTR ALPHA ,CL 影响标志OF、CF 情况: 左循环移动左循环移动1 1次后次后: 移位后,最高有效位(符号位)是否发生变化: 如果移位后,最高有效位与最高有效位与CFCF不等不等 则:则: OF = 1,OF = 1, 否则:(无变化时)否则:(无变化时)OF = 0OF = 0 CF根据各条指令的规定设置。 左循环移动多次后左循环移动多次后: OF 值不定。 CF=从目标操作数移出的最后一位。 SF、ZF、PF、AF不影响。 (2 2)、)、RORROR (Rotate right )不含不含CFCF循环右移指令循环右移指令 格式: ROR dest ,cnt ;不含CF循环右移指令, B/W 执行操作:ROR指令操作示意图如下图所示 右移右移8 8次后操作数还原。次后操作数还原。 CF dest 指令格式举例: ROR CX , 1 ROL BH , CL ROL BYTE PTRBETA , 1 ROL WORD PTR COUNT , CL (3 3)、)、RCLRCL (Rotate left through carry )含含CFCF循环左移指令循环左移指令 格式: RCR dest ,cnt ;含CF循环左移指令, B/W 执行操作:RCL指令操作示意图如下图所示 左移左移9 9次后操作数还原次后操作数还原。 CF dest 指令格式举例: RCL BX , 1 RCL DL , CL RCL BYTE PTR ARRAYDI , 1 RCL WORD PTR SI+BP , CL 影响标志:影响标志:RCL RCL 与与ROL ROL 影响标志影响标志OFOF、CFCF情况相同情况相同 (4 4)、)、RCRRCR (Rotate right through carry )含含CFCF循环右移指令循环右移指令 格式: RCR dest ,cnt ;含CF循环左移指令, B/W 执行操作:RCR指令操作示意图如下图所示 右移右移9 9次后操作数还原。次后操作数还原。 CF dest 指令格式举例: RCR DI, 1 RCR SI , CL RCR WORD PTRSI+BX+3, 1 RCL BYTE PTRPORT, CL 影响标志:影响标志:RCR RCR 与与 ROR ROR 影响标志影响标志OFOF、CFCF情况相同情况相同 带进位循环左移 移9次还原 带进位循环左移 移9次还原 循环右移(不带 CF) 移8次还原 循环左移(不带 CF) 移8次还原 算术右移 (带符号数2) 逻辑右移 (无 符号数2) 执行操作名称指令格式 SHL oprd,1 CL 逻辑左移 (无符号数*2) 0 CF 0 CF SAL oprd, 1 CL 算术左移 CF0 SHR oprd, 1 CL CF SAR oprd, 1 CL CF ROL oprd, 1 CL CF ROR oprd, 1 CL CF RCL oprd, 1 1CL 1 CF RCR oprd, 1 1 CL 1 小结:小结: 循环移位指令循环移位指令(Rotate)与移位指令与移位指令(Shift)不同点不同点: 循环移位指令移位后,操作数中原来各数位的信息不会 丢失,这是移动了位置,必要时可以恢复。 循环移位指令可以对操作数进行测试。 例:测试(AL)5 = 0? MOV CL , 3 ROL AL , CLROL AL , CL JNC ZERO ZERO: (3)双精度移位指令SHLD/SHRD 格式: SHLD/shrd dest ,src,cnt ; 执行操作:目的操作数和源操作数连续左移/右移cnt位,结果 在目的操作数中,源操作数不变。 注意:源操作数必须在寄存器中,目的操作数可以是寄存器, 也可以是内存单元 例: SHLD EAX,EBX,3 SHLD MEMWORD,DX,8 SHRD ECX,EDX,19 SHRD EAX,EBX,CL 5种基本操作: 1、 MOVS(Move string) 串传送指令 2、CMPS(Compare string) 串比较指令 3、SCAS(Scan string) 串扫描指令(串检索) 4、LODS(Load from string) 从串取指令 5、STOS (Store in to string) 存入串指令 6、INS/OUTS(In/Out string) I/O串操作指令 四、串操作指令(String manipulation ) “串”就是内存中一段地址相连的字节或字。 串操作串操作对串中各单元进行操作,也叫数据块操作对串中各单元进行操作,也叫数据块操作。 共同点:共同点: 可以只有源操作数,可以只有目标操作数,可能二者都有。 源操作数用SI 寻址,隐含DS值为段地址,可以用段跨越前缀指定其它段 。 目标操作数用DI寻址,隐含ES为段地址。 每次操作对SI、DI 调整: DF=1DF=1,DIDI、SISI自动自动-1 (-1 (字节)或字节)或-2-2(字);(字); DF=0DF=0,DIDI、SISI自动自动+1+1(字节)或(字节)或+2+2(字)。(字)。 与上述指令基本配合使用前缀有: REPREP(Repeat)重复。重复。 REPE/REPZREPE/REPZ(Repeat while equal/zero) 相等 相等/ /为零则重复。为零则重复。 REPNE/REPNZREPNE/REPNZ(Repeat while not equal/not zero)不相等 不相等/ /不为零则重复不为零则重复。 下面分二种情况来讨论: ( (一一) ) 与与REPREP相配合工作的相配合工作的MOVSMOVS、STOSSTOS、LODSLODS指令指令 REP REP 重复串操作直到(重复串操作直到(CX CX)=0=0为止为止 ( (二二) ) 与与REPE/REPZREPE/REPZ和和REPNE/REPNZREPNE/REPNZ联合工作的联合工作的CMPSCMPS和和SCASSCAS指令指令 REPE/REPZ REPE/REPZ 当相等当相等/ /为零时重复串操作为零时重复串操作 REPNE/REPNZ REPNE/REPNZ 当不相等当不相等/ /不为零时重复串操作不为零时重复串操作 ( (一一) ) 与与REPREP相配合工作的相配合工作的MOVSMOVS、STOSSTOS、LODSLODS指令指令 REP REP 重复串操作直到(重复串操作直到(CXCX)=0=0为止为止 格式:REP 串指令 串指令可为:MOVS、STOS、LODS。 1. MOVS(Move String) 串传送 2. LODS(Load from String) 从串取指令 3. STOS(Store into String) 存入串指令 1. 1. MOVSMOVS(Move stringMove string)串传送串传送 2. 2. 串传送有串传送有3 3种格式:种格式: (1)MOVSB (字节); 执行操作: (ES) :(DI) ) ((DS):(SI), (SI)(SI)1,(DI)(DI) 1 (2)MOVSW (字); 执行操作: ( (ES) :(DI) ((DS):(SI), (SI)(SI)2,(DI)(DI)2 当方向标志当方向标志 CLD , DF=0CLD , DF=0时时 用用“ “+”+” STD , DF=1 STD , DF=1时时 用用“ “-”-” 该指令不影响条件码 。 归纳在执行MOVS指令时,应该先做好以下准备工作: (1) 数据段中源串首地址源串首地址(如反向传送到末地址)存入存入SISI寄存器中寄存器中。 (2) 附加段中目的串首地址目的串首地址(或反向传送末地址)存入存入DIDI寄存器中寄存器中。 (3) 数据串长度存入数据串长度存入CXCX寄存器寄存器。 (4) 建立方向标志建立方向标志 建立方向标志介绍两条指令:建立方向标志介绍两条指令: CLD(clear direction flag) 功能:DF=0DF=0,执行串处理指令时 可以使地址自动 自动+1+1或或+2+2。 STD(set direction flag) 功能:DF=1DF=1,执行串处理指令时可以使地址自动 自动-1-1或或 -2-2。 2. 2. LODS(Load from string) LODS(Load from string) 取字符串指令取字符串指令 取字符串指令有取字符串指令有3 3种格式:种格式: (1) LODSB (字节);(AL) (DS):(SI),(SI) (SI) 1 (2) LODSW (字) ;(AX) (DS):(SI),(SI) (SI)2 (3)LODSD (双字) ;(EAX) (DS):(SI),(SI) (SI)4 功能: 该指令把由(SISI)指定的数据段中某单元内容指定的数据段中某单元内容 (AL)(AL) 或或 (AX)(AX)或(或(EAXEAX)中)中。 DF=0,(SI) (SI)+1或+2或+4 DF=1,(SI) (SI)-1或-2或-4 LODSLODS应用注意:应用注意: (1) 指令允许用段跨越前缀来指定非数据段的存储区。 (2) 该指令不影响条件码。 (3) 一般说来, 它不与REP联用,每重复一次,累加器的内容就改变一次。 (AL)中只能保持最后一个元素。 有时缓冲区中的一串字符需要多次取出测试时可用本指令缓冲区中的一串字符需要多次取出测试时可用本指令 。 适用于在一个循环中,用基本串操作指令构成复杂串操作 时很有用。 存入串指令有存入串指令有3 3种格式:种格式: (1) STOSB (字节); (ES):(DI) (AL) , (DI) (DI) 1 (2) STOSW (字) ; (ES):(DI) (AX) , (DI) (DI) 2 (3) STOSD (字) ; (ES):(DI) (AX) , (DI) (DI) 4 用途: 与REP联用时,(CX)缓冲区长度。用来建立一串相同的 值 3 3 STOSSTOS(Store into stringStore into string) 存入串指令存入串指令 将将(AL)(AL)或(或(AX) AX) ( (ES):(DI)(ES):(DI),(,(DI) 1DI) 1或或22或或 4(DI)(DI) 例:在附加段STORE开始存5个空格 程序: MOV AL,20H ;_ (AL) MOV CX,5 MOV DI,offset STORE CLD REP STOSB ;(ES):(DI) (AL) (DI) (DI)+1 学习学习LODSLODS,STOSSTOS指令应用指令应用 例:内存中有一个首地址为BLOCK补码表示的有符号数的数据块补码表示的有符号数的数据块 。 要求将正、负数分开,分别存于二个缓冲区要求将正、负数分开,分别存于二个缓冲区: : 存放正数的缓冲区首址为PLUS-DATA, 存放负数的缓冲区首址为MINUS-DATA。 设: 源数据块用SI寻址, 正数的目的区用DI寻址, 负数的目的区用BX寻址。 循环次数 ( CX )。 传送过程:传送过程: 用LODS指令把源数据取入(AL)中, 检查其符号,确定正、负, 若为正数用STOS指令送至正数缓冲区, 若是负数,把(DI)与(BX)交换,仍使用STOS传送, 传送 完后再 将(DI)与(BX)交换,恢复原值。 程序:START: MOV SI,OFFSET BLOCK MOV DI,OFFSET PLUS-DATA ; 正数缓冲区 MOV BX,OFFSET MINUS-DATA;负数缓冲区 MOV CX,COUNT CLDCLD GOON: LODSBLODSB TEST ALTEST AL,80H80H JNZ MINS ;若负数转MINS STOSBSTOSB ;正数 ,(DI)(AL),(DI)(DI)+1 JMP AGAIN MINS: XCHG BX,DI STOSBSTOSB ;负数 ,(DI)(AL),(DI)(DI)+1 XCHG BX,DI AGAIN:DEC CX JNZ GOON HLT 4 I/O串操作指令(In/Out String)INSB/OUTSB、INSW/OUTSW、 INSD/OUTSD INSB/INSW/INSD 从一个输入端口读一串数据送到有EDI或DI指 出的连续存储单元 OUTSB/OUTSW/OUTSD 从ESI或SI指出的连续存储单元输出一 串数据到输出端口 例:INSW 例: OUTSD ( (二二) ) 与与REPE/REPZREPE/REPZ和和REPNE/REPNZREPNE/REPNZ联合工作的联合工作的CMPSCMPS和和SCASSCAS指令指令 REPE/REPZ REPE/REPZ 当相等当相等/ /为零时重复串操作为零时重复串操作 格式:REPE(或REPZ)string primitive 当相等重复前缀当相等重复前缀REPZREPZ String primitive可为 : CMPS , SCASCMPS , SCAS 1、CMPS(Compare string ) 串比较指令 2、SCAS (Scan string ) 串扫描指令,搜索指令 REPNE/REPNZ REPNE/REPNZ 当不相等当不相等/ /不为零时重复串操作不为零时重复串操作 格式:REPNE(或REPNZ)string primitive 当不相等重复前缀当不相等重复前缀REPNZREPNZ string primitive可为 : CMPS , SCASCMPS , SCAS 1、CMPS(Compare string ) 串比较指令 2、SCAS (Scan string ) 串扫描指令,搜索指令 注意:注意: 两数相减,只影响标志,不影响操作数。两数相减,只影响标志,不影响操作数。 其它操作规定与其它操作规定与MOVSMOVS同。同。 1 1、CMPSCMPS(Compare string ) Compare string ) 串比较指令串比较指令 (SI)作为源串地址,(DI)目的串地址 串比较指令有串比较指令有3 3种格式:种格式: (1) CMPSB (字节);(SI) (SI)1,(DI)(DI) 1 (2)CMPSW (字);(SI) (SI)2,(DI) (DI)2 (3)CMPSD (双字);(SI) (SI)4,(DI) (DI)4 执行操作: (ES) :(DI) -(DS):(SI),结果不存,置标志。 字节操作:(SI) (SI)1,(DI)(DI) 1 字操作:(SI) (SI)2,(DI) (DI)2 双字操作:(SI) (SI)4,(DI) (DI)4 MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING2 MOV CX,COUNT CLD REPZ CMPSB JNZ UNMAT ;若串不同,在RESUL单元中置0FFH MOV AL,0 ;若串相等,在RESULT单元中置00H JMP OUTPT UNMAT:MOV AL,0FFH OUTPTOUTPT: MOV RESULTMOV RESULT, ,ALAL HLTHLT REPZ CMPSB指令应用 例:利用CMPS指令对STRING1和STRING2二个字符串进行比较, 相同在RESULT单元送00H,不同送0FFH。 串扫描指令有串扫描指令有3 3种格式种格式: 格式:SCAS SCASB(字节);(AL)-(ES):(DI),(DI)(DI)1 SCASW(字);(AX)-(ES):(DI),(DI) (DI)2 SCASD(双字);(AX)-(ES):(DI),(DI) (DI)4 2 2、SCASSCAS (Scan string) 串扫描指令,搜索指令串扫描指令,搜索指令 (DIDI)字符串起始地址,(字符串起始地址,(AL)AL)或(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论