下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Pentium的指令系统操作数寻址方式立即数寻址(Immediate Addressing)寄存器寻址(Register Addressing)存储器寻址存储器寻址直接寻址寄存器间接寻址寄存器相对寻址基址加变址寻址相对基址加变址寻址相对比例变址寻址基址加比例变址寻址相对基址加比例变址寻址概念指令(Instruction):微处理器执行的基本操作指令系统(Instruction set):微处理器所能执行的全部指令的集合Pentium指令分类:传送指令算术运算指令逻辑运算和位操作指令串操作指令转移和调用类指令控制指令传送指令按功能可分为5类:通用传送指令标志传送指令地址传送指令输入输出指令转换类
2、指令Pentium指令系统 传送指令通用传送指令数据传送指令MOV指令符号扩展传送指令零扩展传送指令堆栈操作指令进栈指令出栈指令16位通用寄存器进栈/出栈指令32位通用寄存器进栈/出栈指令数据交换指令Pentium指令系统 传送指令交换指令(Exchange)格式:XCHG 目的, 源功能:将源操作数与目的操作数内容互换注意:立即数不能作该指令 的操作数;段r之间不能互换;源和目的不能同为m;源和目的类型一致。Pentium指令系统 传送指令交换指令应用举例:例1:寄存器间交换 xchg ax,si例2:寄存器与内存间交换 xchg eax,ebx xchg 1234bxsi,axPentiu
3、m指令系统 传送指令交换指令应用举例:例3: xchg ax,1234h非法指令,立即数不能作该指令的操作数; mov bx,1234h ;bx 1234h xchg ax,bx ;ax bx例4: xchg bx,si非法指令,源和目的不能同为内存操作数; mov cx,si ;cx ds:si xchg cx,bx ;cx ds:bx xchg cx,si ;cx ds:siPentium指令系统 传送指令标志传送指令(Flag transfer)无操作数指令(隐含操作数是Flags)功能:传送标志寄存器的内容,以便用户能对各个标志位直接进行操作指令分类:提取标志指令LAHF设置标志指令S
4、AHF标志进栈指令PUSHF/PUSHFD标志出栈指令POPF/POPFD对标志寄存器的影响:SAHF,POPFPentium指令系统 传送指令提取标志指令(load AH with Flags)格式: LAHF功能:将标志寄存器低字节送AH 说明: 将SF,ZF,AF,PF,CF状态标志送AH的第7,6,4,2,0位CFPFAFZFSFTFIFDFOFAHFlagsPentium指令系统 传送指令设置标志指令(store AH into Flags)格式: SAHF功能:将AH内容送标志寄存器低字节 说明:用AH的第7,6,4,2,0位设置标志寄存器中低字节的SF, ZF,AF,PF,CF标
5、志AHCFPFAFZFSFTFIFDFOFFlagsPentium指令系统 传送指令标志进栈指令格式:PUSHF (push Flags onto stack)功能:将16位标志寄存器FR的内容压入堆栈 操作: SP SP-2SS:SPFLAGS格式:PUSHFD (push EFlags onto stack)功能:将32位标志寄存器EFR的内容压入堆栈 操作:ESP ESP-4SS:ESPEFLAGSPentium指令系统 传送指令标志出栈指令格式: POPF (pop Flags off stack)功能:将栈顶字送标志寄存器FR操作:FLAGSS:SPSP SP2格式:POPFD (p
6、op EFlags off stack)功能:将栈顶双字送标志寄存器EFR操作: EFLAGSS:ESPESP ESP4Pentium指令系统 传送指令标志传送指令应用举例例1:置位单步标志(TF) pushf ;保存全部标志到堆栈 pop ax ;从堆栈中取出全部标志 or ax,0l00h ;设置D8的TF1,其它各位不变 push ax ;将ax压入堆栈 popf ;FlagsAXPentium指令系统 传送指令标志传送指令应用举例例2:将标志寄存器中SF置1,OF变反pushf pop axor ax,80h ;设置D7的SF1 xor ax,800h ;将D11的OF变反push a
7、xpopfPentium指令系统 传送指令地址传送指令功能:将内存操作数的地址送指定寄存器分类:有效地址传送指令:LEA逻辑地址传送指令:LDS,LES注意:操作目的不是获取内存操作数对标志寄存器的影响:不影响Pentium指令系统 传送指令有效地址传送指令(Load Effective Address)格式:LEA 目的,源功能:将源操作数(m)的有效地址(偏移地址)送目的操作数指定的通用寄存器。操作:目的寄存器 源的有效地址说明:源是代表内存操作数地址的变量,标号或地址表达式目的若是实地址方式:将源的有效地址送16位通用寄存器虚地址方式:将源的有效地址送32位通用寄存器Pentium指令系
8、统 传送指令地址传送指令应用举例mov bx,0400hmov si,3chlea bx, 0f62hbxsi ;bx=0400h+003ch+0f62h=l39EH注意!:目的寄存器bx获得的是源所指向的内存单元的有效地址;不是物理地址,也不是该单元的内容Pentium指令系统 传送指令LEA指令与MOV指令比较LEA传送内存操作数的偏移地址 MOV传送内存操作数的值用MOV指令传送内存操作数的偏移地址需要在变量名前加取值运算符offset例1:mov bx,offset a 等效于lea bx,aLEA指令与MOV指令比较LEA可将数据区任一元素的偏移地址送目的 MOV指令用offset只
9、能取数据区第一个元素的偏移地址例2: lea si,abxdi mov bx,offset aLEA指令与MOV指令比较例3:ds=2000h, a偏移地址=110h, (a)=1234h lea bx,a mov bx, a34H12Ha0110H2000HDS20000H20110H34H12Ha0110H2000HDS20000H20110H0110HBXBX1234H逻辑地址传送指令格式:LDS r , m (Load DS with pointer)功能:将源指定的段基值和偏移量送DS和目的r操作:实地址方式: r16m; DSm+2虚地址方式: r32m; DSm+4说明:源是m,
10、提供存放段基值和偏移量的内存区域首字节地址目的是16/32位通用寄存器例:LDS SI,APentium指令系统 传送指令逻辑地址传送指令格式:LES r , m功能:将源指定的段基值和偏移量送ES和目的r格式:LSS r , m功能:将源指定的段基值和偏移量送SS和目的r格式:LFS r , m功能:将源指定的段基值和偏移量送FS和目的r格式:LGS r , m功能:将源指定的段基值和偏移量送GS和目的rPentium指令系统 传送指令逻辑地址传送指令应用举例mov word ptr 3060h,0100hmov word ptr 3062h,l450hles di,3060h ;es=14
11、50h,di=0l00hlds si,3060h ;ds=l450h,si=0l00h说明:以DS:3060H为地址的连续4个内存单元中存放着一个32位的地址指针,根据使用的指令送入DS:rl6或ES:r16Pentium指令系统 传送指令输入输出指令Intel系统的内存和I/O有独立的地址空间Intel系统用于I/O寻址的地址线是16条:端口最多为21665536(64K)个地址范围0000H0FFFFH端口:接口电路中的可编程寄存器指令:IN:实现从I/O到CPU的信息传送OUT:实现从CPU到I/O的信息传送Pentium指令系统 传送指令输入/输出端口寻址直接寻址:只用于寻址地址从00
12、H0FFH这256个端口, 端口号用8位2进制数表示间接寻址:可用于寻址全部64K个端口,应首先将端口号送入DX注意:当端口地址大于0FFH时,只能采用间接寻址方式Pentium指令系统 传送指令输入指令(Input)格式: IN 累加器,端口号功能:将字节/字/双字数据从输入端口送至累加器AL/AX/EAX直接寻址:字节输入:IN AL,n字输入: IN AX,n双字输入:IN EAX,n说明:n为8位端口地址,可寻址0255共256个输入端口间接寻址:字节输入:IN AL,DX 字输入: IN AX,DX双字输入:IN EAX,DX说明:DX为16位端口地址,可寻址64K个输入端口Pent
13、ium指令系统 传送指令输出指令(Output)格式: OUT 端口号,累加器功能:将AL/AX/EAX中的信息送输出端口直接寻址:字节输出:OUT n,AL字输出: OUT n,AX双字输出:OUT n,EAX说明:n为8位端口,可寻址0255共256个输出端口间接寻址:字节输出:OUT DX,AL字输出: OUT DX,AX双字输出:OUT DX,EAX说明:DX为16位端口地址,可寻址00FFFFH,共64K个输出端口Pentium指令系统 传送指令输入输出指令应用举例例1:in al,3从端口3输入1个字节的数据到al例2:out 5,al将al中的数据输出到端口5例3:mov dx,
14、120out dx,al将al中的数据输出到端口120Pentium指令系统 传送指令转换类指令换码指令字节/字扩展指令字节交换指令Pentium指令系统 传送指令换码指令(Translate)格式:XLAT / XLATB 操作数功能:将内存指定字节单元的内容送AL说明:XLAT执行前:在内存中建立字节表格;将表格起始地址装入BX/EBX;将欲取数据在表中的位移量装入AL;XLAT执行后:将 ALDS:BX+AL注意:1.换码表长度1256个字节。2.XLATB:指向表格起始地址的基址寄存器是EBXPentium指令系统 传送指令换码指令应用举例:例:ds=2000h, bx=1100h,a
15、l=7问:执行xlat后,al的内容。mov bx,1100hmov al,07hxlat 换码指令没有显式操作数,它使用隐含寻址方式采用默认操作数。DSBX+AL表起始位置2000H1100H 20000H+ 21100H07H21107H37H XLATAL37HPentium指令系统 传送指令字节/字/双字扩展指令说明:1.无操作数指令2.用在带符号数除法指令前形成双倍长度的被除数标志位:不影响Pentium指令系统 传送指令字节/字/双字扩展指令格式:CBW (Convert byte to word)功能:将AL中的符号位扩展到AH中操作:若AL80H(正数), AH0若AL80H(
16、负数), AH0FFH例:扩展AL中的带符号数-5:AL=11111011(补码)执行CBW后,AX=1111111111111011B+5:AL=00000101(补码)执行CBW后,AX=0000000000000101BPentium指令系统 传送指令字节/字/双字扩展指令格式:CWD/CWDE (Convert word to double word)功能:CWD将AX中的符号位扩展到DX中CWDE将AX中的符号位扩展到EAX的高位操作:若AX9或AF=1将ALAL+6,AF=1若AL中高4位9或CF=1将ALAL+60H,CF=1若上述2条件均满足将ALAL+66H,CF=1,AF=
17、1标志位:AF,CF,PF,SF和ZF例:编程实现4678 设BX=4678H, CX=2556H 结果送DX MOV AL,BL ADD AL,CL DAA MOV DL,AL MOV AL,BH ADC AL,CH DAA MOV DH,ALPentium指令系统 算术运算指令压缩型BCD码减法调整指令(Decimal Adjust for Subtraction )格式:DAS功能:用在SUB/SBB后对AL中的压缩型BCD码减法结果进行调整操作:若AL中低4位9或AF=1将ALAL-6,AF=1若AL中高4位9或CF=1将ALAL-60H,CF=1若上述2条件均满足将ALAL-66H,
18、CF=1,AF=1Pentium指令系统 算术运算指令非压缩型BCD码加法调整指令(Unpacked BCD ASCII Adjust for Addition)格式:AAA功能:用在ADD/ADC后对AL中的非压缩型BCD码加法结果进行调整操作:若AL中低4位9或AF=1ALAL+6,ALAL and 0FH;AHAH+1,AF=1,CF=1标志:AF,CF说明:用ASCII码直接进行加法运算后用其调整例:已知AL=36H,BL=35H,编程求:6+5=?ADD AL,BLAAA思考:ADD BL,AL AAA Pentium指令系统 算术运算指令非压缩型BCD码减法调整指令(Unpacke
19、d BCD ASCII Adjust for Subtraction)格式:AAS功能:用在SUB/SBB后对AL中的非压缩型BCD码减法结果进行调整操作:若AL中低4位9或AF=1将ALAL-6, ALAL and 0FH AHAH-1, AF=1, CF=1说明:两ASCII码相减后可用其调整例:已知AL=36H,BL=33H,编程求:6-3=?SUB AL,BLAAS思考:SBB AL,BL AAS Pentium指令系统 算术运算指令非压缩型BCD码乘法调整指令(Unpacked BCD ASCII Adjust for Multiply)格式:AAM功能:用在MUL后对AX中的两个非
20、压缩型BCD码进行乘法操作的乘积进行调整说明:乘积最大值=81,故AH=0, AL=乘积操作:AH商(AL0AH)AL余数标志位:影响:PF,SF,ZF不影响:AF,CF,OFPentium指令系统 算术运算指令非压缩型BCD码除法调整指令(Unpacked BCD ASCII Adjust for Division )格式:AAD功能:用在DIV前将AX中的两位非压缩型BCD码转换成2进制数操作:ALAL+(AH0AH)AH0标志位:影响:PF,SF,ZF不影响:AF,CF,OFPentium指令系统 算术运算指令十进制算术指令应用举例例1:DAA或AAA必须放在( )指令之后,只对( )内
21、容进行修正例2:已知AL内容为压缩型BCD码,对它进行加1操作,下述错误程序段为加法ALINC AL DAA(B) ADD AL,1 DAA(C) ADC AL,1 DAA(D) STC ADC AL,0 DAA逻辑指令格式逻辑“与” : AND 目标操作数,源操作数逻辑“或”: OR 目标操作数,源操作数逻辑“异或”:XOR 目标操作数,源操作数逻辑“非”: NOT 目标操作数说明:1.位操作2.操作:目标(目标) 逻辑操作 (源)Pentium指令系统 逻辑指令应用:与0:清0;与1:保留标志位:1.根据运算结果置PF,SF,ZF 2.CF=OF=0 3.对AF无定义例:将1的ASCII码
22、转换为数 MOV BL,31H AND BL, 0FH00110001 (BL)00001111 0FH00000001 结果AND逻辑“与”指令(AND)Pentium指令系统 逻辑指令测试指令格式:TEST 目标操作数,源操作数操作:目标操作数 源操作数(不存结果)标志位:同AND指令应用:测试操作数1/数位的状态,控制后续程序的流向例:测试BL最低位是否为1TEST BL,01H当BL最低位是1,ZF=0;当BL最低位是0,ZF=1Pentium指令系统 逻辑指令00001001 (BL)00110000 30H00111001 结果OR逻辑“或”指令(OR)应用:或1:置1,或0:保留
23、标志位:同AND指令例:将数字9转换为相应的ASCII码 MOV BL,09H OR BL, 30HPentium指令系统 逻辑指令xxxxxxxx (BL)00001111 0Fxxxxxxxx 结果XOR逻辑“异或”指令(XOR)应用:1.异或1:取反,异或0:“保留” 2.自身异或清0标志位:同AND指令例:XOR BL, 0FHPentium指令系统 逻辑指令逻辑“非”指令(NOT)功能:目标 目标应用:对目标操作数按位取反标志位:不影响例: NOT BLNOT xxxxxxxx (BL) xxxxxxxx 结果Pentium指令系统 逻辑指令逻辑指令应用举例例1:若要测试AL中操作数
24、的第0、1、2和7位是否为0,可使用( )指令,以产生转移条件,这条指令执行后将影响的标志位是( )例2:已知(AX)=0A33AH,(DX)=0F0F0HTEST AL,87HZF、SF和PF;CF=OF=0AND AH,DLXOR AL,DHNEG AHNOT AL左侧程序段执行后,(AX)=6035H移位和循环移位指令移位指令循环移位指令带进位的循环移位指令双精度移位指令移位指令算术左移指令格式: SAL 目标操作数,COUNT操作:目标操作数左移COUNT位,最高位移入CF,最低位补0说明1.该类指令属于单操作数指令2.目标操作数为r,m3.指令中的count指出移位位数8086,移1
25、位,1可以立即数形式写入指令;不为1,移位位数由CL的值确定Pentium,移131位,移位位数由立即数或CL的值确定COUNT为0表示不移位CF0Pentium指令系统 位操作指令移位指令算术左移指令标志位:CF,OF,PF,SF,ZF(AF不确定)应用:目标操作数左移一位相当于乘2例1:BL内容左移一位 SAL BL,1例2:BL内容左移4位MOV CL,4SAL BL,CLPentium指令系统 位操作指令移位指令算术右移指令格式: SAR 目标操作数,COUNT操作:目标操作数右移COUNT位,最高位回移,最低位移入 CF标志位:同SAL应用:可用于带符号数除2例:-1202=-60(
26、-120)原=11111000, (-120)补=10001000右移一位100010001100010010111100转换成原码二化十-60CFPentium指令系统 位操作指令移位指令逻辑左移指令格式: SHL 目标操作数,COUNT操作:同SAL标志位:同SALCF0Pentium指令系统 位操作指令移位指令逻辑右移指令格式: SHR 目标操作数,COUNT操作:目标操作数右移COUNT位,最高位补0,最低位移入CF应用:无符号数除2标志位:同SALCF0Pentium指令系统 位操作指令循环移位指令循环左移指令格式: ROL 目标操作数,COUNT操作:将目标操作数最高位移至最低位,
27、同时把最高位移入CF标志位:CF,OF应用:通过判断CF检测操作数指定位的值优点:目标操作数循环移动8(字节)/16(字)位后,可恢复原状例:AX=12H,BX=34H,求AX=1234Hmov cl,8rol ax,cl ;ax=1200hadd ax,bx ;ax=1234hCFPentium指令系统 位操作指令循环移位指令循环右移指令(Rotate right)格式: ROR 目标操作数,COUNT操作:将目标操作数最低位移至最高位,同时把最低位移入 CF标志位:CF,OFCFPentium指令系统 位操作指令带进位的循环移位指令带进位的循环左移指令(Rotate Left throug
28、h carry )格式: RCL 目标操作数,COUNT操作:目标操作数和CF一起循环左移,CF值移入操作数的最低位,操作数的最高位移入CF标志位:CF,OF应用:多字/字节数据移动例:将三个字构成的内存操作数左移一位M+5 M+4 M+3 M+2 M+1 MCF0sal m,1rcl m+2,1rcl m+4,1CFPentium指令系统 位操作指令带进位的循环移位指令带进位的循环右移指令(Rotate right through carry )格式: RCR 目标操作数,COUNT操作:与RCL操作类似,只是循环方向相反标志位:CF,OFCFPentium指令系统 位操作指令移位和循环移位
29、指令应用举例例1:已知(AX)=0A5C6H(CX)=0F03HCF=1RCL AX,CLAND AH,CHRCR AX,CL执行后,(AX)= CF=81C6H1例2:已知(AX)=0FC77H(CX)=504HCF=1ROR AX,CLXCHG CH,CLSHL AX,CL执行后,(AX)= CF=0F8E0H1双精度移位指令(用于32位机)格式:操作码 目的操作数,源, COUNT特点:1.目的操作数:r/m2.源操作数:只能是通用寄存器r3.COUNT:立即数/CL,取值范围131说明:操作数为16/32位(不能是8位)双精度移位指令双精度左移指令(Shift left double)
30、格式:SHLD 目的操作数,源,COUNT功能:目的左移COUNT位,源高端依次填入空位,源不变例:SHLD EDX, EAX, 16CF目的操作数源操作数双精度移位指令双精度右移指令(Shift right double)格式:SHRD 目的操作数,源,COUNT功能:目的右移COUNT位,源低端依次填入空位,源不变例:SHRD EDX, EAX, 16目的操作数源操作数CF位处理指令(用于32位机)格式:操作码 目的操作数,源操作数共性:由源操作数直接或间接给出目的操作数中测试位的位号,并把测试位的值送CF区别:1.位测试指令BT2.测试位置1指令BTS:将测试位置13.测试位置0指令BT
31、R:将测试位置04.测试位取反指令BTC:将测试位取反位处理指令(用于32位机)特点:1.目的操作数:16/32位r/m2.源操作数:8位立即数/与目的操作数等长的通用r目的操作数中测试位号的确定:1.若源操作数小于目的操作数的长度,源为测试位位号2.源除以目的的长度,其余数作为测试位位号3.若目的为内存操作数,应将源除以目的长度之商作为位移量加入有效地址,而将余数作为测试位位号例1:BTS AX, 1设AX=1234H;执行BTS后,CF=0,AX=1236H 例2:BTC EAX, ECX设EAX=12345678H;ECX=64H;因为ECX/EAX的长度=64H/20H,余4,故测试位
32、是EAX的D3位;执行BTC后, CF=1,EAX=12345668H位扫描指令(用于32位机)正向位扫描指令(Bit Scan Forward)格式:BSF 目的操作数,源操作数功能:从低位逐位扫描源操作数,若全为0,置ZF=1,否则ZF=0,把检索到的第1个1的位号送目的寄存器说明:源:16/32位r/m,目的:与源等长的通用r例:BSF CX, AX设AX=3344H,执行BSF后,ZF=0,CX=2位扫描指令(用于32位机)反向位扫描指令(Bit Scan Reverse)格式:BSR 目的操作数,源操作数功能:从高位逐位扫描源操作数,若各位全为0,置ZF=1,否则ZF=0,并把检索到
33、的第1个1的位号送目的寄存器特点:源:16/32位r/m,目的:与源等长的通用r例: BSR EBX, EAX设EAX=11223344H,执行BSR后,ZF=0,EBX=28串操作指令及其重复前缀(概念)串(String):内存中一序列字节/字/双字数据串操作:对一组数据进行某种相同的操作串操作数寻址方式定义:使用隐含变址寄存器,在串指令操作过程中自动修改其内容,以使其指向下一步操作的内存单元地址源操作数地址:DS:SI /ESI目标操作数地址:ES:DI /EDI指针(SI/ESI/DI/EDI)修改:DF=0,SI/ESI/DI/EDI递增DF=1,SI/ESI/DI/EDI递减指针修改
34、量:按数据类型字节/字/双字为1/2/4设置方向标志指令清除方向标志指令(Clear direction flag)格式:CLD功能:使DF=0应用:执行串操作指令时使地址自动增量置方向标志指令(Set direction flag)格式:STD功能:使DF=1应用:执行串操作指令时使地址自动减量串操作类指令串传送指令重复前缀串比较指令串搜索指令取串指令存串指令串输入指令串输出指令串传送指令(Move string)格式:MOVS 目标串,源串 MOVSB ;字节传送 MOVSW ;字传送 MOVSD ;双字传送操作:ES:DI (EDI)DS:SI (ESI)标志位:不影响偏移量 方向标志
35、源串地址 目标串地址 字节操作 DF=0/1 SI(ESI) SI(ESI) +/-1 DI(EDI) DI(EDI) +/-1 字操作 DF=0/1 SI(ESI) SI(ESI) +/-2 DI(EDI) DI(EDI) +/-2双字操作 DF=0/1 SI(ESI) SI(ESI) +/-4 DI(EDI) DI(EDI) +/-4串传送指令应用举例在内存中传送100个字节数据DATA SEGMENT A DB 3,5,1,7, B DB 100 DUP(?) MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,A LEA DI,B MOV CX,100 CLD
36、AGAIN: MOVSB DEC CX JNZ AGAIN 重复前缀(Repeat)格式:REP 串操作指令功能:重复串操作,直到CX=0为止操作:1.若CX=0,退出REP2.若CX0,CXCX-13.执行其后的串操作指令4.重复13适用对象:MOVS,STOS注意:重复前缀必须放在串操作指令前REP应用举例DATA SEGMENT A DB 3,5,1,7, B DB 100 DUP(?) MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,A LEA DI,B MOV CX,100 CLD REP MOVSB在内存中传送100个字节数据串处理编程步骤1.装入地址
37、寄存器源串地址:DS:SI(ESI)目的串地址:ES:DI(EDI)2.若使用重复前缀,装入CX3.设置方向标志若DF=0,串操作由地址较小的单元向地址较大的单元进行若DF=1,串操作由地址较大单元向地址较小单元进行重复前缀(Repeat)格式:REPE/REPZ 串操作指令功能:两操作数比较相等时重复串操作操作:1.若CX=0/ZF=0时退出重复串操作2.否则CXCX-13.执行其后的串操作指令4.重复13适用对象:CMPS,SCAS重复前缀(Repeat)格式:REPNE/REPNZ 串操作指令功能:两操作数比较不相等时重复串操作操作:1.若CX=0/ZF=1时退出重复串操作2.CXCX-
38、13.执行其后的串操作指令4.重复13适用对象:CMPS,SCAS串比较指令(Compare string)格式:CMPS 源串,目标串 CMPSB CMPSW CMPSD操作: DS:SI(ESI) -ES:DI(EDI)标志位:6个状态标志偏移量:按DF修改SI(ESI)和DI(EDI)应用:比较两串是否相等例:比较长度都为LEN的STR1和STR2是否相同PUSH ES ;保护现场PUSH DSPOP ES ;ES=DSLEA SI,STR1 ;源串偏移量LEA DI,STR2 ;目的串偏移量MOV CX,LEN ;数据个数CLD ;DF=0 REPZ CMPSB;数据相等时重复比较两串
39、内容JZ L1 ;CX=0转移JA L2 ;数据不相等转移POP ES ;恢复现场串扫描指令(Scan string)格式:SCAS 目标串 SCASB SCASW SCASD操作:AL-ES:DI/AX-ES:DI/EAX-ES:EDI标志位:6个状态标志偏移量:依据DF值修改DI/EDI应用:检测串中是否包含指定字符例:搜索长度为LEN的STR串中是否有字母APUSH ESPUSH DSPOP ESLEA DI,STRMOV CX,LENMOV AL,ACLDREPNZ SCASB ;与AL不相等继续找JZ FOUND ;找到转移POP ES存串指令(Store string)格式:STOS 目标串 STOSB S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年长沙航空职业技术学院高职单招职业适应性测试模拟试题带答案解析
- 2026年漳州卫生职业学院高职单招职业适应性考试备考题库带答案解析
- 2026年湖北国土资源职业学院单招职业技能笔试模拟试题带答案解析
- 2026年重庆交通职业学院高职单招职业适应性测试参考题库带答案解析
- 2026年南京铁道职业技术学院单招职业技能笔试参考题库带答案解析
- 2026年江南影视艺术职业学院高职单招职业适应性测试备考题库带答案解析
- 2026年四川文轩职业学院高职单招职业适应性考试备考题库带答案解析
- 2026年盐城工业职业技术学院高职单招职业适应性考试模拟试题带答案解析
- 2026年陕西交通职业技术学院单招职业技能笔试备考试题带答案解析
- 2026年眉山职业技术学院单招职业技能考试模拟试题附答案详解
- FZ∕T 61002-2019 化纤仿毛毛毯
- 《公输》课文文言知识点归纳
- 碎石技术供应保障方案
- 23秋国家开放大学《机电一体化系统设计基础》形考作业1-3+专题报告参考答案
- 开封银行健康知识讲座
- 垃圾房改造方案
- 2023年工装夹具设计工程师年终总结及下一年计划
- 闭合导线平差计算表-电子表格自动计算
- 第七章腭裂课件
- 《大卫·科波菲尔》
- 电子档案需求规格说明书内容完整
评论
0/150
提交评论