您现在所在的是:

单片机论坛

回帖:0个,阅读:1289 [上一页] [1] [下一页]
1064
工控秀才
文章数:80
年度积分:50
历史总积分:1064
注册时间:2006/6/16
发站内信
09工控人生征文
08年优秀博客奖
发表于:2008/8/10 10:02:00
#0楼
2.1算术操作指令(20条)
1.     add   a,  i
指令描述: 将累加器a中的值与立即数相加求和,结果送累加器
影响标志位:  z,c,ac,ov
举例:  将a中的值与立即数0x0f相加
     add  a,  0x0f

2.    add   a,   m
指令描述: 将累加器a中的值与数据存储器单元的值相加求和,结果送累加器
影响标志位:  z,c,ac,ov
举例:  将a中的值与数据存储器单元memory中的值相加求和
     add   a,  memory

3.    add   m,  a
指令描述: 将数据存储器单元的值与累加器a中的值相加求和,结果送数据存储单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元memory的值与累加器a中的值相加求和
      add   memory,   a

     一些使用者可能觉得fppa的指令显得有些多,其实很多指令都是可以整合的。比
如pic的精简指令为35条,象上面的2,3指令,他们就整合为1条指令,但指令
所带的参数不一样而已,即计算结果的存储地址选择,结果是存在w里面,还是数
据存储单元里。
4.    addc   a,   m
指令描述: 将累加器a中的值与数据存储器单元的值带进位相加求和,结果送累加器
影响标志位:  z,c,ac,ov
举例:  将a中的值与数据存储器单元memory中的值带进位相加求和
     addc   a,  memory

这条指令在做多字节的计算时很管用,但很多低价的mcu都没有,而是要通过判断
c标志后,再进行处理,

5.    addc   m,  a
指令描述: 将数据存储器单元的值与累加器a中的值带进位相加求和,结果送数据存储单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元memory的值与累加器a中的值带进位相加求和
      addc   memory,   a

6.    addc  a
指令描述: 将累加器a中的值带进位相加求和,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值带进位相加求和,结果送a
      addc    a
这条指令也一样对c标志处理提供了很好的可操作性

7.    addc  m
指令描述: 将数据存储器单元的值带进位相加求和,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值带进位相加求和,结果送a
      addc    m
这条指令也一样对c标志处理提供了很好的可操作性

8.    nadd   a,   m
指令描述: 将累加器a中的值取补码后和数据存储器单元的值相加求和,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值取补码后和数据存储器单元的值相加求和,结果送a
      nadd   a,  m

9.    nadd   m,   a
指令描述: 将数据存储器单元的值取补码后和累加器a中的值相加求和,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值取补码后和累加器a中的值相加求和,结果数据存储
器单元
      nadd   m,  a

10.    sub   a,  i
指令描述: 将累加器a中的值减去立即数i,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值取补码后和累加器a中的值相加求和,结果数据存储
器单元
      nadd   m,  a

11.    sub   a,  m
指令描述: 将累加器a中的值减去数据存储器单元的值,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值减去数据存储器单元的值,结果送累加器a
      sub   a,   m

12.    sub   m,  a
指令描述: 将数据存储器单元的值减去累加器a中的值,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值减去累加器a中的值,结果送数据存储器单元
      sub   m,   a

13.    subc   a,  m
指令描述: 将累加器a中的值带借位减去数据存储器单元的值,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值带借位减去数据存储器单元的值,结果送累加器a
      subc   a,   m

14.    subc   m,  a
指令描述: 将数据存储器单元的值带借位减去累加器a中的值,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值带借位减去累加器a中的值,结果送数据存储器单元
      subc   m,   a

15.    subc  a
指令描述: 将累加器a中的值带进位相减求差,结果送累加器a
影响标志位:  z,c,ac,ov
举例:  将累加器a中的值带进位相减求差,结果送累加器a
      subc    a

16.    subc  m
指令描述: 将数据存储器单元的值带进位相减求差,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值带进位相减求差,结果送数据存储器单元
      subc    m

17.    inc  m
指令描述: 将数据存储器单元的值递加1,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值递加1,结果送数据存储器单元
      inc    m

18.    dec  m
指令描述: 将数据存储器单元的值递减1,结果送数据存储器单元
影响标志位:  z,c,ac,ov
举例:  将数据存储器单元的值递减1,结果送数据存储器单元
      dec    m

19.    clear  m
指令描述: 将数据存储器单元的值清0,结果送数据存储器单元
影响标志位:  无
举例:  将数据存储器单元的值清0,结果送数据存储器单元
      clear   m
20.     mul
指令描述: 乘法操作指令,执行两个8*8的无符号数的乘法操作,一个操作数存放累加器a,另一个存放在mulop寄存器中,积结果的高8位存放在mulrh,低8位存放在累加器a中。
影响标志位:  无
举例:  乘法操作指令,执行两个8*8的无符号数的乘法操作
      ;0x05*0xfa
      mov   a,  0x05
      mov   mulop,  a
      mov   a,  0xfa
      mul

    此指令仅限于部分pad产品系列。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=58366&Name=gongkong
14PIN的单片MCU多核心时代已来临,  想在低容量的MCU系统跑多任务吗,欢迎登陆"http://gongkong.gkbk.com"我的博客 查看详情,谢谢!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002