算术与逻辑运算指令41算术运算指令

算术与逻辑运算指令41算术运算指令

ID:39890784

大小:483.50 KB

页数:29页

时间:2019-07-14

算术与逻辑运算指令41算术运算指令_第1页
算术与逻辑运算指令41算术运算指令_第2页
算术与逻辑运算指令41算术运算指令_第3页
算术与逻辑运算指令41算术运算指令_第4页
算术与逻辑运算指令41算术运算指令_第5页
资源描述:

《算术与逻辑运算指令41算术运算指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章算术与逻辑运算指令4.1&4.2算术运算指令本章包括加法,减法,乘法,和二进制数据的除法。(13.算术运算)加法指令:ADD、ADC、INC.减法指令:SUB、SBB、DEC、CMP乘法指令:MUL、IMUL、除法指令:DIV、IDIVINC与DEC指令用INC与DEC指令将寄存器的内容(除了段寄存器)或将内存单元的内容增1或减1。(INC与DEC指令)格式:[标号:]INC/DECDST寄存器/内存选项:(DST)←(DST)±1注意:只有一个操作数清除或置位O,S,和Z标志;不影响C。(INC与DEC指令)列表6-2-4INC指令格式

2、指令注释INCBLINCSPINCEAXINCBYTEPTR[BX]INCWORDPTR[SI]INCDWORDPTR[ECX]INCDATA2(BL)=(BL)+1(SP)=(SP)+1(EAX)=(EAX)+1递增数据段中通过BX寻址得到的字节内容递增数据段中通过SI寻址得到的字的内容递增数据段中通过ECX寻址得到的双字的内容递增数据段中DATA2所在位置的内容(INC)例:将NUMB+1和NUMB相加,结果放到AL中注意:会影响DI寄存器的内容。SUMSPROCNEARMOVDI,OFFESTNUMB;寻址NUMBMOVAL,0;清除AL

3、ADDAL,[DI];加上NUMBINCDI;寻址NUMB+1ADDAL,[DI];加上NUMB+1RETSUMSENDPDEC--减1格式:DECDST寄存器/内存操作:(DST)←(DST)-1DEC指令清除或设置OF,SF,和ZF标志位,但是不影响CF标志位。列表13-6DEC—递减加法和减法格式:ADD/SUBDST,SCR寄存器寄存器/内存/立即数内存寄存器/立即数不可直接内存到内存操作。操作:(DST)←(DST)±(SCR)ADD或SUB操作会设置或清除溢出标志、进位标志、标志寄存器的右8位。用二进制数的补码表示一个负的二进制数。

4、加法指令减法指令(加法指令跟减法指令)例2:MOVDL,12HADDDL,33H执行,(DL)=sum=45H要改变的标志位:Z=0(结果0)C=0(无进位)A=0(无辅助进位)S=0(结果为正)P=0(校验是奇数)O=0(无溢出)例3:数组相加;累积数组元素3、5、7,结果放在AL中;注意执行过程会影响SI的内容SUMPROCNEARMOVAL,0;清除总和MOVSI,3;指向元素3ADDAL,ARRAY[SI];加上元素3ADDAL,ARRAY[SI+2];加上元素5ADDAL,ARRAY[SI+4];加上元素7RETSUMENDPADC

5、—带进位的加法格式:ADCDST,SCR寄存器寄存器/内存/立即数内存寄存器/立即数操作符:(DST)←(DST)+(SCR)+CF设置或清除溢出和进位标志,改变标志寄存器的右8位。ADC指令(ADC—带进位的加法)例:双字加将BX-AX加DX-CX,结果放在BX-AX中SUMPROCNEARADDAX,CXADCBX,DXRETSUMENDP带借位的减法格式:SBBDST,SCR寄存器寄存器/内存/立即数内存寄存器/立即数操作:(DST)←(DST)-(SCR)-C影响标志位带借位的减法乘法MUL处理无符号数据IMUL(整数乘法)处理带符号数

6、据两者都会影响溢出和进位标志。乘积是乘数的双倍长度。乘法操作是字节乘字节,字乘字或双字乘双字。非立即数数据的乘法格式:[label:]MUL/IMUL操作数寄存器/内存(非立即数数据的乘法)操作:字节乘法:(AX)←(AL)×(OPR)字乘法:(DX-AX)←(AX)×(OPR)MUL之前MUL之后AH(忽略)ALMULAX结果DX(忽略)AXMUL高DXAX低结果MUL之前MUL之后字节乘法字乘法例:生成(DX)=(BL)×(CL)MOVBL,5MOVAL,10MULBLMOVDX,AX;结果放到DX中如果上述是带符号数据的乘法,应当用IMU

7、L来代替MUL。除法格式:DIVOPR;不带符号数寄存器/内存IDIVOPR;带符号数寄存器/内存OPR可以是8位、16位的操作数,分别对应字节除法、字除法。(除法)除法操作:字节除法:(AL)←(AX)/(OPR)的商(AH)←(AX)/(OPR)的余数字除法:(AX)←(DX-AX)/(OPR)的商(DX)←(DX-AX)/(OPR)的余数AX被除数AH余数AL商除前除后DX-AX高被除数低DX余数AX商除前除后(除法)当被除数不是除数双倍长度时,扩展被除数。用0扩展无符号数和正数;用1扩展带符号的负数;扩展指令:CBW;将AL的最高有效位

8、D7扩展至AHCWD;将AX的最高有效位D7扩展至DX

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。