算术逻辑运算类精品文稿.ppt
《算术逻辑运算类精品文稿.ppt》由会员分享,可在线阅读,更多相关《算术逻辑运算类精品文稿.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算术逻辑运算类算术逻辑运算类第1页,本讲稿共49页算算术术运运算算类类指指令令用用来来执执行行二二进进制制的的算算术术运运算:算:加减乘除加减乘除。这这类类指指令令会会根根据据运运算算结结果果影影响响状状态态标标志志,有有时时要要利利用用某某些些标标志志才才能能得得到到正正确确的的结结果果;使用他们时请留心有关状态标志使用他们时请留心有关状态标志重点掌握重点掌握加法指令:加法指令:ADDADD、ADCADC、INC INC 减法指令:减法指令:SUB SUB、SBBSBB、DECDEC、CMPCMP、NEGNEG4.3.2 4.3.2 算术运算类指令算术运算类指令第2页,本讲稿共49页算术运算
2、类指令算术运算类指令 可处理:不带符号可处理:不带符号可处理:不带符号可处理:不带符号/带符号的带符号的带符号的带符号的8/168/168/168/16位二进制数位二进制数位二进制数位二进制数 不带符号的压缩型(不带符号的压缩型(不带符号的压缩型(不带符号的压缩型(2 2 2 2位位位位BCDBCDBCDBCD码)码)码)码)/非压缩型非压缩型非压缩型非压缩型(一位(一位(一位(一位BCDBCDBCDBCD码,高码,高码,高码,高4 4 4 4位补位补位补位补0 0 0 0)十进制数)十进制数)十进制数)十进制数 对于加法和减法指令,带符号和不带符号的加减运算对于加法和减法指令,带符号和不带符
3、号的加减运算对于加法和减法指令,带符号和不带符号的加减运算对于加法和减法指令,带符号和不带符号的加减运算的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法/减法指令完成减法指令完成减法指令完成减法指令完成 对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令 对于十进制
4、运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进行十进制调整的方式来实现行十进制调整的方式来实现行十进制调整的方式来实现行十进制调整的方式来实现第3页,本讲稿共49页加法指令加法指令:ADD,ADCADD,ADC和和INCINC减法指令减法指令:SUB,SBB,DEC,NEGSUB,SBB,DEC,NEG和和CMPCMP他他们们分分别别执执行行字字或或字字节节的的加加法法和和减减法法运运算算,除除INCINC和和DECDEC不不影影响响CFCF标标志志外外,其其他他按按定定义义影响全部
5、状态标志位影响全部状态标志位操作数组合:操作数组合:运算指令助记符运算指令助记符 reg,imm/reg/memreg,imm/reg/mem运算指令助记符运算指令助记符 mem,imm/regmem,imm/reg4.3.2.1 4.3.2.1 加法和减法指令加法和减法指令第4页,本讲稿共49页ADD dest,src;加法:加法:destdestsrc;ADD指指令令使使目目的的操操作作数数加加上上源源操操作作数数,和和的的结果送到目的操作数结果送到目的操作数SUB dest,src;减法:减法:destdestsrc;SUB指指令令使使目目的的操操作作数数减减去去源源操操作作数数,差差的
6、的结结果送到目的操作数果送到目的操作数1.1.加和减指令加和减指令第5页,本讲稿共49页MOV AX,7348H;AX7348HADD AL,27H;AL48H27H6FH,AX736FH;OF0,SF0,ZF0,PF1,CF0ADD AX,3fffH;AX736FH3FFFHB36EH;OF1,SF1,ZF0,PF0,CF0例例4 4 加法加法第6页,本讲稿共49页SUB AH,0F0H;AHB3HF0HC3H,AXC36EH;OF0,SF1,ZF0,PF1,CF1MOV word ptr200H,0EF00H;200HEF00H,标志不变,标志不变SUB 200H,AX;200HEF00H
7、C36EH2B92H;OF0,SF0,ZF0,PF0,CF0SUB SI,SI;SI0;OF0,SF0,ZF1,PF1,CF0例例5 5 减法减法第7页,本讲稿共49页ADC dest,src;加法:;加法:destdestsrcCF;ADC指指令令除除完完成成ADD加加法法运运算算外外,还还要要加加上上进位进位CF,结果送到目的操作数,结果送到目的操作数SBB dest,src;减法:减法:destdestsrcCF;SBB指指令令除除完完成成SUB减减法法运运算算外外,还还要要减减去去借位借位CF,结果送到目的操作数,结果送到目的操作数2.2.带进位加和减指令带进位加和减指令第8页,本讲稿
8、共49页MOV AX,7856H;AX7856HMOV DX,8234H;DX8234HADD AX,8998H;AX01EEH,CF1ADC DX,1234H;DX9469H,CF0SUB AX,4491H;AXBD5DH,CF1SBB DX,8000H;DX1468H,CF0例例6 6 无符号双字加法和减法无符号双字加法和减法第9页,本讲稿共49页CMP dest,src ;做减法运算:;做减法运算:destsrc;CMP指指令令将将目目的的操操作作数数减减去去源源操操作作数数,但但差差值值不回送不回送目的操作数目的操作数比比较较指指令令通通过过减减法法运运算算影影响响状状态态标标志志,用
9、用于于比比较较两两个个操操作作数数的的大大小小关关系系,后后面面跟跟转转移指令移指令判判 断断 两两 个个 无无 符符 号号 数数 大大 小小 用用 JC/JNC或或JA/JNBE或或JB/JNAE指令指令判判 断断 两两 个个 带带 符符 号号 数数 大大 小小 用用 JG/JNLE或或JL/JNGE3.3.比较指令比较指令CMPCMP(comparecompare)第10页,本讲稿共49页INC reg/mem;增量(加;增量(加1):):reg/memreg/mem1DEC reg/mem;减量(减;减量(减1):):reg/memreg/mem1INC指令和指令和DEC指令是单操作数指
10、令指令是单操作数指令与与加加法法和和减减法法指指令令实实现现的的加加1和和减减1不不同同的的是是:INC和和DEC不影响不影响CF标志标志INC SI;SISI1DEC byte ptr SI;SISI14.4.增量和减量指令增量和减量指令第11页,本讲稿共49页例例7 7 比较指令比较指令CMPCMP(comparecompare)若自若自若自若自BLOCKBLOCKBLOCKBLOCK开始的内存缓冲区中,有开始的内存缓冲区中,有开始的内存缓冲区中,有开始的内存缓冲区中,有100100100100个带符号字数据,个带符号字数据,个带符号字数据,个带符号字数据,要找出其中的最大数,把它存到要找
11、出其中的最大数,把它存到要找出其中的最大数,把它存到要找出其中的最大数,把它存到MAXMAXMAXMAX单元中单元中单元中单元中 MOV BXMOV BXMOV BXMOV BX,OFFSET BLOCKOFFSET BLOCKOFFSET BLOCKOFFSET BLOCKMOV AXMOV AXMOV AXMOV AX,BXBXBXBXINC BXINC BXINC BXINC BXINC BXINC BXINC BXINC BXMOV CXMOV CXMOV CXMOV CX,99999999AGAINAGAINAGAINAGAIN:CMPCMPCMPCMP AX AX AX AX,BX
12、BXBXBX JG NEXT JG NEXT JG NEXT JG NEXT MOV AX MOV AX MOV AX MOV AX,BXBXBXBXNEXTNEXTNEXTNEXT:INC BX,INC BX,INC BX,INC BX,INC BXINC BXINC BXINC BXDEC CXDEC CXDEC CXDEC CXJNZ AGAINJNZ AGAINJNZ AGAINJNZ AGAINMOV MAXMOV MAXMOV MAXMOV MAX,AXAXAXAXHLT HLT HLT HLT 第12页,本讲稿共49页NEG reg/mem ;reg/mem0reg/memNEG
13、指指令令对对操操作作数数执执行行求求补补运运算算,即即用用零零减减去操作数,然后结果返回操作数去操作数,然后结果返回操作数求补运算可表达成:求补运算可表达成:将操作数按位取反后加将操作数按位取反后加1NEG指指令令对对标标志志的的影影响响与与用用零零作作减减法法的的SUB指令一样指令一样NEG指令也是一个单操作数指令指令也是一个单操作数指令NEG指指令令执执行行的的结结果果一一般般总总是是使使CF1除除非非操作数为操作数为0时时CF05.5.求补指令求补指令NEGNEG(negtivenegtive)第13页,本讲稿共49页MOV AX,0FF64HNEG AL;AL064H9CH,AXFF9
14、CH;OF0SF1,ZF0,PF1,CF1SUB AL,9DH;ALFFH,AXFFFFH;OF0,SF1,ZF0,PF1,CF1NEG AX;AX0FFFFH0001H;OF0,SF0,ZF0,PF0,CF1DEC AL;AL01H10,AX0000H;OF0,SF0,ZF1,PF1,CF1NEG AX;AX000;OF0,SF0,ZF1,PF1,CF0例例8 8 求补运算求补运算第14页,本讲稿共49页十十进进制制数数调调整整指指令令对对二二进进制制运运算算的的结结果果进进行行十十进进制制调调整整,以以得得到到十十进进制制的的运运算算结结果果,以此实现十进制以此实现十进制BCDBCD码运算
15、码运算80868086指令系统支持两种指令系统支持两种BCDBCD码调整运算码调整运算q压缩压缩BCDBCD码码就是通常的就是通常的84218421码;它用码;它用4 4个二进制个二进制位表示一个十进制位,一个字节可以表示两个位表示一个十进制位,一个字节可以表示两个十进制位,即十进制位,即00009999q非压缩非压缩BCDBCD码码用用8 8个二进制位表示一个十进制位,个二进制位表示一个十进制位,只用低只用低4 4个二进制位表示一个十进制位个二进制位表示一个十进制位0 09 9,高,高4 4位为位为0 04.3.2.2 4.3.2.2 十进制调整指令十进制调整指令第15页,本讲稿共49页十进
16、制调整指令十进制调整指令DAA/DASDAA/DAS指令指令指令指令:十进制调整指令十进制调整指令十进制调整指令十进制调整指令它跟在它跟在它跟在它跟在ADD/ADCADD/ADCADD/ADCADD/ADC或或或或SUB/SBBSUB/SBBSUB/SBBSUB/SBB之后,功能是将之后,功能是将之后,功能是将之后,功能是将ALALALAL中十进制数中十进制数中十进制数中十进制数相加相加相加相加/减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和/差,仍保留在差,仍保留在差,仍
17、保留在差,仍保留在ALALALAL中中中中 AAA/AASAAA/AAS指令:十进制调整指令指令:十进制调整指令指令:十进制调整指令指令:十进制调整指令它跟在它跟在它跟在它跟在ADD/ADCADD/ADCADD/ADCADD/ADC或或或或SUB/SBBSUB/SBBSUB/SBBSUB/SBB之后,对之后,对之后,对之后,对ALALALAL中两个未组合的十中两个未组合的十中两个未组合的十中两个未组合的十进制数相加进制数相加进制数相加进制数相加/减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的
18、十进制和进制和进制和进制和/差差差差 ,仍保留在,仍保留在,仍保留在,仍保留在ALALALAL中中中中 第16页,本讲稿共49页乘法指令分乘法指令分无符号无符号和和有符号有符号乘法指令乘法指令 MUL reg/mem;无符号乘法无符号乘法 IMUL reg/mem;有符号乘法有符号乘法AL或或AX与另一个操作数相乘,结果送到与另一个操作数相乘,结果送到AL和和AH(两个字节(两个字节相乘),或送到相乘),或送到AX和它的扩展部分和它的扩展部分DX(两个字相乘)(两个字相乘)除法指令分除法指令分无符号无符号和和有符号有符号除法指令除法指令 DIV reg/mem;无符号除法;无符号除法 IDIV
19、 reg/mem;有符号除法;有符号除法字节除法:字节除法:AX源操作数(源操作数(8 8位),商在位),商在AL中,余数在中,余数在AH中中字除法:字除法:DX,AX 源操作数(源操作数(1616位),商在位),商在AX中,余数中,余数DX中中4.3.2.3 4.3.2.3 乘法和除法指令乘法和除法指令第17页,本讲稿共49页真值(十进制)真值(十进制)864二进制编码二进制编码08H40H压缩压缩BCD码码08H64H非压缩非压缩BCD码码08H0604HASCII码码38H3634H压缩BCD码加减法调整指令DAA DAS非压缩BCD码加减法调整指令AAA AAS AAM AAD编码的比
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算术 逻辑运算 精品 文稿
限制150内