打印
[应用相关]

启动代码 汇编指令的一些伪操作总结(基于RealView)

[复制链接]
楼主: gaoke231
手机看帖
扫描二维码
随时随地手机跟帖
21
gaoke231|  楼主 | 2019-2-23 18:29 | 只看该作者 回帖奖励 |倒序浏览
IF ELSE ENDIF
IF ELSE ENDIF类似C语言的条件编译,根据条件把一段代码包括在汇编语言内,或者将其排除在程序之外。为了书写方便,往往为了书写方便在实际程序中用符号表示。
“[“  IF的同义词  “|” ELSE的同义词  “]” ENDIF的同义词
语法格式:IF  条件表达式
           执行程序段
          {ELSE
           执行程序段
}
ENDIF

使用特权

评论回复
22
gaoke231|  楼主 | 2019-2-23 18:30 | 只看该作者
你瞅啥 发表于 2019-2-23 17:24
都可以个屁!
都可以STM32的库文件就不会有2个汇编启动文件对应gcc和realview编译器了,因为iar可以用内 ...

题目已经改过来了

使用特权

评论回复
23
你瞅啥| | 2019-2-23 18:37 | 只看该作者
ARM的编译器有三大系列,ARM官方自己的编译器部门RealView出的编译器,Keil曾经搞过ARM编译器但是被ARM收购后就彻底废止开发,现在MDK内嵌的就是RealView编译器,Keil只负责外壳的开发。
另一个系列是GCC,有ARM官方资助的,还有codesourcery、bare-metel一类的变种,但是语法都是一样的。ARM官方的开发工具DS-5在其收费版本中用的是RealView编译器,免费社区版用的是GCC。
再一个就是独立的IAR编译器。

使用特权

评论回复
24
gaoke231|  楼主 | 2019-2-23 18:43 | 只看该作者
你瞅啥 发表于 2019-2-23 18:37
ARM的编译器有三大系列,ARM官方自己的编译器部门RealView出的编译器,Keil曾经搞过ARM编译器但是被ARM收购 ...

学习了,对于编译器不是很了解,用的最多就是keil  mdk  学习51 stm32 用过  

使用特权

评论回复
25
gaoke231|  楼主 | 2019-2-23 18:44 | 只看该作者
你瞅啥 发表于 2019-2-23 18:37
ARM的编译器有三大系列,ARM官方自己的编译器部门RealView出的编译器,Keil曾经搞过ARM编译器但是被ARM收购 ...

现在想学习下嵌入式,看到了一些汇编的基础

使用特权

评论回复
26
gaoke231|  楼主 | 2019-2-23 18:45 | 只看该作者
MACRO MEND
     MACRO用于标识宏定义的开始,MEND用于标识宏定义的结束。用MACROMEND定义一段代码,称为宏定义体。程序中通过宏指令就可以多次调用该代码段。
语法格式: MACRO
            {$lable} Macroname {$parameter{,$parameter{,$parameter}...}
            ;code
            ...
            ;code
           MEND
{$lable}展开时lable可被换成相应的符号,在一个符号前使用$标示程序被汇编时使用相应的值来代替$后的符号。

使用特权

评论回复
27
gaoke231|  楼主 | 2019-2-23 18:50 | 只看该作者
EQU
EQU用于数字常量、基于寄存器的值和程序中的标号定义一个字符名称。
语法格式: name  EQU  expr
name是定义的字符名称。expr是寄存器的地址值。

使用特权

评论回复
28
john_lee| | 2019-2-23 18:52 | 只看该作者
用GCC直接用C写启动文件,不需要用汇编。

使用特权

评论回复
29
gaoke231|  楼主 | 2019-2-23 18:53 | 只看该作者
john_lee 发表于 2019-2-23 18:52
用GCC直接用C写启动文件,不需要用汇编。

是的,学习嵌入式还是需要看一些汇编文件的

使用特权

评论回复
30
gaoke231|  楼主 | 2019-2-23 19:06 | 只看该作者
MAP
MAP用于定义一个结构化的内存表的首地址,“^”是MAP的同义词。
语法格式:MAP  expr {,base-register}
expr 为数字表达式或程序中的标号。base-register为一个寄存器。

使用特权

评论回复
31
gaoke231|  楼主 | 2019-2-23 19:07 | 只看该作者
FIELD
   FIELD用于定义一个结构化内存表中的结构域 “#”是FIELD的同义词。
语法格式:{lable}  FIELD  expr

使用特权

评论回复
32
john_lee| | 2019-2-23 19:44 | 只看该作者
学习是可以,但过时的东西还是不要学了。
arm rvct已经开始放弃armcc而转向clang,mbed也不支持armcc了。你贴的内容都是armcc对应的armasm汇编语法,而clang对应的汇编语法是GNU汇编语法。

使用特权

评论回复
33
小明的同学| | 2019-2-24 09:33 | 只看该作者
多谢分享,以前遇到这个我都跳开了,看不懂

使用特权

评论回复
34
gaoke231|  楼主 | 2019-2-24 17:52 | 只看该作者
小明的同学 发表于 2019-2-24 09:33
多谢分享,以前遇到这个我都跳开了,看不懂

我也是不太懂,看这个总结的还可以

使用特权

评论回复
35
gaoke231|  楼主 | 2019-2-24 17:53 | 只看该作者
john_lee 发表于 2019-2-23 19:44
学习是可以,但过时的东西还是不要学了。
arm rvct已经开始放弃armcc而转向clang,mbed也不支持armcc了。你 ...

是的,是有点过时了,新的资料还是不太好找

使用特权

评论回复
36
renzheshengui| | 2019-3-7 10:50 | 只看该作者
感谢楼主分享 不过我看不太明白

使用特权

评论回复
37
wakayi| | 2019-3-7 10:53 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
38
wowu| | 2019-3-7 10:56 | 只看该作者
楼主讲解非常详细

使用特权

评论回复
39
643757107| | 2019-3-7 11:23 | 只看该作者
当高手必须懂

使用特权

评论回复
40
gaoke231|  楼主 | 2019-3-14 23:00 | 只看该作者
renzheshengui 发表于 2019-3-7 10:50
感谢楼主分享 不过我看不太明白

学习linux必备知识,以后会懂的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则