ARM 汇编 简单介绍

1. 汇编文件说明 :

  汇编文件以 【.s】结尾的文件格式

  注释:多行注释 /* */   ; 单行注释 @

2.  符号说明:

  1) 汇编指令,一条指令对应一个机器码,完成一定的功能

  2) 伪指令,一条指令对应多条机器码,完成一个稍微复杂的功能

  3) 伪操作,不会生成机器码,为了协助编译器,进行编译的,如:条件编译等

3. ARM 汇编指令分类:

  1) 数据处理指令。

  2) 内存访问指令。

  3) 跳转指令 b  bl。

  4) 状态寄存器(CPSR)访问指令。

  5) 异常产生指令 swi

4. 声明一个全局变量使用 【 .global 】如: 【 .global  tip 】 tip在其他文件中也可以使用

5. 伪操作

在汇编文件中 都要使用  { .text    .end } 表示在一个有效的区域内,在 end后的指令将不被编译器识别

如: start.s 文件中:

.text     @ 伪操作,  .text 表示编译到代码段

.end      @ 伪操作 表示汇编文件结束    

原文地址:https://www.cnblogs.com/electronic/p/11010887.html

时间: 06-12

ARM 汇编 简单介绍的相关文章

Azure ARM (6) Azure ARM (5) ARM Template简单介绍

<Windows Azure Platform 系列文章目录>      Azure ARM (1) 概览      Azure ARM (2) 概览      Azure ARM (3) ARM支持的服务类型      Azure ARM (4) 开始创建ARM Resource Group并创建存储账户 在上一节中,笔者介绍了如何从现有的Azure Resource Group导出Template. 接下来,我们将总体介绍Azure Template. 1.首先,我们打开文本编辑器,创建一

ARM汇编伪指令介绍

在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了.在ARM处理器的汇编程序中,大体有如下几种伪指令:符号定义伪指令.数据定义伪指令.汇编控制伪指令.宏指令及其他伪指令. 伪操作符可以分为以下几类. 1)数据定义伪操作符 数据定义伪操作符主要包括LT

ARM汇编初探---汇编代码中都有哪几类指令---ARM伪指令介绍

要学习一个东西首先要把概念搞清楚,下面只是自己的一些关于汇编的理解. 可执行文件中的01码是机器码,机器码不等于汇编码,虽然机器码可以很容易翻译成汇编码. 汇编码中包含很多汇编指令.伪指令和宏指令等,这些是不可以直接在机器上运行的. 机器指令是ARM指令集和Thumb指令集这些arm硬件支持的指令集组成的. 汇编码中的伪指令和宏指令这些都是汇编语言这个级别的指令,在汇编文件编译的时候汇编编译器as会去处理这些指令,在编译期间也会对宏进行展开,类似于gcc编译的时候对C代码中的宏展开一样.个人感觉

Arm处理器寄存器介绍及汇编基础

1. ARM处理器支持7种工作模式 · User (usr): The normal ARM program execution state· FIQ (fiq): Designed to support a data transfer or channel process· IRQ (irq):    Used for general-purpose interrupt handling· Supervisor (svc):   Protected mode for the operating

ARM过程调用标准---APCS简单介绍

介绍 APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程能够与其它例程交织在一起.最显著的一点是对这些例程来自哪里没有明白的限制.它们能够编译自 C. Pascal.也能够是用汇编语言写成的. APCS 定义了: 对寄存器使用的限制. 使用栈的惯例. 在函数调用之间传递/返回參数. 能够被'回溯'的基于栈的结构的格式,用来提供从失败点到程序入口的函数(和给予的參数)的列表. APCS 不一个单一的给定标准,而是一系

ARM汇编基础(1)--ADS1.2安装与第一个ARM汇编程序

前言 最近的工作是与逆向相关, 用到ARM汇编, 以前在大学时学过x86汇编和ARM开发, 自我感觉当时学的还挺好, 很久没用也生疏了. 正好趁着这个机会也复习一下ARM汇编. 关于ARM的介绍和理论知识,此处就不再赘述. 进入正题: 安装ADS1.2 安装过程很简单, 没什么技术含量. 但是, win7可能会碰到卡在100%的问题, 网上有很多解决的办法, 但好像都不管用. 我用XP的虚拟机装的ADS1.2, 在XP系统上安装很顺利. 第一个ARM汇编程序 新建一个工程, 然后再按照一下步骤设

ARM 汇编指令集

转载,方便查找用. ARM汇编指令集 一. 跳转指令    跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC写入跳转地址值. 通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC 等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用. ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以

C/C++ 中嵌入 arm 汇编

GCC编译器支持直接在C或者C++代码中,嵌入ARM汇编代码.其基本格式非常简单,大致如下: __asm__ [__volatile__] ( assembler template : [output operand list] /* optional */ : [input operand list] /* optional */ : [clobbered register list] /* optional */ ); 首先是关键字“__asm__”,其实也可以写成“asm”.但是“asm”

ARM汇编指令汇总

1.ARM汇编的格式:    在ARM汇编里,有些字符是用来标记行号的,这些字符要求顶格写:有些伪码是需要成对出现的,例如ENTRY和END,就需要对齐出现,也就是说他们要么都顶格,要么都空相等的空,否则编译器将报错.常量定义需要顶格书写,不然,编译器同样会报错.    2.字符串变量的值是一系列的字符,并且使用双引号作为分界符,如果要在字符串中使用双引号,则必须连续使用两个双引号.    3.在使用LDR时,当格式是LDR r0,=0x022248,则第二个参数表示地址,即0x022248,同