322算术和逻辑指令-精品文档资料系列.ppt
《322算术和逻辑指令-精品文档资料系列.ppt》由会员分享,可在线阅读,更多相关《322算术和逻辑指令-精品文档资料系列.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.2.2 算术运算指令l算术运算算术运算l对数据进行加减乘除l基本的数据处理方法l加减运算有“和”或“差”的结果外,还有进借位、溢出等状态标志,也是结果的一部分l注意算术运算类指令注意算术运算类指令对标志的影响对标志的影响数据传送类指令数据传送类指令不影响(不改变)不影响(不改变)状态标志状态标志加法和减法指令加法和减法指令根据结果按定义改变根据结果按定义改变状态标志状态标志1 加法指令加法指令l加法指令加法指令 ADDl带进位加法指令带进位加法指令 ADCl增量指令增量指令 INCl除INC不影响进位标志CF外l其他指令按定义影响全部状态标志位按照运算结果相应设置各个状态标志为0或为1FL
2、AG寄存器标志位功能标志位功能状态标志状态标志控制标志控制标志CF 进位标志进位标志 PF 奇偶标志奇偶标志 AF 辅助进位标志辅助进位标志 ZF 零标志零标志 SF 符号标志符号标志 OF 溢出标志溢出标志 TF 跟踪标志跟踪标志 IF 中断标志中断标志DF 方向标志方向标志 格式:ADD mem/reg,data ADD mem/reg1, reg2/mem 实例: ADD AL,30H ADD DI,200H ADD SI,BX+20H ADD CX,SI(1) ADD(1) ADD:不带进位的加法指令:不带进位的加法指令无无 segseg源和目的操作数不能同时为存储器操作数立即数不能作
3、为目的操作数 例:已知例:已知(BX)=D75FH(BX)=D75FH 指令指令 ADD BX,8046H ADD BX,8046H 执行后,状态标志各是多少?执行后,状态标志各是多少? D75FH = 1110 0111 0101 1111D75FH = 1110 0111 0101 1111 8046H = 1000 0000 0100 0110 8046H = 1000 0000 0100 0110 1 1 11 111 1 11 11 0110 0111 1010 0101 0110 0111 1010 0101结果:结果: (BX)= 67A5H C=1, Z=0, P=1, A=1
4、, O=1, S=0 ADDADD指令对指令对6 6个状态标志均产生影响个状态标志均产生影响(2) (2) ADC:带进位位的加法指令带进位位的加法指令 ADCADC指令在形式上和功能上与指令在形式上和功能上与ADDADD类似,只是相类似,只是相加时还要包括进位标志加时还要包括进位标志CFCF的内容,的内容,例如:例如: ADC AL,68H ;AL(AL)+68H+(CF) ADC AX,CX ;AX(AX)+(CX)+(CF) ADC BX,DI ;BX(BX)+DI+1DI +(CF)例例: :两个无符号数相加:两个无符号数相加:2C56F8AC+309E47BE=2C56F8AC+30
5、9E47BE=? 设被加数、加数分别存放在设被加数、加数分别存放在BUFFER1BUFFER1及及BUFFER2BUFFER2开开始的两个存储区内,结果放回始的两个存储区内,结果放回BUFFER1BUFFER1存储区。存储区。lADC指令用于多字节加法运算中MOV AXMOV AX,BUFFER2BUFFER2 ADD ADD BUFFER1 BUFFER1,AX AX ; ;低字相加低字相加 MOV AXMOV AX,BUFFER2+2BUFFER2+2 ADCADC BUFFER1+2 BUFFER1+2 ,AX AX ; ;高字相加,包括低字的进位高字相加,包括低字的进位多字节加法多字节
6、加法示意图示意图56H2CHBEH47HBUFFER1BUFFER2ACHF8H9EH30H被被加加数数加加数数数数据据段段 .BUFFER1+2BUFFER2+2CLCMOV AX,BUFFER2ADD BUFFER1,AX MOV AX,BUFFER2+2ADC BUFFER1+2 ,AX格式:格式:INC reg/mem功能:类似于功能:类似于C C语言中的语言中的操作:操作:对指定的操作数加对指定的操作数加1 1 例:例: INC AL INC SI INC BYTE PTR BX+4注:本指令不影响注:本指令不影响CFCF标志,标志,影响其他状态位影响其他状态位(3) (3) 加加1
7、 1指令指令INCINC(单操作数指令(单操作数指令)2. 2. 减法指令减法指令l减法指令减法指令 SUBl带借位减法指令带借位减法指令 SBBl减量指令减量指令 DECl求补指令求补指令 NEGl比较指令比较指令 CMPl除DEC不影响CF标志外l其他按定义影响全部状态标志位 格式:格式: SUB dst, src 操作:操作: dst(dst)-(src)指令例子: SUB AL,60H SUB BX+20H,DX SUB AX,CX(1) (1) (不考虑借位的)减法指令(不考虑借位的)减法指令SUBSUB类似ADD指令指令SBB指令主要用于多字节的减法。指令主要用于多字节的减法。格式
8、:格式: SBB dst, src操作:操作: dst(dst)-(src)-(CF)指令例子: SBB AX,CX SBB WORD PTRSI,2080H SBB SI , DX(2) (2) 带借位的减法指令带借位的减法指令SBBSBB类似ADC指令指令 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单元单元【例】【例】x、y、z均为均为
9、32位数,分别存放在地址为位数,分别存放在地址为X, X+2;Y,Y+2;Z,Z+2的存储单元中,用指令序列实现的存储单元中,用指令序列实现wxy24z,结果放在,结果放在W, W+2单元中。单元中。作用类似于作用类似于C语言中的语言中的”操作符。操作符。格式:格式:DEC opr 操作:操作:opr(opr)-1指令例子: DEC CL DEC BYTE PTR DI+2 DEC SI (3) (3) 减减1 1指令指令DECDEC类似INC指令指令(4)求补指令)求补指令 NEGl对操作数执行求补运算,即用零减去操作数对操作数执行求补运算,即用零减去操作数NEG reg/mem ; opr
10、 0oprl对标志的影响与用零作减法的对标志的影响与用零作减法的SUB指令一样指令一样l可用于求补码或由补码求其绝对值可用于求补码或由补码求其绝对值mov ax,0ff64hneg al; AX=FF9CH, OF=0,SF=1,ZF=0,PF=1,CF=1sub al,9dh;AX=FFFFH, OF=0,SF=1,ZF=0,PF=1,CF=1neg ax;AX=0001H, OF=0,SF=0,ZF=0,PF=0,CF=1dec al;AX=0000H, OF=0,SF=0,ZF=1,PF=1,CF=1neg ax;AX=0000H, OF=0,SF=0,ZF=1,PF=1,CF=0 格式
11、:格式: CMP dst, src ; (dst)(src)CMP也是执行两个操作数相减也是执行两个操作数相减, ,但结果不送但结果不送目标操作数目标操作数, ,其结果只反映在标志位上。其结果只反映在标志位上。指令例子: CMP AL,0AH CMP CX,SI CMP DI,BX+03(5) (5) 比较指令比较指令CMPCMP根据标志状态获知两个操作数的大小关根据标志状态获知两个操作数的大小关系系给条件转移等指令使用其形成的状态标给条件转移等指令使用其形成的状态标志志SUB与与CMP?根据标志位来判断比较的结果根据标志位来判断比较的结果1)1)根据根据ZF判断两个数是否相等。判断两个数是否
12、相等。若若ZF=1,=1,则两数相等。则两数相等。2)2)若两个数不相等若两个数不相等, ,则分两种情况考虑则分两种情况考虑: : 比较的是两个无符号数比较的是两个无符号数 若若CF=0,=0,则则dstdstsrc;src; 若若CF=1,=1,则则dstdstsrcsrc。 比较的是两个有符号数比较的是两个有符号数 若若OF SF=0=0,则,则dstdstsrc; src; 若若OF SF=1=1,则,则dstdstsrcsrc。例:比较有符号数cmp ax, bx;比较;比较ax和和bxjnl next;若;若axbx,转移,转移xchg ax, bx;若;若axbx,交换,交换nex
13、t:.结果:结果:AX保存较大的有符号数保存较大的有符号数CMP A , BlJG 大于大于(AB)时转移时转移lJNL 不小于不小于(A B)时转移时转移3.乘法运算指令乘法运算指令lMUL 无符号乘法指令无符号乘法指令lIMUL 有符号乘法指令有符号乘法指令(1)无符号乘法指令)无符号乘法指令格式:格式: MUL ops ; (AX)(AX)*(ops)(字节相乘)(字节相乘) ;(DX)(AX) (AX)*(ops) (字相乘)字相乘) MUL是将源操作数和累加器中的数都作为无符号是将源操作数和累加器中的数都作为无符号数相乘,乘积存放在数相乘,乘积存放在AXAX或或DX,AXDX,AX中
14、。其结果只影响中。其结果只影响CFCF和和OFOF。指令例子: MUL BL MUL CX(2)有符号乘法指令有符号乘法指令格式:格式: IMUL ops ; (AX)(AX)*(ops)(字节相乘)(字节相乘) ;(;(DX)(AX) (AX)*(ops) (字相乘)字相乘) IMUL是将源操作数和累加器中的数都作为符号数相乘,是将源操作数和累加器中的数都作为符号数相乘,乘积存放在乘积存放在AXAX或或DXDX、AXAX中。其结果只影响中。其结果只影响CFCF和和OFOF。4.除法运算指令除法运算指令lDIV 无符号除法指令无符号除法指令lIDIV 有符号除法指令有符号除法指令lCBW 字节
15、转换成字指令字节转换成字指令lCWD 字转换成双字指令字转换成双字指令(1)无)无 符号数除法指令符号数除法指令格式:格式: DIV ops DIV ops ;功能:字节除法:(功能:字节除法:(ALAL商)(商)(AHAH余数)余数) (AX) / (OPS) (AX) / (OPS)将将AXAX中的中的1616位无符号数除以位无符号数除以OPSOPS,得到的,得到的8 8位商存放在位商存放在ALAL中,中,8 8位余数存放在位余数存放在AHAH中。中。字除法:(字除法:(AXAX商)(商)(DXDX余数)余数) (DX (DX、AX) / (OPS)AX) / (OPS)将将DXDX、AX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 322 算术 逻辑 指令 精品 文档 资料 系列
限制150内