- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章3 算术指令
算术指令: 算术运算指令包括二进制运算及十进制运算指令。算术指令用来执行算术运算,它们中有双操作数指令,也有单操作数指令。如前所述,双操作数指令的两个操作数不允许同时使用存储器寻址方式。单操作数指令不允许使用立即数方式。算术指令的寻址方式,均遵循这一规则。 举例 ADD AX,BX ADD AX,12 ADD AL,BH ADD AX,[BX] ADD [SI],BX ADD [BX],AL ADD BYTE PTR [BX],34H 加法指令 加法指令对条件标志位的影响 加法指令对条件标志位的影响 例:ADD DX,0F0F0H如指令执行前(DX)=4652H则 ? ? 指令执行后(DX)=3742H,ZF=0,SF=0,CF=1,OF=0 MOV BX,9B8AH ; (BX)=9B8AH ADD BX,6476H ; now (BX)=0000H 9B8A 1001 1011 1000 1010 + 6476 + 0110 0100 0111 0110 ----------- -------------------------- 1← 0000 1← 0000 0000 0000 0000 条件码设置: SF=0 最高有效位(D15)为0 ZF=1 结果为0 CF=1 最高有效位向高位有进位 OF=0 不同符号数相加,不产生溢出 例:双精度数的加法 错误格式举例 减法指令 注意: 减法指令对条件标志位(CF/OF/ZF/SF)的影响: NEG 指令对CF/OF的影响 例:字长为8位的两数相减,其可表示数的范围为:带符号数 -128~127(80H~7FH),无符号数0~255(0~FFH)。运算结果超出可表示数范围即为溢出,说明结果错误。 ① 43H-16H=2DH 0100 0011 0100 0011 条件码设置:CF=0 - 0001 0110 + 1110 1010 OF=0 -------------- -------------- 0010 1101 1← 0010 1101 说明:机器作减法运算时,先将减数求补,然后转化为加法运算,所以实际上机器设置CF的方法是:最高有效位不产生进位时,CF=1;最高有效位产生进位时,CF=0。这和做减法时有借位CF=1,无借位CF=0是一致的。 本例参加运算的数无论是看作带符号数还是无符号数,运算结果均有效。 ② 0C8H-66H=62H 1100 1000 1100 1000 条件码设置:CF=0 - 0110 0110 + 1001 1010 OF=1 -------------- ------------ 0110 0010 1← 0110 0010 说明:如果是无符号数的运算,被减数够减无借位,所以CF置0,表明结果有效。如果操作数是带符号数,且被减数与减数符号相反,而结果符号与减数符号相同,所以OF置1,表明结果无效。 ③ 54H-76H=0DEH 0101 0100 0101 0100 条件码设置:CF=1 - 0111 0110 + 1000 1010 OF=0 ------------- ------------- 1101 1110 1101 1110 说明:如果是无符号数的运算,本例中被减数<减数,减运算向高位有借位(或加运算无进位),则CF置1,表明结果无效。如果是带符号数的运算,同符号数相减,OF置0,结果有效。 ④ 4BH-0B6H=0DEH 0100 1011 0100 1011 条件码设置:CF=1 - 1011 0110 + 0100 1010 OF=1 --------------- ----------- 1001 0101 1001 0101 说明:如果是无符号数的运算,本例中被减数<减数,减运算向高位有借位(或加运算无进位),则CF置1,表明结果无效。如果是带符号数的运算,不同符号数相减,且结果符号与减数符号相同,OF置1,结果也是无效的 例: 例: 计算: x+y+24-z CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX
文档评论(0)