专栏首页蓝天算术运算指令

算术运算指令

作者: 来源: 发布日期:2007-04-25

算术运算指令是反映CPU计算能力的一组指令,也是编程时经常使用的一组指令。它包括:加、减、乘、除及其相关的辅助指令。

该组指令的操作数可以是8位、16位和32位(80386+)。当存储单元是该类指令的操作数时,该操作数的寻址方式可以是任意一种存储单元寻址方式。

1、加法指令

、加法指令ADD(ADD Binary Numbers Instruction)

指令的格式:ADD Reg/Mem, Reg/Mem/Imm

受影响的标志位:AF、CF、OF、PF、SF和ZF

指令的功能是把源操作数的值加到目的操作数中。

、带进位加指令ADC(ADD With Carry Instruction)

指令的格式:ADC Reg/Mem, Reg/Mem/Imm

受影响的标志位:AF、CF、OF、PF、SF和ZF

指令的功能是把源操作数和进位标志位CF的值(0/1)一起加到目的操作数中。

、加1指令INC(Increment by 1 Instruction)

指令的格式:INC Reg/Mem

受影响的标志位:AF、OF、PF、SF和ZF,不影响CF

指令的功能是把操作数的值加1。

、交换加指令XADD(Exchange and Add)

指令的格式:XADD Reg/Mem, Reg      ;80486+

受影响的标志位:AF、CF、OF、PF、SF和ZF

指令的功能是先交换两个操作数的值,再进行算术“加”法操作。

例5.3 已知有二个32位数d1和d2(用数据类型DD说明),编写程序片段把d2的值加到d1中。

解:32位数d1和d2在内存中如下所示。

……    ……    ……

方法1:用16位寄存器编写程序

MOVAX, word ptr d1;由于d1是双字类型,必须使用强制类型说明符。以下同。

MOVDX, word ptr d1+2;(DX,AX)构成一个32位数据

ADDAX, word ptr d2;低字相加

ADCDX, word ptr d2+2;高字相加。在低字相加时,有可能会产生“进位”

MOVword ptr d1, AX;低字送给d1的低字

MOVword ptr d1+2, DX;高字送给d1的高字

方法2:用32位寄存器编写程序

MOVEAX, d1

ADDEAX, d2

MOVd1, EAX

从上面两段程序不难看出:用32位寄存器来处理32位数据显得简单、明了,而16位微机虽然也能处理32位数据,但做起来就要复杂一些。

下面是学习和掌握加法类指令的控件,可模拟执行ADD、ADC、INC、XADD、CLC、STC和CMC等指令。用鼠标左键单击寄存器列表框中指定的寄存器,则可修改其值。后面其它控件的有关操作与此相一致,不再说明。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux的load average的含义

    下面文章中的      “  数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU的数目,结果高于5的时候就表明系统在超负荷运转...

    一见
  • 再议GCC编译时的静态库依赖顺序问题

    使用上面的Makefile编译,将会遇到如下所示的“undefined reference”问题:

    一见
  • httperf 一个高性能的压力测试工具

    Written by bixuan on 2008年06月26号 – 22:14

    一见
  • 关于把本地应用封装成windows app发布审核通不过的问题

    把传统的b/s系统,简单改版,做成了一个比较适合于领导查询的系统,并开发了一个app程序封装了webview直接导向该程序,无需登陆直接访问;结果在提交app的...

    用户1183026
  • 【MySQL】可扩展性基本原则

    可扩展( Scalable ):表明数据库系统在通过相应升级(包括增加单机处理能力或者增加服务器数量)之后,能够达到提供更强的服务能力,提供更强处理能力

    良月柒
  • 面试官问:JS的this指向

    面试官出很多考题,基本都会变着方式来考察this指向,看候选人对JS基础知识是否扎实。读者可以先拉到底部看总结,再谷歌(或各技术平台)搜索几篇类似文章,看笔者写...

    若川
  • JS中的this指向问题

    可能会误以为window.doSth()是调用的,所以是指向window。虽然本例中window.doSth确实等于doSth。name等于window.nam...

    步履不停凡
  • 《挑战30天C++入门极限》对C++递增(增量)运算符重载的思考

    landv
  • 解读年度数据库PostgreSQL:如何处理并发控制(一)

    原文:http://www.enmotech.com/web/detail/1/748/1.html

    数据和云01
  • RIoT控制:了解和管理风险以及物联网

    原文地址:https://internetofthingsagenda.techtarget.com/feature/RIoT-Control-Understa...

    双愚

扫码关注云+社区

领取腾讯云代金券