版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Glut _C 2013-08180X86指令系统(续)指令系统(续)Glut _C 2013-082 算术运算指令包括加、减、乘、除基本运算指令,十进制运算术运算指令包括加、减、乘、除基本运算指令,十进制运算的调整指令。算的调整指令。可以进行带符号数的运算,也可以进行无符号数的运算。可以进行带符号数的运算,也可以进行无符号数的运算。Glut _C 2013-0832.3.2 加减法运算加减法运算加减法运算结果可以存放在通用寄存器中,也可以存放在存加减法运算结果可以存放在通用寄存器中,也可以存放在存储器中。储器中。通用寄存器REG+-立即数IMM通用寄存器REG存储器MEM或或存储器MEM+-
2、立即数IMM通用寄存器REG或结果保存在通用寄存器中结果保存在存储器中Glut _C 2013-084加法运算指令有加法运算指令有非压缩BCD码调整按结果设置标志,不影响该标志位Glut _C 2013-085减法运算指令有减法运算指令有Glut _C 2013-086乘法运算指令有乘法运算指令有Glut _C 2013-087除法运算指令有除法运算指令有Glut _C 2013-0882.3.2.1 加法运算指令加法运算指令1. 不带进位加法指令不带进位加法指令(1) 格式:格式: ADD dst, src(2) 功能:功能: 两个数相加,结果送两个数相加,结果送 dst (dst) = (
3、dst) + (scr)(3) 说明:说明:l操作数可以是字节型,也可以是操作数可以是字节型,也可以是16位、位、32位位。l源操作数可以使用立即数、寄存器操作数,或存储器操作数源操作数可以使用立即数、寄存器操作数,或存储器操作数l目的操作数可以使用寄存器操作数或存储器操作数,不能是立目的操作数可以使用寄存器操作数或存储器操作数,不能是立即数。即数。例如:例如: ADD AX, 3A5FH ; ADD AX, BX+1000H; ADD BX+DI, AX; Glut _C 2013-0892. 带进位加法指令带进位加法指令(1)格式:)格式: ADDC dst, src(2)功能:除了两个操
4、作数相加外,再加上进位信)功能:除了两个操作数相加外,再加上进位信号(将进位位加到最低位)。号(将进位位加到最低位)。 (dst) = (dst)+(src)+CF ;CF是进位标志。是进位标志。 例如:例如:ADDC AX,BX ; (AX)(AX)+(BX)+CFADC AL, BL ;(AL)(AL)+(BL)+CFADC AX, 0100HBX ; (AX)(AX)+(0100H+BX)+CF Glut _C 2013-0810ADC指令的用途是可以进行多字长的加法运算。指令的用途是可以进行多字长的加法运算。 例如对于例如对于8086,两个,两个32位的数进行相加,第一个位的数进行相加
5、,第一个数存放在存储器中以符号地址数存放在存储器中以符号地址DAT1开始的存储空间,开始的存储空间,第二个数存放在第二个数存放在DAT2开始的存储空间。计算它们的和,开始的存储空间。计算它们的和,并存放在并存放在DAT1。D0D15D16D31dstscr+dst 9,或产生,或产生向高位的进位,则在相应的向高位的进位,则在相应的BCD位位+6。例如上面的结果,例如上面的结果, 低低4位位=1101,大于,大于9 0101 1101+ 0000 0110 0110 0011结果变为结果变为正确的正确的BCD码运码运算结果了算结果了Glut _C 2013-0818 1000 1001+ 011
6、1 10011 0000 0010进位进位=1进位进位=1 89+ 79 1681 0000 0010+ 0110 01101 0110 10001 6 8Glut _C 2013-0819我们设计程序时,如果参与运算的数据是压缩的我们设计程序时,如果参与运算的数据是压缩的BCD码数据,则在做完加法运算后,需要使用一条码数据,则在做完加法运算后,需要使用一条DAA指令进行调整。指令进行调整。 注意这时的加法运算,应该使用注意这时的加法运算,应该使用8位的加法运算位的加法运算 ADD AL, src目的操作数是目的操作数是AL。 ADD AX, src 对高对高8位无法进行调整。位无法进行调整。
7、DAA 指令影响标志位,但对指令影响标志位,但对OF没有定义。没有定义。 对对CF的影响的影响高高4位大于位大于9,或原来加法运,或原来加法运算算CF=1,则,则CF=1,作为向高位的进位信号。,作为向高位的进位信号。Glut _C 2013-08205. 非压缩非压缩BCD码加法运算调整指令码加法运算调整指令(1)格式:)格式: AAA(2)功能:)功能: 对非压缩的对非压缩的BCD码加法运算进行调整。码加法运算进行调整。(3)对标志位的影响:只影响)对标志位的影响:只影响AF,CF 。 与与DAA类似,它也是跟在以类似,它也是跟在以AL为目的操作数的字节性为目的操作数的字节性加法指令后面使
8、用。加法指令后面使用。 Glut _C 2013-0821 计算机中的数据格式,是我们在编写程序时确定计算机中的数据格式,是我们在编写程序时确定的,因此,是否在加法指令后使用的,因此,是否在加法指令后使用DAA或或AAA指令,指令,是由我们设计程序时确定的是由我们设计程序时确定的数据是数据是BCD格式,一格式,一定需要调整,是压缩的定需要调整,是压缩的BCD码,则用码,则用DAA调整,是非调整,是非压缩的压缩的BCD码,则使用码,则使用AAA调整。调整。 加法指令,使用加法指令,使用8位的加法运算,以位的加法运算,以AL作为目的作为目的操作数。操作数。Glut _C 2013-08226. 交
9、换及相加指令交换及相加指令(1) 格式格式XADD dest, reg(2)功能:)功能:将目的操作数和源操作数的数据进行交换,然后把源将目的操作数和源操作数的数据进行交换,然后把源操作数中的数据和目的操作数中的数据相加后送入目的操作操作数中的数据和目的操作数中的数据相加后送入目的操作数。数。destregdest+regdest相当于两条指令相当于两条指令XCHG dest, regADD dest, regGlut _C 2013-08232.3.2.2 减法指令减法指令无借位的减法指令无借位的减法指令(1)格式:)格式: SUB dst , src(2)功能:)功能: (dst) (ds
10、t) (src)对操作数的限制同加法指令对操作数的限制同加法指令ADD, ADC。例如:例如:SUB AX , 0200H ; 目的操作数寄存器,原操目的操作数寄存器,原操 ;作数为立即数;作数为立即数 SUB AX, BX ;都是寄存器操作数;都是寄存器操作数 SUB AL, BH SUB DI+100H, BX ;相对寻址;相对寻址该指令影响标志位。此时的该指令影响标志位。此时的CF是借位标志位。是借位标志位。Glut _C 2013-08242. 带进位位的减法指令带进位位的减法指令(1 1)格式:)格式: SBB dst, srcSBB dst, src(2 2)功能:)功能:(dst
11、)(dst)(dst)-(src)-CF(dst)-(src)-CF 它与减法指令它与减法指令SUBSUB的区别在于还减去借位信号的区别在于还减去借位信号CFCF。它与带进位位的加法。它与带进位位的加法指令一样,用于做多字(字节)的减法。指令一样,用于做多字(字节)的减法。例如例如 SBB AX, 2100HSBB AX, 2100H SUB AL, BL SUB AL, BL等。对标志位的影响同等。对标志位的影响同SUBSUB指令。指令。Glut _C 2013-08253. 减一指令减一指令(1)格式:)格式: DEC dst(2)功能:)功能: (dst) (dst)-1例如:例如: 如
12、果如果(AX)=1234H,执行,执行 DEC AX后,后,(AX)=1233H DEC WORD PTR BP 对于堆栈区间对于堆栈区间BP指向的一个字内容指向的一个字内容-1。 WORD PTR 告诉编译程序,是字操作数。告诉编译程序,是字操作数。该指令影响标志位,但不影响该指令影响标志位,但不影响CF。Glut _C 2013-08264. 求补码指令求补码指令(1 1) 格式:格式: NEG dstNEG dst(2 2)功能:执行)功能:执行 (dst) (dst) 0- (dst) 0- (dst) 的操作,它实际上就是的操作,它实际上就是将将(dst)(dst)的内容逐位取反的内
13、容逐位取反+1+1。(3 3)操作数可以)操作数可以8 8位,也可以是位,也可以是1616位、位、3232位。位。注意:补码的定义。在编写程序时,要判断待求补的数据注意:补码的定义。在编写程序时,要判断待求补的数据(原码),如果是正数(或(原码),如果是正数(或0 0),补码就等于原码,如果是负),补码就等于原码,如果是负数,则除符号位外,逐位取反数,则除符号位外,逐位取反+1+1。因此,将负数的符号位先取反(变为因此,将负数的符号位先取反(变为0 0),再使用),再使用NEGNEG指令。指令。 Glut _C 2013-0827 如果一个正数调用如果一个正数调用NEG指令,实际上求出的是它指
14、令,实际上求出的是它的机器负数。的机器负数。 例如例如 (AL)=14H, 执行执行 NEG AL 指令执行后指令执行后 (AL) = 0 ECH -14H如果一个负数,如果不先保存符号位,使用如果一个负数,如果不先保存符号位,使用NEG指令指令后,实际上变成了他的绝对值。后,实际上变成了他的绝对值。例如:例如: MOV AL, 0ECH ;(al)= -14h NEG AL ;(al)= 14hGlut _C 2013-0828例:内存数据段存放了例:内存数据段存放了200个带符号数(字节),首个带符号数(字节),首地址为地址为TAB1,要求将各数取绝对值后存入以,要求将各数取绝对值后存入以
15、TAB2为为首址的内存区。首址的内存区。 由于由于200个带符号数中可能既有正数,又有负数,个带符号数中可能既有正数,又有负数,因此先要判断正负。如为正数,可以原封不动地传送因此先要判断正负。如为正数,可以原封不动地传送到另一内存区;如为负数,则需先求补即可得到负数到另一内存区;如为负数,则需先求补即可得到负数的绝对值,然后再传送。程序流程框图如下:的绝对值,然后再传送。程序流程框图如下:Glut _C 2013-0829开始取地址SITAB1DI TAB2循环次数CX200AL SI(AL)0NEG ALDI(AL)NEXTYNCHECK修改SI,DI指向下一字节循环次数(CX)-1(CX)
16、0结束Glut _C 2013-0830 LEASI,TAB1;(SI)源地址指针源地址指针LEA DI,TAB2 ;(DI)目标地址指针目标地址指针 MOV CX,200 ;(CX)循环次数循环次数 CHECK: MOVAL,SI ;取一个带符号数到;取一个带符号数到ALORAL,AL ;AL内容不变,但使之影响标志内容不变,但使之影响标志JNSNEXT ;若;若(SF)=0,则转,则转NEXTNEG AL ;否则求补;否则求补NEXT: MOV DI,AL ;传送到目标地址;传送到目标地址INC SI ;源地址加;源地址加1INC DI ;目标地址加;目标地址加1DEC CX ;循环次数减
17、;循环次数减1JNZ CHECK ;如不等于零,则转;如不等于零,则转CHECKHLT ;停止;停止 Glut _C 2013-08315. 比较指令比较指令(1)格式:)格式: CMP dst ,src(2)功能:)功能: 做做 (dst)于于 (src) 的比较,设置标志位。的比较,设置标志位。(实际上是进行(实际上是进行(dst) (src) 运算,但不保存结果,只是改变运算,但不保存结果,只是改变标志位)标志位) 该指令一般用于比较两个数的大小,依据比较结果进行程该指令一般用于比较两个数的大小,依据比较结果进行程序的转移控制,是程序转到不同的分支。序的转移控制,是程序转到不同的分支。
18、Glut _C 2013-08326 . 压缩的压缩的BCD码减法调整指令码减法调整指令(1)格式:)格式: DAS(2)功能:对压缩的)功能:对压缩的BCD减法运算结果进行调整。减法运算结果进行调整。(3)对标志位的影响:)对标志位的影响: 影响影响 CF,AF,PF,SF,ZF,但不影响,但不影响CF。 它类似于它类似于DAA指令,用于指令,用于8位的压缩位的压缩BCD数据减法指令之后。数据减法指令之后。Glut _C 2013-08337 . 7 . 非压缩的非压缩的BCDBCD减法调整指令减法调整指令(1)格式:)格式: AAS(2)功能:对非压缩的)功能:对非压缩的BCD减法运算结果
19、进行调减法运算结果进行调整。整。(3)对标志位的影响:)对标志位的影响: 只影响只影响AF, CF 注意:调整指令都跟在注意:调整指令都跟在8位的加法、减法运位的加法、减法运 算指令后面。算指令后面。Glut _C 2013-08341. 无符号乘法指令无符号乘法指令(1)格式:)格式: MUL src src 可以是字节数据,也可以是可以是字节数据,也可以是16位、位、32的字数据。的字数据。(2)功能:)功能: 将原操作数与默认的目的操作数(将原操作数与默认的目的操作数(AX或或AL)相乘,相乘,结果保存在结果保存在AX或或DX,AX中。中。 如果如果src是字节操作数,则是字节操作数,则
20、 (AX) (AL)(src)例如:例如: MUL BL ; (AX) (AL) (BL) MUL BYTE PTR SI ;(AX) (AL) ( (SS)+(SI) ) SI所指存储单元内容所指存储单元内容2.3.2.3 乘法指令乘法指令Glut _C 2013-0835 如果如果src是字操作数,是字操作数,l 对于对于8086:则:则 (DX,AX)(AX) (src)其中,DX保存结果的高16位,AX保存结果的低16位。例如: MUL BX ;(DX,AX) (AX) (BX) MUL WORD PTR DI+100Hl 对于对于80386: EAX(AX) (src)Glut _C
21、 2013-0836对标志位的影响:影响对标志位的影响:影响CF,OF. 如果乘积的高半部分不为如果乘积的高半部分不为0,则,则CF=1,OF=0,否则否则CF-0,OF=0. 实际上始终实际上始终 OF=0。Glut _C 2013-08372. 带符号的乘法指令带符号的乘法指令(1)格式:)格式: IMUL src(2)功能:与)功能:与MUL相同,仅两个数是带符号的数。相同,仅两个数是带符号的数。(3)对标志位的影响:同)对标志位的影响:同MUL,运算结果只影响状,运算结果只影响状态标志态标志CF、OF。 Glut _C 2013-08383. 3. 非压缩非压缩BCDBCD乘法调整指令
22、乘法调整指令(1)格式:)格式: AAM(2)功能:对)功能:对AX中的两个非压缩中的两个非压缩BCD码乘法的结果进行码乘法的结果进行调整。调整。 注意,两个非压缩的注意,两个非压缩的BCD码相乘,才能进行调整得到码相乘,才能进行调整得到正确的结果正确的结果8位乘法。位乘法。例如:例如: MOV AL, 09H MOV CL, 04H MUL CL AAM ;(AX)=36H-AH=3H,AL=6H Glut _C 2013-08392.3.2.4 除法指令除法指令1. 1. 无符号除法指令无符号除法指令(1 1)格式:)格式: DIV srcDIV srcsrc src 可以是字节数据,也可
23、以是可以是字节数据,也可以是1616位位/32/32位的字数据。位的字数据。(2 2)功能:)功能: 将两个无符号数做除法运算,商和余数分别保将两个无符号数做除法运算,商和余数分别保存在指定位置。存在指定位置。 如果如果srcsrc是字节操作数,则是字节操作数,则 被除数在被除数在AXAX, (AL) (AL) (AX)/(src)( (AX)/(src)(商)商) (AH) (AH) 余数余数 例如:例如: DIV BL DIV BL ; DIV BYTE PTR SIDIV BYTE PTR SI对于对于PentiumPentium,可以使用,可以使用3232位操作数。位操作数。Glut
24、_C 2013-0840 如果如果src是字操作数,则被除数在寄存器对是字操作数,则被除数在寄存器对DX,AX中,中,DX为高为高16位,位,AX为低为低16位,作位,作 (DX,AX)/(src)运算,运算, (AX)保存保存商商 , (DX) 保存余数。保存余数。例如: DIV BX ; DIV WORD PTR DI+100H(3) 对标志位的影响:不产生有效标志位,即对标志位的影响:不产生有效标志位,即CF,AF,OF,SF,ZF都是不确定的。都是不确定的。 Glut _C 2013-08412. 2. 带符号除法指令带符号除法指令(1)格式:)格式: IDIV src src 可以是
25、字节数据,也可以是可以是字节数据,也可以是16位的字数据。位的字数据。(2)功能:)功能: 将两个带符号数做除法运算,商和余数分别保存将两个带符号数做除法运算,商和余数分别保存在指定位置。在指定位置。其它与其它与DIV指令相同。指令相同。(3)当被除数位数不够时,需要进行扩展。当被除数位数不够时,需要进行扩展。Glut _C 2013-08423. 3. 字节扩展指令字节扩展指令(1)格式:)格式: CBW(2)功能:把)功能:把AL中的带符号数扩展为中的带符号数扩展为16为字长(符号位扩展为字长(符号位扩展到到AH中)。中)。例如例如 (AL)= 35H, (AH=0),执行,执行CBW指令
26、后,指令后, (AX)=0035H (AL)=84H(-60), 则执行则执行CWB指令后指令后 (AX)=0FF84H(-60)。)。Glut _C 2013-08434. 4. 字扩展指令字扩展指令(1)格式:)格式: CWD(2)功能:将)功能:将AX中的符号位扩展到中的符号位扩展到DX中。中。例如:例如: (AX)=8FF3H, (DX)=0,执行,执行CWD后后 (DX)=0FFFFH,(AX)=8FF3HGlut _C 2013-08448086/8088CPU执行除法时规定:除数只能是被除数的一半字长。当被除数为16位时,除数应为8为;当被除数为32位时,除数应为16为AXAXD
27、XDX商余数16位32位除数被除数源操作数AL源操作数AHAX商余数8位16位被除数除数Glut _C 2013-0845 对于无符号的数,只要将高位清对于无符号的数,只要将高位清0,对于带符号,对于带符号的数的除法,将补码扩展,必须考虑符号。用符号扩的数的除法,将补码扩展,必须考虑符号。用符号扩展指令可以方便的进行扩展。展指令可以方便的进行扩展。扩展指令主要用于在除法指令前,将被除数扩展到所扩展指令主要用于在除法指令前,将被除数扩展到所需要的字长。例如需要的字长。例如 -47/5 -47=10101111B, 补码:补码:11010001B(0D1H) MOV AL, 0D1H MOV BL
28、,05H CWB ;带符号扩展为;带符号扩展为16位。位。 IDIV BLGlut _C 2013-0846当除数是字节数据时,被除数必须放在当除数是字节数据时,被除数必须放在AX中;当除中;当除数是字数据时,被除数必须放在数是字数据时,被除数必须放在DX,AX中。中。除法指令运算结果对状态标志无定义。除法指令运算结果对状态标志无定义。8086/8088规定规定IDIV指令运算结果余数的符号与被除指令运算结果余数的符号与被除数相同。数相同。带符号数除法运算中,当被除数位数不够时,需要带符号数除法运算中,当被除数位数不够时,需要进行带符号扩展。进行带符号扩展。Glut _C 2013-08475
29、. 5. 非压缩非压缩BCDBCD码除法调整指令码除法调整指令(1)格式:)格式: AAD(2)功能:将被除数)功能:将被除数AX的非压缩的非压缩BCD码调整为二进制数,在相除。码调整为二进制数,在相除。该指令应该放在除法指令前面。该指令应该放在除法指令前面。例如:例如:103/6 MOV AX,0103 MOV BL,06 AAD DIV BLGlut _C 2013-0848几点注意:几点注意: 一条指令中可以包含一个或多个操作数一条指令中可以包含一个或多个操作数 涉及一个操作数的指令称为单操作数指令涉及一个操作数的指令称为单操作数指令 如位移量或立即数为如位移量或立即数为1616位,那么
30、低位在前,高位在后位,那么低位在前,高位在后Glut _C 2013-08492.3.3 逻辑运算逻辑运算逻辑运算指令逻辑运算指令 基本逻辑运算:基本逻辑运算:求补求补与与或或非非异或异或逻辑指令影响标志位。逻辑指令影响标志位。Glut _C 2013-08501. 求补指令求补指令 NEG(1) 格式格式NEG DEST ; (2)功能)功能将操作数将操作数DEST 连同符号位取反,在最低位连同符号位取反,在最低位+1.注意:注意: 该指令不是求补码指令。该指令不是求补码指令。如果如果DEST是一个补码,则是一个补码,则NEG DEST是求是求DEST的负数。的负数。DEST: 可以是通用寄
31、存器(可以是通用寄存器(AX DX,AL,AHDL,DH) 也可以是存储器操作数(可以使用各种寻址方式)也可以是存储器操作数(可以使用各种寻址方式)Glut _C 2013-0851例如例如 3 它的原码它的原码 0000 0011 补码补码 0000 0011MOV AL, 00000011BNEGAL; 1111 1100+00000001;=1111 1101B它就是它就是-3的补码的补码NGE指令实际上是求操作数的机器负数。指令实际上是求操作数的机器负数。再例如:再例如: BL=1100 1110B(-50)NEG BL;BL= 0011 0001+00000001=00110010B
32、; = 50 得到的是得到的是 50的负数。的负数。Glut _C 2013-0852lNEG 与求补码的区别:与求补码的区别: 无论操作数是正还是负数,均是连无论操作数是正还是负数,均是连同符号位一起,每一位都取反,最低位同符号位一起,每一位都取反,最低位+1.l操作数寻址:通用寄存器,存储器(可以使用各种寻址方式)。操作数寻址:通用寄存器,存储器(可以使用各种寻址方式)。l操作数位数:操作数位数:8086: 8位、位、16位位80386等等32位处理器:位处理器:8、16、32位位教材上给出的例子:教材上给出的例子: AX FFFBH (-5) 执行执行 NEG AX 后后 AX 0005
33、H (5)Glut _C 2013-08532. 逻辑非逻辑非 NOT(1) 书写格式书写格式NOT DEST(2)功能:)功能: 将将DEST逐位取反。逐位取反。例如:例如:AX= 0005h (0000 0000 0000 0101B)执行执行 NOT AX; AX=1111 1111 1111 1010BBL=0F6H (1111 0110B) 执行执行 NOT BL 后,后,BL= 0000 1001B (09H)Glut _C 2013-08543. 逻辑与(逻辑与(AND)、或()、或(OR)、异或()、异或(XOR)运算指令)运算指令 (1) (1) 书写格式书写格式AND DE
34、ST, SOURCE ;DEST=DEST And SOURCEAND DEST, SOURCE ;DEST=DEST And SOURCEOR DEST, SOURCE ;DEST=DEST Or SOURCE OR DEST, SOURCE ;DEST=DEST Or SOURCE XOR DEST, SOURCE ;DEST=DEST Xor SOURCE XOR DEST, SOURCE ;DEST=DEST Xor SOURCE (2 2)逻辑运算:)逻辑运算:逐位进行。逐位进行。(3 3)应用例)应用例ANDAND指令通常用于清除指令通常用于清除DESTDEST的某些位。的某些位。
35、比如:比如:AL= 10010101BAL= 10010101BANDANDALAL,0FH0FH;ALAL中内容和中内容和0FH0FH相与,结果在相与,结果在ALAL;AL=0000 0101B AL=0000 0101B 清除高清除高4 4位位;只要是;只要是SOURCE=0的位就被清的位就被清为为0Glut _C 2013-0855逻辑或可用于将逻辑或可用于将DEST的某些位设置为的某些位设置为1例如:例如: BL=0001 1101B,现需要将高,现需要将高4位全设为位全设为1OR BL,0F0H ; BL= 1111 1101B只要是只要是SOURCE=1的位就被置为的位就被置为1异
36、或指令可用于对某些位取反异或指令可用于对某些位取反例如:例如: AX= 1101 0001 1011 1000BXOR AX, 1111 0000 0000 1111B ;将最高和最低;将最高和最低4位取反位取反 ;AX= 0010 0001 1011 0111B只要是只要是SOURCE=1的位就被取反。的位就被取反。XORXOR AX AX,AXAX;AXAX内容本身进行异或,结内容本身进行异或,结 ;果;果AXAX清零清零 Glut _C 2013-08564. 测试指令测试指令 TESTTESTTEST和和ANDAND执行同样操作,但执行同样操作,但TESTTEST指令指令不送回操作结果
37、不送回操作结果,而,而仅仅影响标志位。仅仅影响标志位。如:如: TEST TEST AXAX,8000H8000H;如;如AXAX的最高位为的最高位为1 1,则,则ZFZF ;0 0,否则,否则ZFZF1 1 Glut _C 2013-08572.3.4 移位指令移位指令 1. 1. 非循环移位指令非循环移位指令4 4条移位指令:条移位指令:算术左移指令算术左移指令SALSAL逻辑左移指令逻辑左移指令SHLSHL算术右移指令算术右移指令SARSAR逻辑右移指令逻辑右移指令SHRSHRGlut _C 2013-0858移位指令移位指令 SALSAL算数算数左移左移 SHLSHL逻辑逻辑左移左移
38、SARSAR算术算术右移右移(a)(a) SHRSHR 逻辑逻辑右移右移符号位不变符号位不变Glut _C 2013-08592. 2. 循环移位指令循环移位指令4 4条循环移位指令条循环移位指令循环左移指令循环左移指令ROLROL循环右移指令循环右移指令RORROR带进位位的循环左移指令带进位位的循环左移指令RCLRCL带进位位的循环右移指令带进位位的循环右移指令RCRRCRGlut _C 2013-0860循环移位指令循环移位指令ROLROL循环左移循环左移(b b)RORROR循环右移循环右移(c c) RCLRCL带进位位的循环带进位位的循环左移左移(d d)RCRRCR 带进位位的循
39、环带进位位的循环右移右移Glut _C 2013-08612.3.5 位搜索指令位搜索指令(1) 格式格式BSF REG , SOURCE;由低向高搜索;由低向高搜索BSR REG , SOURCE ;由高向低搜索;由高向低搜索(2)功能:将搜到的第一个为)功能:将搜到的第一个为1的位的位置值送的位的位置值送REG,并设,并设置标志置标志ZF=0。如果。如果SOURCE=0(搜不到(搜不到=1的位),则设置的位),则设置标志标志ZF=1.注:注: SOURCE可以是寄存器或存储器操作数可以是寄存器或存储器操作数 目的操作数只能是目的操作数只能是16位或位或32位寄存器位寄存器REG。 该指令只
40、有该指令只有80386及以后的及以后的32位处理器才有。位处理器才有。Glut _C 2013-08622.3.6 位测试指令位测试指令 BT(1)格式)格式BT DEST, SOURCE;测试指定位;测试指定位 BTC DEST, SOURCE;测试完取反指定位;测试完取反指定位BTR DEST, SOURCE;测试完清零指定位;测试完清零指定位BTS DEST, SOURCE;测试完置;测试完置1指定位指定位(2)功能:将)功能:将DEST的指定位送的指定位送CF(测试测试DEST的指定位,的指定位,=1,CF置置1,=0,CF=0,实际上就是将指定位送,实际上就是将指定位送CF).l该指令通常放在条件转移指令该指令通常放在条件转移指令JC(或或JNC)前前.lDEST: 可以是可以是REG、MEM操作数,操作数,16位或位或32位位lSOURCE:立即数或立即数或REG, 取值范围与取值范围
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国折叠电动三轮车数据监测研究报告
- 绳正法整正曲线课程设计
- 计价与计量教学课程设计
- 2024至2030年中国玻璃钢扶梯数据监测研究报告
- 2024至2030年中国牛皮刀鞘行业投资前景及策略咨询研究报告
- 2024年固定修车板项目可行性研究报告
- 2024至2030年中国全自动切纸机数据监测研究报告
- 2024年中国针织双向弹力布市场调查研究报告
- 中国高龄健康消费市场营销现状及竞争战略规划研究报告(2024-2030版)
- 2024年中国甘草酸三钾盐市场调查研究报告
- 公园保洁服务投标方案
- 食品保质期延长技术研究
- 初中数学试题大全(六十九)尺规作图难题
- 2024-2030年中国索道缆车市场运行状况与未来经营模式分析报告
- 高一思想政治上册2024-2025学年达标测试试卷及答案部编版
- SHT+3413-2019+石油化工石油气管道阻火器选用检验及验收标准
- 09BJ13-4 钢制防火门窗、防火卷帘
- 初二广东省深圳市道德与法治上册期中测试试题及答案
- 古诗词诵读《江城子-乙卯正月二十日夜记梦》公开课一等奖创新教学设计统编版高中语文选择性必修上册
- 单身证明书12篇
- 备战2024年高考英语考试易错点12 名词性从句(4大陷阱)(解析版)
评论
0/150
提交评论