CODE和DATA的使用及一些区别

cyllouis   2010-1-11 17:45 楼主
想问下下面两段程序段有啥区别,功能应该是一样的,只是不知道有没有什么区别?还有就是什么情况下用数据段
“AREA |DATA|,DATA,READWRITE”,下面的是代码段CODE
  AREA |DATA|,CODE,READONLY
  ENTRY

  ldr r13, =0x1000
  IMPORT ledMain
  b ledMain
  END

第二段:
  .text
  .global _start
  _start:

            ldr r13, =0x1000
            IMPORT ledMain
            b ledMain
  halt_loop:
            b halt_loop

回复评论 (9)

不懂....看高手怎么说...
点赞  2010-1-11 17:55
第二种是简易的段定义。
点赞  2010-1-11 18:41
代码段 数据段
点赞  2010-1-11 18:54
AREA |DATA|,CODE,READONLY
  ENTRY
AREA 声明
DATA|段名CODE,类型 代码段
READONLY 属性 只读
点赞  2010-1-11 19:05
引用: 引用 4 楼 cfanlwn 的回复:
AREA |DATA|,CODE,READONLY
? ENTRY
AREA 声明
DATA|段名CODE,类型 代码段
READONLY 属性 只读

这些我知道...我只是想问红色两部分有什么区别,可能是我表达的不明白?
点赞  2010-1-11 19:45
帮顶下。

MARK,学习!
点赞  2010-1-11 20:05
汗个~第二段是我在新买的书上的例子参考来的,开始没实践过在ADS环境下是否可以使用,或者怎么使用,刚刚亲自在ADS环境下测试了一下编译出错,有空再问问书作者吧~ 下面是他书上的解释:
.text 表示下面的语句都属于代码段。
.global将本文件中的某个程序标号定义为全局的,如上面的代码表示_start是个全局函数。


纠结~
点赞  2010-1-11 21:48
.text
  .global _start
  _start:
            ldr r13, =0x1000
            IMPORT ledMain
            b ledMain
  halt_loop:
            b halt_loop

........这个好像是gcc的工具要求的格式
点赞  2010-1-17 16:21
引用: 引用 8 楼 great_bug 的回复:
.text
? .global _start
? _start:
? ? ? ? ? ? ldr r13, =0x1000
? ? ? ? ? ? IMPORT ledMain
? ? ? ? ? ? b ledMain
? halt_loop:
? ? ? ? ? ? b halt_loop

........这个好像是gcc的工具要求的格式

呵呵,确实是,GNU的汇编
点赞  2010-1-17 16:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复