找回密码
 注册
关于网站域名变更的通知
查看: 282|回复: 3
打印 上一主题 下一主题

arm编程与C语言的编程区别和方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-3-15 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ARM编程与C语言的编程区别和方法
6 O$ V/ C6 D8 z; k( g主要想了解ARM
1 U4 J5 K  ?, ]5 [$ e& t; Z
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-3-15 10:40 | 只看该作者
    arm是一个处理器,而不是一种编程语言。。对于arm的编程可以使用c语言或者汇编。arm和c没有要比的吧
    9 a% j0 d; c8 }/ X. e  G% a  w3 q

    该用户从未签到

    3#
    发表于 2022-3-15 13:18 | 只看该作者
    ARM公司卖的arm cpu内核给许多公司,那些公司生产出众多的ARM处理器。ARM编程实际上指的是应用ARM公司自己出产的IDE(集成开发环境)所开发进行的编程,比如现在业界常用的ADS1.2,MDK3.5等等IDE。主要进行ARM汇编和与c混合编程。 ARM公司自己规定了一套ARM指令集,也规定了一套汇编指令集。当然,我们觉得汇编编程生产效率低下,不易编写大规模程序,那么我们就可以用高级语言,比如c语言,面向对象的语言在操作系统上运行。" _; j2 a# U8 `3 E

    该用户从未签到

    4#
    发表于 2022-3-15 13:33 | 只看该作者
    汇编主要是要了解CPU指令及用法,常说的是PC机的x86汇编,指令是x86的复杂指令集。
    + H% v' S- G1 `; U- o5 ~% d2 Uarm汇编是arm的精简指令集,比x86容易学,程序格式倒是和x86汇编差不多。
      _6 q# O( r, H: wC语言ARM的和x86的差不多,除了对硬件寄存器操作不同,其它语法和流程都一样。
    " A  m+ x" T3 E$ X! }; \' _# `  arm汇编程序每一行是指定arm core执行一条指令,每条指令都是硬件相关。' J' r+ i9 R" o& {9 P' W" D
    如:LDR R3, #1 ;用LDR指令将数值1放入R3寄存器准备参与运算
    3 F  J8 g1 F  ]* U4 u6 sC语言与arm指令无关,只与逻辑运算有关,指定硬件地址的操作才与硬件相关;' g- y, c, J" k+ y% T, U  Q5 ]  w
      如果用arm编译器来编译,每行可能编译出1到多条arm指令。, v: M2 [2 g' \: L7 u8 {
    如:i++; //变量 i 递增1等效于LDR R3,#1 ;
    $ e, G) D  b5 }6 f& i  用LDR指令将数值1放入R3寄存器准备参与运算ADD R2, R2, R3 ;7 u: t% ?. z' o. o* L+ |' o
      用ADD指令将R2、R3寄存器里的数值相加后放回R2寄存器以上等效汇编的R2、R3寄存器只是为了举例,C语言不像汇编,不需要由程序员指定用哪个寄存器参与运算,编译器编译时会根据程序结构自动判断选择。. t8 T- R+ K. u  D6 f0 x, g3 w  W' Q
      无论是c语言还是汇编语言,编译器编译后的结果是机器执行码,很多人因为汇编语言比较难懂及指令相关,所以以为它就是机器语言,其实它仍是人类设计的编写程序的语言,仍需要编译器编译成机器码才能执行,它只是比C语言更接近硬件而已。2 {; `5 ~  z. L  [
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-12 02:56 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表