收藏 分享(赏)

指令系统(算术运算类).ppt

上传人:jmydc 文档编号:10243966 上传时间:2019-10-24 格式:PPT 页数:17 大小:141KB
下载 相关 举报
指令系统(算术运算类).ppt_第1页
第1页 / 共17页
指令系统(算术运算类).ppt_第2页
第2页 / 共17页
指令系统(算术运算类).ppt_第3页
第3页 / 共17页
指令系统(算术运算类).ppt_第4页
第4页 / 共17页
指令系统(算术运算类).ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、,算术运算指令, 1. 加法指令,(1)不带进位加法指令ADD,指令格式: ADD DST,SRC;执行操作: DST(SRC)(DST),注意: (1)目的操作数不能为立即数。 (2)不允许两个操作数都为存储器操作数。 (3)段寄存器不能参与加法操作。 (4)指令执行结果影响CF、OF、PF、SF、ZF和AF标志位。OF位可以用来表示带符号数的运算是否溢出,而CF位则可用来表示无符号的运算是否有进位。,例:ADD AX,BXADD AL,2000HADD BX,ALADD BL,6HADD BYTE PTR SI,5HADC AX,BXADC AL,2000HADC BX,ALADC BL,

2、6HADC WORD PTR DI,89H,例:有两个4字节的无符号数相加:2C 56 F8 AC + 30 9E 47 BE = ?设被加数、加数分别存放在BUFFER1及BUFFER2开始的两个存储区内,结果放回BUFFER1存储区,如下页图所示。因CPU只能进行8位或16位的加法运算,为此可将加法分4次进行。,程序段如下:MOV CX,4 ;置循环次数MOV SI,0 ;置SI初值为零CLC ;清进位标志CF LL: MOV AL,BUFFER2SI ADC BUFFER1SI,AL ;带进位加INC SI ;(SI)+1DEC CX ;(CX)-1JNZ LL ;若(CX)0,则转LL

3、思考:若最高位有进位,如何改?, 1. 加法指令,(3),指令格式: INC OPR执行操作: OPR(OPR)1,加1指令INC,例:INC AXINC BYTE PTRBX,例:INC AL 前:AL=7FH,AF=0,CF=1,OF=0,SF=1,PF=0,ZF=1 后:AL=80H, AF=1,CF=1,OF=1,SF=1,PF=0,ZF=0,使用INC指令应注意: (1)目的操作数不能为立即数和段寄存器。 (2)目的操作数为存储器操作数时,应指明按字类型还是字节类型操作。 (3)本指令影响标志OF、PF、SF、ZF和AF,但不影响CF标志位。, 2. 减法指令,(4),求补指令NEG

4、,指令格式: NEG OPR执行操作: OPR 0 (OPR),(1)目的操作数可以是通用寄存器寻址或存储器寻址方式,若是存储器操作数,应指明按字类型还是字节类型操作。 (2)指令执行结果影响标志AF、OF、PF、SF、ZF和CF。仅当目的操作数为零时,CF=0;否则CF=1。 (3)对一个操作数求补相当于用0减去此操作数,故利用NEG指令可得到负数的绝对值。例:若(AL)=0FCH,则执行 NEG AL 后, (AL)=04H,CF=1本例中,0FCH为-4的补码,执行求补指令后,即得到4(-4的绝对值)。,例:在内存中有从BUF开始的10个无符号字数据,求出最大值存放到MAX单元中。, 3

5、.,(1)无符号数乘法指令MUL,乘法指令,指令格式: MUL SRC 指令操作:AX(AL)*(SRC);字节操作数DX,AX (AX)*(SRC);字操作数,例:MUL BL前:AL=00000011B,BL=00000010B后:AH=00000000B,AL=00000110B,OF=CF=0,源操作数可以采用寄存器寻址或存储器寻址方式,若是存储器操作数,应指明按字类型还是字节类型操作。,MUL WORD PTR SI,1) 乘法指令中源操作数不能为立即数; 2) AL(AX)为隐含的乘数寄存器; 3) AX(DX,AX)为隐含的乘积寄存器。 4) MUL指令,影响CF和OF标志位;当

6、结果的高一半等于0时(即AH或DX的内容),CF、OF都为0,否则CF、OF都为1; 5)IMUL指令,同样影响CF和OF标志位;当结果的高一半是低一半的符号扩展时,CF、OF都为0,否则CF、OF都为1;,除法指令, 4.,(1)无符号数除法指令DIV,指令格式: DIV SRC 指令操作:字节除法: AL(商)、AH(余数)(AX)/(SRC)字除法: AX(商)、DX(余数)(DX,AX)/(SRC) 源操作数可以采用寄存器或存储器操作数寻址方式。,DIV CLDIV WORD PTRBX,(3)字节转换为字指令CBW,指令功能:将源操作数由字节转换为字 指令格式:CBWCBW指令默认(

7、AL)为源操作数,若(AL)的最高有效位为0,则执行CBW后,(AH)=00H,若(AL)最高有效位为1,则执行CBW后,(AH)=0FFH。,例: 写出两带符号数34H25H的程序段。,MOV AL,34HMOV BL,25HCBW ; AL的符号扩展到AHIDIV BL ; 0034H25H,结果为 ; (AH)=0FH, (AL)=01H,ASCII的加法调整指令AAA ASCII的减法调整指令AAS 十进制的加法调整指令DAA 十进制的减法调整指令DAS 乘法的ASCII调整指令AAM 除法的ASCII调整指令AAD,十进制调整指令, 5.,8086提供了6种调整指令,注意:加法、减法

8、和乘法的调整指令都是紧跟在算术指令之后,将二进制的运算结果调整为十进制数。而除法的调整指令必须放在除法指令之前进行,以防止除法出现错误的结果。,例如:计算(X*YZ)/X,其中X、Y、Z均为16位带符号数,分别存入存储单元BUFF1、BUFF2、BUFF3中。MOV AX,BUFF1 ;将BUFF1存入默认被乘数寄存器AX IMUL BUFF2 ;带符号乘法运算,结果在(DX,AX) MOV CX,AX ;中间结果转移,让出AX寄存器 MOV BX,DX ;中间结果转移,让出DX寄存器 MOV AX,BUFF3 ; CWD ;将Z转换为双字放入(DX,AX) ADD CX,AX ; ADC BX,DX ;双字加法运算 MOV AX,CX ; MOV DX,BX ;将被除数存入默认寄存器(DX,AX) IDIV BUFF1 ;带符号除法运算,结果商(AX)余数(DX),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报