EDA365电子论坛网
标题:
arm编程与C语言的编程区别和方法
[打印本页]
作者:
three
时间:
2022-3-15 10:07
标题:
arm编程与C语言的编程区别和方法
arm编程与C语言的编程区别和方法
# w) t5 ~4 @, g( C( K% C1 p
主要想了解ARM
/ C7 }. \3 j+ k* S9 L [
作者:
Blah
时间:
2022-3-15 10:40
arm是一个处理器,而不是一种编程语言。。对于arm的编程可以使用c语言或者汇编。arm和c没有要比的吧
$ o, _5 E! n; t( |6 i
作者:
ESCAPE
时间:
2022-3-15 13:18
ARM公司卖的arm cpu内核给许多公司,那些公司生产出众多的ARM处理器。ARM编程实际上指的是应用ARM公司自己出产的IDE(集成开发环境)所开发进行的编程,比如现在业界常用的ADS1.2,MDK3.5等等IDE。主要进行ARM汇编和与c混合编程。 ARM公司自己规定了一套ARM指令集,也规定了一套汇编指令集。当然,我们觉得汇编编程生产效率低下,不易编写大规模程序,那么我们就可以用高级语言,比如c语言,面向对象的语言在操作系统上运行。
3 b; @/ i9 h ~* e* S* f1 y5 A- B0 b
作者:
opipo
时间:
2022-3-15 13:33
汇编主要是要了解CPU指令及用法,常说的是PC机的x86汇编,指令是x86的复杂指令集。
' O( _: R* O; I* ~) u+ o
arm汇编是arm的精简指令集,比x86容易学,程序格式倒是和x86汇编差不多。
3 u$ A9 |9 w" w: c2 p. K
C语言ARM的和x86的差不多,除了对硬件寄存器操作不同,其它语法和流程都一样。
! R5 I3 o1 E" K. y
arm汇编程序每一行是指定arm core执行一条指令,每条指令都是硬件相关。
# {$ E* {4 ~ B Z# Z
如:LDR R3, #1 ;用LDR指令将数值1放入R3寄存器准备参与运算
8 m$ O+ O+ h5 y8 p9 q+ O* Q
C语言与arm指令无关,只与逻辑运算有关,指定硬件地址的操作才与硬件相关;
) I9 x. h" n. F0 y
如果用arm编译器来编译,每行可能编译出1到多条arm指令。
' P9 Q5 [) q2 M& N
如:i++; //变量 i 递增1等效于LDR R3,#1 ;
P# n; o' [% R2 g, X% g
用LDR指令将数值1放入R3寄存器准备参与运算ADD R2, R2, R3 ;
3 U' N; a; K$ c0 i' ^2 {: y
用ADD指令将R2、R3寄存器里的数值相加后放回R2寄存器以上等效汇编的R2、R3寄存器只是为了举例,C语言不像汇编,不需要由程序员指定用哪个寄存器参与运算,编译器编译时会根据程序结构自动判断选择。
6 ]! c6 R% k- f9 g( o
无论是c语言还是汇编语言,编译器编译后的结果是机器执行码,很多人因为汇编语言比较难懂及指令相关,所以以为它就是机器语言,其实它仍是人类设计的编写程序的语言,仍需要编译器编译成机器码才能执行,它只是比C语言更接近硬件而已。
4 a4 T. T4 S7 M7 I9 ~
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2