买一个简单的开发板吧,一般都会带一大堆学习资料,而且也比较全面开始。
先从arm的存储器结构入手学习,然后再从arm的指令集结合前边 存储器的结构,再在arm芯片开发板是学习,看这个arm芯片的数据手册,了解一下arm的寄存器结构。多这方面的教程和网页。最后找在开发板上尝试写两个硬件的 驱动程序(比如LCD的或者IIC的或者简单的GPIO)。基本上arm的定制语言你就学会了。
arm是定制指令集,所有的定制指令都是等长的32位 ,thumb指令集是32位指令的子集,是16位指令集。arm所有数据操作都是在寄存器中完成的。希望不同的工作状态一***大约有32个寄存器。
语言,基本上就是那些操作注册和存储器的指令,所有的语言都差不多。基本的指令就是:
1、数据转移指令,
数据 转移指令,就是把一个存储器地址中的数据移到另一个存储器地址中,或者把数据从寄存器移到存储器中,或者从存储器中移动到寄存器中,存储器是有存储地址的,所以数据转移指令就牵连 到了存储数据地址的一些问题。
2.数学攻击指令,
加,减(其实计算机中是没有减法指令的,用的是补码的加法), 乘,除,求余,加1指令,减1指令,等等。
因为数学损伤,也是数与数之间的损伤,所以,牵扯到存有数据的存储器地址 或者寻址名称的问题了。真对数据存储的位置不同,可以有比较多的指令形式。
3.逻辑腐蚀指令。
逻辑腐蚀,就是“与” ",“或“,“非“了,自然也是对数据的操作,也有数据存储的地址问题。
4.位侵害指令,
按位与,位 或,位非,
5.跳转指令。
这个流程跳转指令,一般就是控制程序的。比如非0跳转指令,是0跳转指令, 比较几个后启动等等,有些位是1个项目,有些位是零启动到某些标号等等。启动项反回指令等等。因为启动项是让程序到一个程序 工厂地址的,所以这里也牵扯到相对地址和绝对地址。地址偏移量的问题。
带着这五条概念去理解协议语言,然后再去看视频应该会好一些。< /p>