算术运算指令

作者:  来源:   发布日期: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等指令。用鼠标左键单击寄存器列表框中指定的寄存器,则可修改其值。后面其它控件的有关操作与此相一致,不再说明。
阅读(409) | 评论(0) | 转发(0) |
0

上一篇:汇编指令: VERW、WAIT、WBINVD、WRSHR、WRMSR、XADD、XBTS、XCHG、

下一篇:c99 增加的restrict关键字

相关热门文章
  • VB实训案例22:小学生数学乘...
  • 惊喜巨献HP53181A HP53181A HP...
  • PHP是什么?能干什么?PHP培训...
  • 欧盟rohs检测认证介绍 - 北测...
  • 欧盟CE认证服务介绍 - 北测检...
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • 我的ChinaUnix博客被锁定了,...
  • 虚拟机中ubuntu无线连接问题...
  • IBM DS3400 盘阵怎么查看是单...
  • 启动auditd时,报错如下,怎么...
  • CGSL系统中root密码正确,但无...
给主人留下些什么吧!~~
评论热议

你可能感兴趣的:(linux)