本帖最后由 pangshen 于 2010-1-14 13:34 编辑
本人是新手,希望大家给与解答。不要拍砖哦
下面的汇编程序有什么不同:这3段汇编都实现了一个功能,就是取一个变量的第1位-第4位,然后根据这四位的值的情况,来进行以后的程序运行。我是想知道,这3段都实现了同一个目的,为什么在我看的汇编程序中,凡是用到要取一个变量的其中几位的情况,都是采用1的方式,而不是2和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 *
而且为什么要用1而不用2或者3呢?谢谢大家
应7楼的要求将指令注释一下。应10楼的要求再编辑一下啦 |