电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

指令系统3(算术运算指令)(楼俊君

  • 资源ID:70835356       资源大小:2.28MB        全文页数:47页
  • 资源格式: PPT        下载积分:16金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要16金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

指令系统3(算术运算指令)(楼俊君

1,4.3.2 算术运算指令,涉及两种类型数据: 无符号数和有符号数。对加减法指令,无符号和有符号数可采用同一套指令,但应注意: 参加的操作数必须都是无符号数或都是有符号数。 需使用不同的标志位(CF,OF)来检查无符号数和有符号数的运算结果是否溢出。 这类指令一般都影响标志寄存器FLAGS。,2,表4 - 2 算术运算类指令表,3,两个8位数相加时有4种情况:,无符号数和有符号数均不溢出 二进制相加 无符号数加 有符号数加 0000 1000 8 +8 +0001 1110 + 30 + (+30) 0010 0110 38 +38 结果38 CF=0 OF=0,无符号数范围0255 带符号数范围-128127,4, 无符号数溢出 无符号数 有符号数 0000 1000 8 +8 +1111 1101 +253 +(-3) 10000 0101 261 +5 结果5 CF=1 OF=0 有符号数溢出 0000 1000 8 +8 +0111 1101 +125 +(+125) 1000 0101 133 +133 结果-123 CF=0 OF=1 (补码表示),5, 无符号数和有符号数均溢出 无符号数 有符号数 1000 1000 136 -120 +1111 0111 +247 +(-9) 10111 1111 383 -129 结果127 CF=1 OF=1 上面四种情况说明, CF标志可用来表示无符号数的溢出, OF标志可用来表示有符号数的溢出。 有符号数的溢出是一种出错状态,在运算过程中应当避免。,6,所有的算术运算指令,都会影响FLAGS标志寄存器的6个状态标志CF/OF/ZF/SF/AF/PF(3个控制标志IF/DF/TF不受影响)。 总的讲,有这样一些规则: 当无符号数运算产生溢出(即最高位向前有进位 或借位)时,CF=1,否则为0; 当有符号数运算产生溢出时,OF=1(即OF=CFCF-1) , 否则为0; 当运算结果为0时,ZF=1 ,否则为0; 当运算结果为负数时,SF=1 ,否则为0; 当运算一半位置有进位或借位时,AF=1 ,否则为0; 当运算结果中有偶数个时,PF=1 ,否则为0。,7,共有5条: (1) 不带进位的加法指令ADD 格式: ADD acc,data ADD mem/reg,data ADD mem/reg1,mem/reg2 注:1.源和目的操作数不能同时为存储器操作数 2.不能把段寄存器作为操作数 例:ADD AL,30H ADD AX,BX+20H ADD CX,SI ADD DI,200H ADD指令对标志位(指6个状态标志)都有影响。,1.加法指令,8,例:MOV AL,7EH ADD AL,5BH 两条指令执行后,标志位(指6个状态标志)都有影响。 AF=1 表示bit3向bit4有进位 CF=0 表示最高位向前无进位 OF=1 表示若为有符号数加法,其运算结果产生溢出 PF=0 表示8位的运算结果中,1的个数为奇数 SF=1 表示运算结果的最高位为1 ZF=0 表示运算结果不为0,不带进位的加法指令ADD,9,(2) 带进位位的加法指令ADC,ADC指令在形式上和功能上都有与ADD类似,只是相加时还要包括进位标志CF的内容。 例如: ADC AL,68H ;AL(AL)+68H+(CF) ADC AX,CX ;AX(AX)+(CX)+(CF) ADC BX,DI ;BX(BX)+DI+1DI+(CF),10,例:有两个4字节的无符号数相加: 2C 56 F8 AC + 30 9E 47 BE = ? 设被加数、加数分别存放在BUFFER1及BUFFER2开始的两个存储区内,结果放回BUFFER1存储区,如下页图所示。 因CPU只能进行8位或16位的加法运算,为此可将加法分4次进行。,ADC指令主要用于多字节加法运算中,11,56H,2CH,BEH,47H,BUFFER1,BUFFER2,ACH,F8H,9EH,30H,被加数,加数,数据段,多字节加法示意图,.,.,12,程序段如下: MOV CX,4 ;置循环次数 MOV SI,0 ;置SI初值为零 CLC ;清进位标志CF LL: MOV AL,BUFFER2SI ADC BUFFER1SI,AL ;带进位加 INC SI ;(SI)+1 DEC CX ;(CX)-1 JNZ LL ;若(CX)0,则转LL,13,ADD/ADC指令对条件标志位(CF/OF/ZF/SF)的影响:,CF位表示无符号数相加的溢出。 OF位表示带符号数相加的溢出。,14,格式:INC reg/mem 功能:类似于C语言中的+操作:对指定的操作数加1 例: INC AL INC SI INC BYTE PTRBX+4 注意:本指令不影响CF标志,但对AF/OF/PF/SF/ZF会产生影响。,3) 加1指令INC(单操作数指令),15,(1) 不考虑借位的减法指令SUB 格式: SUB dest, src 操作: dest(dest)-(src) 注:1.源和目的操作数不能同时为存储器操作数 2.不能把段寄存器作为操作数 指令例子: SUB AL,60H SUB BX+20H,DX SUB AX,CX,2. 减法指令,16,SBB指令主要用于多字节的减法。 格式: SBB dest, src 操作: dest(dest)-(src)-(CF) 指令例子: SBB AX,CX SBB WORD PTRSI,2080H SBB SI,DX,(2) 考虑借位的减法指令SBB,17,作用类似于C语言中的”操作符。 格式:DEC opr 操作:opr(opr)-1 指令例子: DEC CL DEC BYTE PTRDI+2 DEC SI,(3) 减1指令DEC,注:该指令与INC一样,它不影响CF标志,但对AF/OF/PF/SF/ZF会产生影响。,18,格式: NEG opr 操作: opr 0-(opr) 对一个操作数取补码相当于用0减去此操作数,故利用NEG指令可得到负数的绝对值。 例: 若(AL)=0FCH,则执行 NEG AL 后, (AL)=04H,CF=1 本例中,0FCH为-4的补码,执行求补指令后,即得到4(-4的绝对值)。,(4) 求补指令NEG,19,SUB/SBB指令对标志位(CF/OF/ZF/SF)的影响:,CF=1表示无符号数减法溢出。 OF=1表示带符号数减法溢出。 NEG指令对CF/OF的影响: CF:操作数为0时,求补的结果使CF=0,否则CF=1。 OF:字节运算对-128求补或字运算对-32768求补时OF=1, 否则OF=0。,20,格式: CMP dest, src 操作: dest(dest)-(src) (而 SUB dest, src; dest(dest)-(src) ) CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。 指令例子: CMP AL,0AH CMP CX,SI CMP DI,BX+03,(5) 比较指令CMP,21,根据标志位来判断比较的结果,1)根据ZF判断两个数是否相等。若ZF=1,则两数相等。 2)若ZF=0,则两个数不相等,则分两种情况考虑: 比较的是两个无符号数 若CF=0,则destsrc; 若CF=1,则destsrc。 比较的是两个有符号数 若OFSF=0,则destsrc; 若OFSF=1,则destsrc。,22,比较指令在使用时,一般在其后紧跟一条条件转移指令,判断比较结果的转向。 举例:在内存数据段从DATA开始的单元中存放了两个8位无符号数,试比较它们的大小,并将大的数送MAX单元。 程序: LEA BX,DATA ;DATA偏移地址送BX MOV AL,BX ;第一个无符号数送AL INC BX ;BX加1,指向第二个数 CMP AL,BX ;两个无符号数进行比较 JNC DONE ;若CF=0,表示第一个数大,转向DONE MOV AL,BX ;否则,第二个无符号数送AL DONE:MOV MAX,AL ;将较大的无符号数送MAX HLT ;停止,23,进行乘法时: 8位 8位 16位乘积 (即 AL mem8/reg8 AX) 16位 16位 32位乘积 (即 AX mem16/reg16 DX AX) (1) 无符号数的乘法指令MUL mem/reg 格式: MUL src 操作:字节操作数 (AX) (AL) × (src) 字操作数 (DX, AX) (AX) × (src) 指令例子: MUL BL ;(AL)×(BL),乘积在AX中 MUL CX ;(AX)×(CX),乘积在DX,AX中 MUL BYTE PTRBX,3. 乘法指令,24,格式与MUL指令类似,只是要求两操作数均为有符号数。 指令例子: IMUL BL ;(AX)(AL)×(BL) IMUL WORD PTRSI ;(DX,AX)(AX)×(SI+1SI),(2) 有符号数乘法指令IMUL,注意:MUL/IMUL指令中 AL(AX)为隐含的乘数寄存器; AX(DX,AX)为隐含的乘积寄存器; SRC不能为立即数; 除CF和OF外,对其它标志位无定义。,25,MUL/IMUL乘法指令对CF/OF的影响:,例:(AL) = A5H(-5B),(BL) = 11H (1) IMUL BL ; (AX) (AL)×(BL) ; A5×11 -5B×11=-060B F9F5 ; (AX) = F9F5H CF=OF=1 (2) MUL BL ; (AX) (AL)×(BL) ; A5×11= 0AF5 ; (AX) = 0AF5H CF=OF=1,26,4. 除法指令,进行除法时:16位/8位 8位商及8位余数 32位/16位 16位商及16位余数 对被除数、商及余数存放有如下规定: 被除数 商 余数 字节除法 AX AL AH 字除法 DX:AX AX DX,27,格式: DIV src 操作:字节操作 (AL) (AX) / (src) 的商 (AH) (AX) / (src) 的余数 字操作 (AX) (DX, AX) / (src) 的商 (DX) (DX, AX) / (src) 的余数 指令例子: DIV CL DIV WORD PTRBX 注:若除数为零或AL中商大于FFH(或AX中商大于FFFFH),则CPU产生一个类型0的内部中断。,(1) 无符号数除法指令DIV,28,(2) 有符号数除法指令IDIV,格式: IDIV src 操作与DIV类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。 CBW与CWD两指令主要用于被除数扩展 注意: 对于DIV/IDIV指令 AX(DX,AX)为隐含的被除数寄存器。 AL(AX)为隐含的商寄存器。 AH(DX)为隐含的余数寄存器。 src不能为立即数。 对所有FLAGS的状态标志位均无定义。,29,运算要求被除数字长是除数字长的两倍,若不满足则需对被除数进行扩展,否则产生错误。 8位16位 16位32位 ALAX(AH AL) AXDX AX 对无符号数除法扩展,只需将AH或DX清零即可。 对有符号数而言,则是符号位的扩展。可使用符号扩展指

注意事项

本文(指令系统3(算术运算指令)(楼俊君)为本站会员(san****019)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.