arm汇编语言,之前从未接触过汇编语言,有什么较为基础的最好是从零开始的教程。最好是视频的。
1个回答
展开全部
买一个开发板吧,一般都会带一大堆学习资料,而且也比较全面。
先从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跳转,某个位是零跳转到某个汇编标号等等。跳转反回指令等等。因为跳转是让程序到一个程序存储器地址的,所以这里也牵扯到相对地址和绝对地址。地址偏移量的问题。
带着这五条概念去理解汇编语言,然后再去看视频应该会好一些。
先从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跳转,某个位是零跳转到某个汇编标号等等。跳转反回指令等等。因为跳转是让程序到一个程序存储器地址的,所以这里也牵扯到相对地址和绝对地址。地址偏移量的问题。
带着这五条概念去理解汇编语言,然后再去看视频应该会好一些。
追问
可是找不到视频教程啊。
追答
http://v.ku6.com/show/WpfumCakyQNBvIJ10qk7Gw...html?loc=youce_tuijian
网上有很多的。要不然就花一点钱去淘宝上买,这样的视频有很多的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询