arm中引导主程序的汇编引导代码init.s分析

原创 2013年12月04日 13:48:50

C语言程序的入口都是main(),在调用它之前总要有一段初始化程序,用于准备堆栈、中断向量和程序变量等,完成所谓的

low level initialization,然后才能调用main()函数,因此这段代码的实现必须用汇编来写。

注意Init.s代码不顶格书写

大写的伪代码“AREA|DATA|,CODE,READONLY”开头的程序在SDRAM中可以运行,此段代码在汇编中调用C程序,需要用到IMPORT,b跳转到C代码段,EXPORT表示本程序段用到的变量提供给其他函数调用。

init.s:

       AREA |DATA|,CODE,READONLY   //表示下面引出的是名字为|DATA|的代码,属性为只读     

       ENTRY                  //ENTRY和END伪代码成对对齐出现,汇编程序段

       ldr r13,=0x1000            //将立即数存到r13,arm的堆栈指针,相当于SP

       IMPORT main                //IMPORT表示这是一个外部变量的标号,不在本程序

       b main                 //跳转到程序

       END

ARM汇编语言中的程序结构

在 ARM ( Thumb )汇编语言程序中,以程序段为单位组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据...
  • xinianbuxiu
  • xinianbuxiu
  • 2016年10月02日 19:24
  • 745

ARM 汇编学习——编写简单的ARM汇编程序

首先,我们先看一个简单的汇编程序: area ff,code,readonly ;声明代码段 code32 ;声明为32位ARM指令 entry ;声明程序入口 start ;b指令...
  • zqixiao_09
  • zqixiao_09
  • 2016年02月23日 18:40
  • 4549

ARM汇编语言学习笔记

ARM处理器一共有37个寄存器 包括31个通用寄存器,包括PC,都是32位的寄存器,6个状态寄存器,也都是32位寄存器 有其中不同的模式,用户模式,快速中断模式,普通中断模式,管理模式,数据访问终...
  • a158337
  • a158337
  • 2014年09月27日 21:03
  • 2125

ARM:ARM汇编语言与基础汇编指令

1、为什么要学习汇编语言?     1)嵌入式硬件上电的初始化代码是用汇编代码编写;     2)调试代码时,问题的解决有可能看汇编代码;     3)系统调优(提高产品整体运行效率);   ...
  • sinat_36184075
  • sinat_36184075
  • 2017年02月19日 21:51
  • 355

ARM汇编语言学习笔记(一)---ARM汇编的程序结构

0x00 用到的书籍 《Android软件安全与逆向分析》第六章 0x01 原生程序的生成过程笔者是在Linux环境下测试的,详细过程见书中说明需要编译的C语言代码#include int mai...
  • u013736724
  • u013736724
  • 2016年11月17日 15:21
  • 1462

arm汇编—str,mov等指令

STR指令的格式为: STR{条件}  源寄存器, STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比较常 用,寻址方式灵活多样,使用方式可参考指令LDR。 指令示例...
  • mengdg
  • mengdg
  • 2015年10月10日 20:31
  • 4368

入门级ARM汇编指令

无论是体系结构还是指令集,大家或多或少都应该对X86汇编有些了解,而对于嵌入式领域已被广泛采用的ARM 处理器,了解的可能并不多。如果你有兴趣从事嵌入式方面的开发,那么了解一些RISC 体系结构和AR...
  • ssdsafsdsd
  • ssdsafsdsd
  • 2013年03月18日 10:46
  • 3617

ARM中汇编程序实例小笔记

ARM 汇编
  • u013800219
  • u013800219
  • 2014年03月21日 12:08
  • 1719

ARM寄存器与汇编指令详解

介绍ARM寄存器之前,先来介绍一下ARM处理的模式: 用户模式(User):ARM处理器正常的程序执行状态 快速中断模式(FIQ):用于高速数据传输或通道处理 外部中断模式(IRQ):用于通用的...
  • wang328452854
  • wang328452854
  • 2016年01月06日 14:51
  • 5753

ARM汇编子程序参数传递

ATPCS规则体现了一种模块化设计的思想,其基本内容是C模块(函数) 和汇编模块(函数)相互调用的一套规则(C51中也有类似的一套规则)。 我感觉比在线汇编功能强大(不用有很多忌讳),条理更清楚(...
  • fivedoumi
  • fivedoumi
  • 2016年01月02日 00:54
  • 2823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:arm中引导主程序的汇编引导代码init.s分析
举报原因:
原因补充:

(最多只允许输入30个字)