- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
32 算术运算
December 12, 1999 MatrixOne, Inc Confidential 算术运算类指令 加法指令 减法指令 乘法指令 除法指令 算术运算类指令 共同特点: 用来执行算术运算,有单操作数指令,也有双操作数指令 双操作数指令的两个操作数中除源操作数为立即数的情况外,必须有一个操作数在寄存器中。 单操作数指令不允许使用立即数方式 加法指令 加指令ADD 带进位加指令ADC 加1指令 INC AAA DAA 加法运算除INC不影响CF位外,其余都影响条件标志位(CF ZF SF OF PF AF) CF位是根据最高有效位是否有向高位的进位设置的。有,CF=1 OF根据操作数的符号及变化情况来设置 若两操作数符号相同,结果的符号与之相反,OF=1 OF表示带符号数的溢出 CF表示无符号数的溢出 加指令ADD 语句格式:ADD OPD, OPS 功能:将目的操作数与源操作数相加,结果存入目的地址中,源地址的内容不改变。 即(OPD)+(OPS)→(OPD)。 ADD 目的操作数可以是通用寄存器或存储器, 源操作数可以是通用寄存器、存储器或立即数。 ▲注意 目的操作数和源操作数不能同时是存储器操作数。 段寄存器不能直接参加算术运算。 加法指令的操作对象可以是16位或8位。 ADD ADD AL,10 ADD AX,BX ADD DX,BETA[SI] ADD MEM[DI],SI 存储器与立即数相加,存储器的属性需要指定 ADD DELTA[BX],1250H ;DELTA为字变量 ADD BYTE PTR [SI],25H ;指定存储器为字节类型 带进位加指令ADC 语句格式:ADC OPD,OPS 功能:将目的操作数加源操作数再加低位进位,结果送目的地址。 用法:该指令常用于多精度加法的计算。 即(OPD)+(OPS)+CF → (OPD)。 【例】无符号双字加法运算。 MOV AX,4652H ;(AX)=4652H ADD AX,0F0F0H ;(AX)=3742H,CF=1 MOV DX,0234H ;(DX)=0234H ADC DX,0F0F0H ;(DX)=0F325H,CF=0 设在数据段定义了两个多精度的16进制数: FIRST和SECOND ,求两数之和,并将结果存放在THIRD为首地址的存储器中。 Exp31.asm FIRST DW 758DH,9A5CH SECOND DW 0A524H,8345H THIRD DW 3 DUP(0) LEA SI,FIRST ;取加数的有效地址 LEA DI,SECOND ;取被加数的有效地址 LEA BX,THIRD ;取存放和的有效地址 MOV AX,[SI] ;取加数的第一个字 ADD AX,[DI] ;与被加数的第一个字相加 MOV [BX],AX ;存第一次运算的部分和 PUSHF ;保护标志位 ADD SI,2 ;加数地址加2,指向下一加数的地址 ADD DI,2 ;被加数地址加2,指向下一被加数的地址 ADD BX,2 ;和地址加2,指向下一部分和的地址 POPF ;恢复标志位 MOV AX,[SI] ;从加数中取出第二个字 ADC AX,[DI] ;与被加数的第二个字进行带进位相加 MOV [BX],AX ;存第二次部分和 ADC WORD PTR [BX+2],0 ;将进位存入和的第三字中 加1指令 INC 语句格式:INC OPD 功能:将目的操作数加1,结果送目的地址。即(OPD)+1→OPD。 INC指令是一个单操作数指令,操作数可以是寄存器或存储器操作数。 如:INC BX,即(BX)+1→BX。 用法:加1指令可用于对计数器和地址指针进行调整,由于对CF无影响,所以无需保护状态标志位。 INC INC CL ;8位寄存器加1 INC SI ;16位寄存器加1 INC BX ;16位寄存器加1 INC MEM-BYTE [DI] ;字节存储器加1 INC MEM-WORD [SI] ;字存储器加1 加法的非压缩BCD码调整指令AAA 语句格式:AAA 功能:未组合的BCD加法调整指令,亦可以作为ASCII码加法调整指令。 用法:必须将其和放在累加器AL中,AAA指令要紧跟在加法指令之后使用。 如果AL的低4位大于9或(AF)=1,则: (AL)=(AL)+6 (AH)=(AH)+1 (AF)=(CF)=1 且AL高4位清零。 否则:(CF
文档评论(0)