【ARM扩展资料】数据表示

文章目录

  • 【ARM扩展资料】数据表示
    • 一、常量表达
      • 1.常数
      • 2.字符和字符串
      • 3.符号常量
      • 4.数值表达式
    • 二、指示符
      • 1.区段定义指示符
      • 2.标号属性指示符
      • 3.数据定义指示符
      • 4.地址对齐指示符

一、常量表达

1.常数

  • 十进制:由0~9数字组成,以非0数字开头

  • 十六进制:由0~9数字、A~F(a~f)字母组成,以0X(x)开头

  • 二进制:由0、1两个数字组成,以0B(b)开头

  • 八进制:由0~7数字组成,以数字0开头

ARM指令中的数值操作数称为立即数,ARM汇编语言通常在常数前使用井字符“#”表达。但是,A64汇编语言并没有要求立即数前必须有“#”字符,所以,加或者不加“#”字符均可。

2.字符和字符串

单个字符可以使用单引号,字符串使用双引号。可以使用转义符“\”,例如:\b、\t、\n、\r,依次表示退格符、制表符、换行符、回车符,对应的ASCII值依次是0x08、0x09、0x0A、0x0D。

3.符号常量

使用“.EQU”(或“.SET”)指示符把一个数值用符号表达:

.EQU  标识符, 数值表达式

也可以使用等号“=”指示符定义符号常量:

标识符 = 数值表达式

4.数值表达式

数值表达式是使用运算符连接各种常量所构成的算式。

小数点“.”代表当前地址,可用于计算字符串长度:

msg: .string  "Hello, ARMv8!\n"    // 定义字符串(以0结尾)len =.-msg // 符号常量len定义为字符串长度

二、指示符

1.区段定义指示符

区段(Section)也称为段(Segment)。GNU ARM汇编程序常用3种区段指示符:

.TEXT    // 定义一个只读的代码区段
.DATA    // 定义一个可读可写的数据区段,全局变量在此区段保存
.BSS // 定义一个可读可写、但未初始化的数据区段

程序员还可以使用区段指示符“.SECTION”自定义区段。

2.标号属性指示符

标号在定义时具有地址和类型属性,有时还需要声明具有一些特殊属性:

.GLOBAL 标号   // 将函数名或变量名声明为全局标号,使其允许外部模块调用
.EXTERN 标号   // 声明函数名或变量名来自外部模块,需要在本模块中使用

类型声明“.TPYE”指示符用于强调标识符的对象或函数属性:

.TYPE 标识符, @OBJECT  // 类型声明:该标识符是一个数据对象
.TYPE 标识符, @FUNCTION    // 类型声明:该标识符是一个函数名

3.数据定义指示符

数据定义指示符为变量申请固定长度的存储空间,一般格式:

变量名: 数据定义指示符 数值表达式1, 数值表达式2, …

数据定义指示符(AArch64):

指示符 数据类型 变量定义功能
.BYTE 8位、1个字节 字节单元,每个数据是8位、字节量
.HWORD(.SHORT) 16位、2个字节 半字单元,每个数据是16位、半字量
.WORD(.INT) 32位、4个字节 字单元,每个数据是32位、字量
.XWORD(.DWORD、.LONG、.QUAD) 64位、8个字节 双字单元,每个数据是64位、双字量
.OCTA 128位、16个字节 4字单元,每个数据是128位、4字量
.ASCII 字符串 字节单元,每个数据是8位字符
.STRING(.ASCIZ) 字符串 字节单元,每个数据是8位字符,结尾添加0

指示符“.SPACE”分配一个连续的存储空间,每个存储单元具有相同的初值:

变量名: .SPACE 存储单元数, 数值表达式

数值表达式可以省略,表示变量值默认为0。

4.地址对齐指示符

.ALIGN 数值表达式

数值表达式(例如为n)表示对齐地址的二进制低n位为0,也就是2幂次方(即2^n)字节边界。例如,数值表达式为1、2、3、4依次表示地址对齐于2、4、8、16字节边界。使用0或者NOP指令填充无用的存储单元。

在Linux平台,大多数AArch64存储器访问没有要求必须对齐边界地址,但对齐了地址边界,处理器硬件执行的速度更快、性能更高。

