zoukankan      html  css  js  c++  java
  • linux汇编(ARM64)

    linux汇编(ARM64)

    quad

    arm64汇编代码里(.S)的.quad,表示4个word,即8个字节

    memset/__memset函数实现

    这两个函数都是汇编函数,在如下路径里的.S文件里实现:

    4.19archarm64libmemset.S

    misc

    一. 带点的(一般都是ARM GNU伪汇编指令)

    1. ".text"、".data"、".bss"

    依次表示的是

    “以下是代码段”,

    “以下是初始化数据段”,

    “以下是未初始化数据段”。

    2.".global"

    定义一个全局符号,通常是为ld使用。比如经常看到的

    .global _start

    3.".ascii"、".byte"、".short"、".int"、".long"、".word"、".quad"

    定义一个字符串,并为它分配空间

    定义一个字节,并为它分配空间,占单字节,0x34

    定义一个短整型,并为它分配空间,占双字节,0x1234

    定义一个整型,并为它分配空间,占四字节,0x12345678

    定义一个长整型,并为它分配空间,占四字节,0x12345678

    定义一个字,并为它分配空间,

    定义一个,并为它分配定义,占八字节,...

    比如

    .long 0x22011110//BWSCON

    .long 0x00000700//BANKCON0

    ...

    4.".abort"

    停止汇编

    5.".align"

    .align absexpr1,absexpr2

    以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16或32. 第二个表达式值表示填充的值

    6.".if .else .endif"

    .if

    .else

    .endif:支持条件预编译

    7.".include"

    .include "file":包含指定的头文件, 可以把一个汇编常量定义放在头文件中

    8.".comm"

    .comm  symbol, length:

    在bss段申请一段命名空间,该段空间的名称叫symbol, 长度为length. Ld连接器在连接会为它留出空间

    9.".equ"

    .equ symbol, expression: 把某一个符号(symbol)定义成某一个值(expression).该指令并不分配空间,相当于C语言中的#define。例如

    .equ aaa,0x20000000

    10.".macro .endm"

    .macro: 定义一段宏代码,.macro表示代码的开始,.endm表示代码的结束,.exitm跳出宏, 示例如下:

    .macro SHIFTLEFT a, b.if  < 0

    mov a, a, ASR #-

    .exitm

    .endif

    mov a, a, LSL #

    .endm

    11.".req"

    name .req register name: 为寄存器定义一个别名

    12.".code"

    .code [16|32]: 指定指令代码产生的长度, 16表示Thumb指令, 32表示ARM指令

    13.".ltorg"

    .ltorg: 表示当前往下的定义在归于当前段,并为之分配空间

    二.带下滑线的

    1._start

    汇编程序的缺省入口,但是可以更改,想要更改其他标志,到相应的链接脚本中去用ENTRY指明其他入口标志。标号可以直接认为是地址。

  • 相关阅读:
    在ensp上配置Trunk接口
    在ensp上VLAN基础配置以及Access接口
    在ensp上的ARP及Proxy ARP
    在ensp上简单的配置交换机
    1000000 / 60S 的 RocketMQ 不停机,扩容,平滑升级!
    DE1-SOC 只要加载驱动VNC就断开(DE1-SOC 只要加载驱动串口就卡住)
    通过U盘拷贝文件到DE1-SOC 的 Linux系统
    Linux 系统响应来自 FPGA 端的中断的中断号到底怎么对应?(GIC控制器)
    HPS 访问 FPGA 方法之五—— 通过FPGA 中断访问
    HPS 访问 FPGA 方法之四—— 编写 Linux 字符设备驱动
  • 原文地址:https://www.cnblogs.com/aspirs/p/15361672.html
Copyright © 2011-2022 走看看