目录

ldr伪指令

数据定义伪指令

汇编系统预定义的段名

杂项伪操作

GNU ARM汇编特殊字符

Linux ARM汇编程序中的标号

全局标号

寄存器一般作用


ldr伪指令

  • 语法格式:LDR Rn,=expr
  • 作用:装一个32位常数和一个地址到寄存器
  • 优点:能解决有效数的问题
  • 例如:
ldr r0,=0x12345678 把一个地址装到r0

数据定义伪指令

  • .word: 定义4字节数据
  • 例如:
.word 0x12345678
  • .byte: 单字节定义
  • 定义位置:.end之前,一般在最开始或stop后

注:相当于C语言中的变量定义

汇编系统预定义的段名

  • .text 用于定义一个指令段
  • .data 用于定义数据段,初始化全局变量
  • .bss  未初始化的全局变量
  • 注:.bss段应该在.text之前
  • .rodata 只读数据
  • .end 文件结束

杂项伪操作

  • .align 指令可通过添加填充字节的方式,使当前位置满足一定的对齐方式
  • 例如:
.align 4声明后边的对齐方式位4字节对齐
  • .equ 把一个符号定义成某个值

注:相当于 #define

  • 例如:
.equ symbo,0x12345678
  • .weak 如果这个符号没有定义,编译就会忽略,不报错

GNU ARM汇编特殊字符

  • @ —— 代码行中的注释
  • # —— 整行注释
  • #或$ —— 直接操作数前缀
  • —— 语句分离符号

Linux ARM汇编程序中的标号

  • 任何以冒号结尾的标识符都被认为是一个标号。
  • 标号只能有 A~Z a~z 0~9 . _等符号组成
  • 当标号为0~9的数字时,使用方法:
  • F —— 指示编译器向前搜索
  • B —— 指示编译器向后搜索
  • 说明:程序的方向代码行号减小的方向,就近原则
  • 局部标号代表它所在的地址,可以当做变量或者函数使用

全局标号

  • .global 全局标号定义
  • 例如
global _start 

注:_start汇编程序的缺省入口是_start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点。

寄存器一般作用

  • R0~R3  接收参数返回值
  • R4~R11  接收局部变量
  • R12 (IP,备份R13)
  • R13 (Stack Pointer,SP,栈指针)
  • R14 (the Link Register,LR,链路寄存器,备份PC)
  • R15 (PC)
  • CPSR (当前程序状态寄存器)
  • SPSR

ARM——GNU伪指令相关推荐

  1. ARM汇编伪指令 .word

    ARM汇编伪指令 .word 经常碰到那些以"."打头的一些令人头疼的伪指令,  至于.globl _start .balign .align .data .text等等就算了,最 ...

  2. ARM官方汇编与ARM GNU汇编中的伪操作

    以下内容源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 (1)嵌入式Linux ARM汇编 (2)GNU ARM 汇编基础 - wanli1024 - 博客园 (3)GNU ARM 汇编简介 ...

  3. ARM汇编与ARM GNU汇编 区别

    一.想学汇编,at&t汇编与ARM汇编的区别? 问:想学汇编语言,因为现在用的是linux系统(ubuntu 11.04),so 有一本<汇编语言程序设计>马朝晖译,可惜淘宝.当当 ...

  4. c语言中 伪指令,ARM汇编伪指令介绍(1)

    ARM汇编伪指令介绍 在ARM汇编语言程序里,有一些特殊的助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,这些特殊指令助记符被称为伪指令,他们所完成的操作称为伪操作.伪指令在源程序中的作 ...

  5. ARM汇编:伪指令DATA和EQU的区别

    ARM汇编:伪指令DATA和EQU的区别 1.EQU 指令 定义:用于将一个数值或寄存器名赋给一个指定的符号名. 格式: 符号名 EQU 表达式 符号名 EQU 寄存器名 注意:表达式必须是一个简单再 ...

  6. ARM汇编伪指令介绍(全集)

    在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用 ...

  7. 交叉编译器的命名规则及详细解释(arm/gnu/none/linux/eabi/eabihf/gcc/g++)

    在linux系统下搞嵌入式开发,交叉编译器那肯定是必备工具.用的场合多了,就会见到各种各样的编译工具,比如: arm-linux-gcc arm-linux-gnueabi-gcc arm-none- ...

  8. 最全ARM汇编伪指令

    在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用 ...

  9. 【转】ARM汇编伪指令介绍

    转自:http://patton.spaces.eepw.com.cn/articles/article/item/32951 在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的 ...

最新文章

  1. Spring微服务视频免费发放
  2. itchat爬取朋友圈签名制作词云
  3. 20、Power Query-数据合并、拆分
  4. spark的源码编译
  5. 【远程沟通】“云答辩”“云招聘”双管齐下,解救“最难毕业生”
  6. 大数据预测实战-随机森林预测实战(一)-数据预处理
  7. java string == 比较,Java 基础 之 String 的比较
  8. EC++学习笔记(四) 设计与声明
  9. Linux四剑客详解——grep
  10. 三星note5 android9,【极光ROM】-【三星NOTE9 N960X-845】-【V16.0 Android-Q-TD5】
  11. 【免费分享淘宝视频教程】pyhton大数据人工智能神经网络爬虫零基础视频教程从入门到精通-百度云
  12. python 图片转换为ico图标
  13. Android蓝牙自动配对Demo,亲测好使!!!
  14. 逍遥安卓模拟器卡android,逍遥模拟器不流畅解决方法 逍遥安卓模拟器怎么设置不卡...
  15. ansys经典界面分析工字钢_工字钢_ANSYS实例分析72道(含结果)
  16. 简单阅读golang的net/http包和Negroni的源码
  17. 桥墩水流绕流阻力问题计算
  18. mysql 跨服务器复制_mysql数据库跨服务器间复制与迁移
  19. Python 将.py转换为.exe详解
  20. 博主称抖音屏蔽很多关键词致谐音梗大流行

热门文章

  1. 百度空间部分表单查询
  2. Android最好用的底部导航栏
  3. 强力载荷能力,沃飞长空工业型无人机适配各行各业
  4. 沃飞长空发力低空智慧出行,这是城市交通的未来吗?
  5. wifi pineapple | WiFiPineapple plus 基本使用教程
  6. 爬虫模拟POST请求https (爬中国银行汇率----中文)
  7. Android总结随笔
  8. Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;
  9. 微信公众号 纯文字自动回复 换行失效了
  10. blog同步更新通知