第1个回答 2010-06-10
你的C语言学得很好,再学其他语言,就易如反掌了,汇编语言是直接面对硬件的语言,学汇编之前,必须了解你所学单片机的内部硬件结构,各个寄存器的功能,输出输入端口等.
我个人的经历可以供你参考,在学单片机之前,我只是在大学里学过BASIC语言,工作中接触到单片机,以为它很神秘,深入学习后,才发现,单片机是非常简单的,汇编的编程思路和BASIC基本相似,从入门学习单片机到第一个产品开发成功,我只用了1个半月的时间,这都归功于我的BASIC功底.
别人能行的事,你肯定也能行.相信自己,努力
第2个回答 2010-06-10
在汇编里一般寻址都带@符号
在一般寻址里,用@R1,@R0的比较多,R2,--7不能用这类指令
其中R1,R0存放的是指针,优点是寻址快,使用方便,但寻址范围最大256
例如我想取空间为RAM200处的物理位置的数据
语句如下:
MOV R0,#200 ;将地址放入R0
MOV A,@R0 ;将200地址的数据取出放入A
MOV A,#12H ;立即数0x12放入A
MOV @R0,A ;将A中的数据放入200地址
此外还有@DPTR指针,这类指针的地址是16位,最大64k主要是针对于外部的RAM空间寻址,指令时MOVX A,@DPTR,
方法类似于上面的介绍