打印

关于2000系列DSP的汇编语言问题请教哦

[复制链接]
2347|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangshen|  楼主 | 2010-1-11 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pangshen 于 2010-1-20 14:08 编辑

本人是新手,希望大家给与解答。不要拍砖哦
之前发错了,发表在单片机版块,现在移到DSP 区啦
下面的汇编程序有什么不同:这3段汇编都实现了一个功能,就是取一个变量的第1位-第4位,然后根据这四位的值的情况,来进行以后的程序运行。我是想知道,这3段都实现了同一个目的,为什么在我看的汇编程序中,凡是用到要取一个变量的其中几位的情况,都是采用1的方式,而不是2和3?到底他们之间有什么区别呢?1有什么好处呢?如果说因为对于实现同一个功能,语句越少越好的话,1和3的语句量是相同的,为什么不采用3,而采用1?谢谢大家
1:
  LACC *,14,AR0    ;将当前的辅助寄存器的值左移14位,加载到Acc,*指当前的辅助寄存器,并将辅助寄存器改为AR0
  AND #0000Fh,15   ;将0000Fh这个值左移15位,与Acc中的值相或,
  SACH *,1      ;将上面的或值左移1位,并将高16位,保存到当前辅助寄存器中,也就是AR0

2:
  LACC *,AR0
  SFR        ;右移一位
  AND #0000Fh
  SACL *    ;将Acc中的值的低16位保存到Ar0中

3:LACC *,15,AR0
     AND #0000Fh,16
     SACH *

     SACH *

而且为什么要用1而不用2或者3呢?谢谢大家!

相关帖子

沙发
linhai2009| | 2010-1-11 22:58 | 只看该作者
汇编不懂,用C写不是挺好的吗

使用特权

评论回复
板凳
pangshen|  楼主 | 2010-1-12 14:23 | 只看该作者
我知道C很好,可是那也免不了有一些资料是汇编的呀,我就是想知道这几种方式有什么区别

使用特权

评论回复
地板
liliang9554| | 2010-1-12 20:14 | 只看该作者
真正的高手全是汇编

使用特权

评论回复
5
tiger2010| | 2010-1-12 23:18 | 只看该作者
4# liliang9554

高手应该是用C+汇编联合编程的吧

使用特权

评论回复
6
pangshen|  楼主 | 2010-1-13 15:30 | 只看该作者
各位呀,我不是要评判谁是高手,也不是要评判高手都用什么语言,我只是想知道这几句汇编的区别而已,有那么难吗?为什么全是无关的答案?:(

使用特权

评论回复
7
lobby| | 2010-1-13 21:22 | 只看该作者
帮顶一下。

使用特权

评论回复
8
hulan1985| | 2010-1-13 23:03 | 只看该作者
没那些无关的答案你的帖子早沉下去了……

使用特权

评论回复
9
pangshen|  楼主 | 2010-1-14 13:27 | 只看该作者
谢谢7楼!

使用特权

评论回复
10
pangshen|  楼主 | 2010-1-19 15:33 | 只看该作者
难道现在大家都用C了吗?对汇编都不感冒?

使用特权

评论回复
11
xiaoxin1986| | 2010-1-20 05:14 | 只看该作者
呵呵,应该是吧,现在学校里都很少学汇编了

使用特权

评论回复
12
ff_hust| | 2010-1-20 11:08 | 只看该作者
处理结果:
  1中是将数据存储单元中的数值的最低一位清零,相当于是
LACC *,AR0
  AND #0000Eh
  SACL *

使用特权

评论回复
13
ff_hust| | 2010-1-20 11:12 | 只看该作者
补充一下上面,还有高12位也会被清零,相当于只保留了BIT1~3这三位

使用特权

评论回复
14
ff_hust| | 2010-1-20 11:15 | 只看该作者
不好意思,还漏掉了一点:数值同时还右移了一位,相当于除以2

使用特权

评论回复
15
ff_hust| | 2010-1-20 11:18 | 只看该作者
2中虽然存储单元中的数值虽然在右移一位时最低一位也被清零,但求与时却保留了移位后数值的BIT3这一位,即原数值的BIT4,这个是与1中算法的不同之处

使用特权

评论回复
16
ff_hust| | 2010-1-20 11:19 | 只看该作者
3中的算法结果跟2中是一样的,也存在这个问题

使用特权

评论回复
17
ff_hust| | 2010-1-20 11:22 | 只看该作者
如果单就这段程序代码本身来看,本人认为本不必采用那么多的移位,复杂化了。
但是否跟它的应用环境有关就不得而知了,这就得了解与之相关的其它程序及编写者的考虑了

使用特权

评论回复
18
ff_hust| | 2010-1-20 11:22 | 只看该作者
欢迎大家指正:lol

使用特权

评论回复
19
pangshen|  楼主 | 2010-1-20 14:09 | 只看该作者
帖子重新编辑过了,大家再来看看吧。

使用特权

评论回复
20
ff_hust| | 2010-1-20 16:19 | 只看该作者
是滴是滴,先前搞错了,这3段都是实现将变量的BIT1~4这四位单独取出并且对应转成新变量的BIT0~3的功能

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Just So So!

9

主题

55

帖子

0

粉丝