【汇编语言】【ARM扩展资料】数据表示相关推荐

  1. 【汇编语言】【ARM扩展资料】汇编语言开发

    [ARM扩展资料]汇编语言开发 文章目录 [ARM扩展资料]汇编语言开发 一.指令格式 1.典型的A64指令格式 2.加减法的简单指令示例: 二.语句格式 1.汇编语言语句的通用格式: 三.显示程序 ...

  2. 【汇编语言】【ARM扩展资料】数据寻址

    [ARM扩展资料]数据寻址 文章目录 [ARM扩展资料]数据寻址 一.寄存器寻址 1. 寄存器移位寻址 2. 寄存器扩展寻址 二.存储器寻址 1. 寄存器间接寻址 2. 带立即数偏移量的寄存器间接寻址 ...

  3. 【汇编语言】【ARM扩展资料】硬件组成

    [ARM扩展资料]硬件组成 文章目录 [ARM扩展资料]硬件组成 一.ARM处理器 1. ARM体系结构 2. Cortex系列处理器 3. ARMv8-A处理器 二.结构基础 1. 异常 2. 执行 ...

  4. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

    史上最牛的Linux内核学习方法论   点击下载 我的arm_linux移植笔记   点击下载 S3C2440完全开发流程   点击下载 Linux系统命令及其使用详解完整版   点击下载 Linux ...

  5. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...

    史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...

  6. 汇编语言--ARM汇编

    ARM汇编指令总结 目的 总结目的是为了看懂ARM返汇编程序含义.如果是抱着来看这篇blog的盆友,希望可以帮到你们:如果有错误,请多指出.谢谢! # ARM指令的一般格式 arm指令字长为固定的32 ...

  7. 汇编语言符号扩展指令及应用示例

    1. 什么是符号扩展?为什么要用符号扩展? 所谓符号扩展,就是将数据的表示大小加倍,数值仍保持不变,即将符号位扩展到同样大小的寄存器空间中去,由两部分构成一个比原值表示大一倍的数.正数必须要0扩展,负 ...

  8. Windows环境下32位汇编语言程序设计 相关资料

    Windows环境下32位汇编语言程序设计.pdf:https://474b.com/file/15153148-465076702 <Windows环境下32位汇编语言程序设计>随书光盘 ...

  9. ARM扩展嵌入式与物联网产品阵容,推全新Cortex-A32处理器

    ZD至顶网服务器频道 02月24日 新闻消息:ARM针对下一代嵌入式产品推出ARM Cortex-A32,为超高能效应用处理器系列再添新成员.Cortex-A32处理器采用ARMv8-A架构,赋予功耗 ...

最新文章

  1. 13. 微型计算机中,传送cpu发出的读/写指令的总线是,我的微机原理题库
  2. 一文读懂CV中的注意力机制
  3. Swift入门篇-基本类型(1)
  4. java筑基期(9)----ajaxjson(1)
  5. java用户界面项目_结对项目(带图型用户界面)Java实现【柴政-陈起廷】
  6. Python笔记-获取拉钩网南京关于python岗位数据
  7. CVPR 2020 Oral |神奇的自监督场景去遮挡
  8. 回调函数 EnumFontFamProc
  9. HP server ILO
  10. Java软件开发流程
  11. 2022华为软件精英挑战赛复盘
  12. 浅析企业应收账款保理融资
  13. java自动拼图_JAVA编写拼图小游戏带自动寻路算法
  14. dedecms安全漏洞之/include/common.inc.php漏洞解决办法
  15. linux ipad 视频,是否可以在iPad或iPad上同时播放多个视频文件?
  16. process on画流程图和思维导图总结
  17. html5 arc 椭圆,html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
  18. 国庆第三天的一些杂感
  19. cypress 自动化测试
  20. Ansible——Ansible的练习

热门文章

  1. IDEA插件: 一键自动部署jar到远程服务器 使用 Cloud Toolkit 来部署应用到腾讯云、阿里云服务器
  2. 邮局解决方案 发邮件邮箱使用 系统邮件自动发送 邮件发送提醒 网易免费企业邮 设置自己的域名邮箱
  3. 如何查看Android项目的gradle版本和路径
  4. 服务器虚拟机操作系统,服务器虚拟机操作系统
  5. activiti Stream之list转map及问题解决
  6. c语言实现语音检测vad_AI大语音(二)——语音预处理
  7. centos 程序 mysql数据库文件位置_Centos mysql数据库存放位置更换
  8. python中math函数_Python math模块 数学函数教程
  9. 苹果x与苹果xs的区别_卡通与苹果Xs手机壳的完美邂逅,可爱气质萦绕指尖
  10. 打印html文件都是空白页,我打印时的额外空白页面(IE中除外) – 是我的打印css吗?...