本帖最后由 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呢?谢谢大家! |