pentiun指令系统之算术运算指令.ppt
《pentiun指令系统之算术运算指令.ppt》由会员分享,可在线阅读,更多相关《pentiun指令系统之算术运算指令.ppt(60页珍藏版)》请在三一办公上搜索。
1、内容:提供加、减、乘、除、转换五种基本算术操作;利用十进制调整指令和ASCII调整指令对BCD码表示的 十进制数进行算术运算;对带符号数与无符号数进行乘、除运算。(一)加法指令(Addition)(二)减法指令(Subtraction)(三)乘法指令(Multiplication)(四)除法指令(Division)(五)类型转换指令(Type Trans)(六)BCD码运算指令,二算术运算指令(Arithmetic),特点:大部分都影响标志位,不同指令影响不同:(1)加、减法指令影响 SF,ZF,AF,PF,CF,OF;(2)加1和减1指令不影响CF;(3)乘法指令影响CF,OF;(4)除法指
2、令使大部分标志位的状态不确定;(5)对BCD码调整指令对标志位的影响不同;,源操作数可以是立即数、通用寄存器或者是存储器中的数,目的操作数可为通用寄存器或存储器中的数,都可以用于字节、字、双字的运算;,8位二进制数可以表示十进制数的范围:8位无符号十进制数的范围:02558位带符号十进制数的范围:128127 16位二进制数可以表示十进制数的范围:16位无符号十进制数的范围:06553516位带符号十进制数的范围:3276832767字长为 n 位的带符号数,补码能表示范围为:-2 n-1+2 n+1 1如果运算结果超出该范围,叫补码溢出,简称溢出。,算术运算指令涉及的一些问题:,以8位二进制
3、数为例分析一下数的溢出与进位情况:下面分4种情况加以讨论:(1)带符号数和无符号数都不溢出(2)无符号数溢出(3)带符号数溢出(4)带符号数和无符号数都溢出,(1)带符号数和无符号数都不溢出,。,二进制数,看作无符号数,看作带符号数,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,+,0,0,0,0,1,1,1,1,4,11,+,15,+4,+1 1,+,+1 5,相,加,标志,CF=0,OF=0,CF=0,OF=0,溢出,不溢出,不溢出,同符号数相加,,结果符号与其相同,(2)无符号数溢出,二进制数,看作无符号数,看作带符号数,0,0,0,0,0,1,1,1,1,1,1,1,
4、1,0,1,1,+,0,0,0,0,0,0,1,0,7,251,+,258,+7,-5,+,+2,相,加,标志,CF=1,OF=0,CF=1,OF=0,溢出,溢出,若考虑进位所代表的数值,结果正确,不溢出,异号数相加,不可能有溢出,CF=1,(3)带符号数溢出,二进制数,看作无符号数,看作带符号数,0,0,0,0,1,0,0,1,0,1,1,1,1,1,1,0,0,+,1,0,0,0,0,1,0,1,9,124,+,133,+9,+1 2 4,+,+1 3 3,相,加,标志,CF=0,OF=1,CF=0,溢出,不溢出,溢出,正正相加,结果为负,结果错,OF=1,(4)带符号数和无符号数都溢出,
5、二进制数,看作无符号数,看作带符号数,1,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,+,0,1,1,1,1,1,0,0,135,245,+,380,121,-11,+,132,相,加,标志,CF=1,OF=1,CF=1,OF=1,溢出,溢出,若考虑进位CF所代表的数值,结果正确,溢出,负负相加,结果为正,结果错,CF=1,结论:(1)带符号数相加溢出根据OF判断带符号数产生溢出?OF=1 同符号数相加,结果符号与其相反,产生溢出;(结果是错误的)OF=0 没有产生溢出;(结果是正确的)(2)无符号数相加溢出根据CF判断无符号数产生溢出?CF=1无符号数相加产生溢出,但考虑进位
6、所代表的数值后,结果并没有错。,(一)加法指令(Arithmetic)1、ADD(Addition)加法指令2、ADC(Add with carry)带进位加法指令3、XADD(Exchange Add)字节交换加法指令 4、INC(Increment by 1)加 1指令,1、ADD(Addition)加法指令指令格式:ADD dest,src;(dest)(dest)+(src)Src:立即数,寄存器,存储器。dest:寄存器,存储器。例:ADD CX,1000H;寄存器+立即数ADD DX,SI;寄存器+寄存器ADD BX+DI,AX;寄存器+存储器ADD EAX,BX+2000H;存储
7、器+寄存器ADD BYTE PTRDI,30H;存储器+立即数,特点:可以进行8位、16位的无符号数和带符号数的加法运算;源操作数和目标操作数不能同时为存储器,不能为段寄存器;指令影响标志位的情况:OF=1,8位带符号数相加,和超出范围(128127),16位带符号数相加,和超出范围(-32768+32767);CF=1,8位无符号数相加,和超过255,16位无符号数相加,和超过65535。其他条件标志(SF,AF,PF,ZF)根据定义设定。,例MOV AL,7EH;(AL)=7EHMOV BL,5BH;(BL)=5BHADD AL,BL;(AL)=7EH+5BH=D9H影响标志位的情况:SF
8、=1,结果最高位1ZF=0,结果不等于0AF=1,D3 位向D4 有进位PF=0,”1”的个数为奇数CF=0,无进位OF=1,和超过127(两个正数相加,结果为负;反之亦是),2、ADC(Add with carry)带进位加法指令格式:ADC dest,src;(dest)(dest)+(src)+CF CF:进位标志CF的现行值(上条指令CF值)特点:与ADD同。用途:主要用于多字节运算中。类型举例:ADC CX,300;寄存器+立即数+CFADC AL,BL;寄存器+寄存器+CFADC DX,COUNTSI;寄存器+存储器CFADC BLOCKDI,BX;存储器+寄存器+CFADC BY
9、TE PTR MEM,6;存储器+立即数+CF,用途举例:计算两个多字节数相加 3B74AC60F8H+20D59E36C1H=?两个多字节数存放在:DATA1,DATA2的开始单元。,流程图,多字节数内存存放,程序:MOV CX,5MOV SI,0;清SICLC;清CFLOOPER:MOV AL,SI+DATA2ADC SI+DATA1,ALINC SI;(SI)+1(SI)DEC CX;(CX)-1(CX)JNZ LOOPER;(CX)0转HLT;停机,3、XADD(Exchange Add)字节交换加法指令 格式:XADD dest,src;(B/W/DW),(dest)(dest)+(
10、src)dest:寄存器、存储器。不能是段寄存器。功能:将目的操作数送源操作数,相加的结果送目的操 作数 注:XADD指令的源操作数必须为寄存器,目的操作数可 为寄存器或存储器 XADD AX,BX XADD 1000H,EAX标志位影响情况:影响SF,ZF,AF,PF,OF。不影响CF。,4、INC(Increment by 1)加 1 指令格式:INC dest;(B/W/DW),(dest)(dest)+1 dest:寄存器、存储器。不能是段寄存器。功能:对指定的目标操作数+1 操作数单元。用途:用于在循环程序中修改地址指针和循环次数。标志位影响情况:影响SF,ZF,AF,PF,OF。不
11、影响CF。,操作数类型:可以是寄存器,存储器。不能是段寄存器。例:INC DL;8位寄存器1 INC SI;16位寄存器1 INC BYTE PTR BXSI;存储器1(字节操作)INC WORD PTR DI;存储器1(字操作)INC DS;错,(二)减法指令(Subtraction)1、SUB(Subtraction)减法指令2、SBB(Subtraction with borrow)带进位减法指令 3、DEC(Decrement by 1)减 1 指令4、NEG(Negate)求补指令5、CMP(Compare)比较指令6、CMPXCHG(Compare&Exchange)7、CMPXC
12、HG8B(Compare&Exchange 8byte),1、SUB(Subtraction)减法指令格式:SUB dest,src;(dest)(dest)-(src)Src:立即数,寄存器,存储器。Dest:寄存器,存储器。例:SUB AL,37H;寄存器-立即数SUB EBX,EDX;寄存器-寄存器SUB CX,VAR1;寄存器-存储器SUB ARRAYSI,AX;存储器-寄存器SUB WORD PTRALPHABXDI,512H;存储器减立即数这种指令影响标志位:AF、CF、OF、PF、SF、ZF标志。,2、SBB(Subtraction with borrow)带进位减法指令 格式:
13、SBB dest,src;(dest)(dest)-(src)-CFCF:进位标志CF的现行值(上条指令CF值)Src:立即数,寄存器,存储器。dest:寄存器,存储器。指令影响标志位、B/W数运算情况同SBB用途:用于多字节数相减例:SBB BX,100H;寄存器-立即数-CFSBB ECX,EDX;寄存器-寄存器-CFSBB AL,SI+DATA1;寄存器-存储器-CFSBB BP+DISP,BL;存储器-寄存器-CFSBB BYTE PTR SI+6,96H;存储器-立即数-CF,多字节数的加减综合举例例:x、y、z均为32位数,分别存放在地址为X,X+2;Y,Y+2;Z,Z+2的存储单
14、元中,用指令序列实现wx+y+24-z,结果放在W,W+2单元中。MOV AX,X MOV DX,X+2 ADD AX,Y ADC DX,Y+2;x+y ADD AX,24 ADC DX,0;x+y+24 SUB AX,Z SBB DX,Z+2;x+y+24-z MOV W,AX MOV W+2,DX;结果存入W,W+2单元说明:低16位加减用不带进位的指令;高16位的加减用带进位的指令,3、DEC(Decrement by 1)减 1 指令格式:DEC dest;(B/W/DW)(dest)(dest)-1dest:寄存器、存储器。不能是段寄存器。功能:对指定的目标操作数-1 操作数单元。用
15、途:用于在循环程序中修改地址指针和循环次数。标志位影响情况:影响SF,ZF,AF,PF,OF。不影响CF。,DEC 用途举例:MOV CX,0FFFFHCYC:DEC CXJNZ CYCHLT用于延时时间。,4、NEG(Negate)求补指令格式:NEG dest;B/W/DW,(dest)0-(dest)dest:寄存器、存储器。操作:把操作数按位求反后末位+1。(dest)0FFFFH-(dest)+1影响标志:AF、CF、OF、PF、SF、ZF。CF:操作数为0时求补,CF=0;一般使CF=1.OF:对128 或32768求补,OF=1;否则OF=0.,应用举例:求绝对值在内存中,从AR
16、EA1开始存放100个带符号数。求各数的绝对值,并存于AREA2开始的单元。,流程图,程序:LEA SI,AREA1LEA DI,AREA2MOV CX,100CHECK:MOV AL,SIOR AL,AL;(AL)内容不变,置标志JNS NEXT;SF=0转NEXTNEG AL;负数,求其正数的补码NEXT:MOV DI,AL;送目标INC SIINC DIDEC CXJNZ CHECKHLT,5、CMP(Compare)比较指令格式:CMP dest,src;B/W(dest)-(src)结果不送,但影响标志位。影响标志:AF、CF、OF、PF、SF、ZF。src:立即数,寄存器,存储器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pentiun 指令系统 算术 运算 指令
链接地址:https://www.31ppt.com/p-6513924.html