标号(LABEL)是为一组机器指令所起名字,表示程序中的指令或者数据地址的符号。标号可有可无,只有当需要用符号地址来访问该语句时,才给此语句赋予标号。通过在目标地址的前面放上一个标号,可以在指令中使用标号来代替直接使用地址。标号是程序目标标志,总是和某地址相联系,供转移或循环指令控制转移使用。 标号是编译程序使用的,也就是说程序中最后生成的代码中标号都换成了相应的数值。
因标号表示是指令地址,所以它有三个属性,即段属性、偏移属性和类型属性。段属性即段地址,标号段必须在CS中。偏移属性是表示该标号到段首地址距离,单位是字节,是16位无符号整数。类型属性是距离属性,指标号和转移指令距离,该标号在本段内引用,距离在-128~ 127之间时称短标号,距离属性为SHORT,当标号在本段,距离在-32768~ 32767之间时称近标号,距离属性为NEAR,当引用标号指令和标号不在同一段时称远标号,距离属性为FAR。
根据标号的生成方式可分为3种:
1.基于PC的标号。
基于PC的标号是位于目标指令前或者程序中数据定义伪操作前的标号。这种标号在汇编时将被处理成PC值加上(或减去)一个数字常量。常用于表示跳转指令的目标地址,或者代码段中所嵌入的少量数据。
2.基于寄存器的标号。
基于寄存器的标号常用MAP和FIELD未定义操作,也可以该用EQU伪定义。这种标号在汇编时将被处理成寄存器的值加上(或减去)一个数据常量。常用于访问数据段中的数据。
3.绝对地址。
绝对地址是一个32位数据。它可以寻址2的32次方 -1,即直接可以寻址整个内存空间。
关键字:ARM 汇编 标号
引用地址:
ARM汇编中的标号
推荐阅读最新更新时间:2024-03-16 14:46
ARM Linux启动流程分析——内核自解压阶段
本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。 内核版本:Linux-3.12.35 分析文件:linux/arch/arm/boot/compressed/head.S 单板:树莓派b 在内核启动前,bootloader(我使用的是uboot)做如下准备工作: 1.CPU寄存器:R0 = 0、R1 = 机器码(linux/arch/tools/mach-types)、R2 = tags在RAM中的物理地址 2.CPU和MMU:SVC
[单片机]
ARM的BX指令
bx的语法格式 BX{ cond } <Rm> <cond>为指令执行的条件码。当<cond>忽略时指令为无条件执行。 <Rm>该寄存器中为跳转的目标地址。当 Rm 寄存器的bit 为0时,目标地址处的指令为ARM指令; 当 Rm 寄存器的bit 为1时,目标地址处的指令为Thumb指令。 看一段简单程序的片段,不用考虑省略号的内容,看框架就可以了! EXPORT LEDTEST AREA testasm,CODE,READONLY CODE32 LEDTEST 。。。。。。。。。。 。。。。。。。。。 。。。。。。。。 。。。。。。。。。 。。。。。。。。。。。 ledon ........
[单片机]
ARM处理器寄存器和汇编指令系统
1.ARM的处理器模式 ARM体系结构支持7种处理器模式,分别是:用户、FIQ、IRQ、管理、中止(abort)、未定义和系统模式。除了用户模式外,其余都称之为特权模式。除了用户和系统模式外,其余都称之为异常模式。 2.ARM的存储器组织 ARM处理器总共有37个寄存器:包括31个通用寄存器、包括程序计数器(PC)、和6个状态寄存器。这些寄存器在不同模式下,不能被同时看到,有些名称是重叠的。分为三类:不分组寄存器,分组寄存器和程序计数器 1)不分组寄存器R0~R7 所有的处理模式下、它们都是访问同一个寄存器,因此只有8个不分组寄存器。 2)分组寄存器R8~R14 每一个访问的物理寄存器取决于当前的处理器模式,有些是共用的
[单片机]
ARM指令系统的几点见解(一)
1.ARM指令的条件码 ARM数据处理指令根据执行结果来选择是否更新条件码标志,更新时,则指令中须包含后缀S. 2.多寄存器寻址 LDMIA R0, {R1, R2, R3, R5}; R1 - ; R2 - ; R3 - ; R5 - 3.堆栈寻址 满堆栈:当堆栈指针指向最后压入堆栈的数据时。---当数据在第2个位置时,满。 空堆栈:当堆栈指针指向下一个将要放入数据的空位置时。 --当数据在倒数第2位置时,满。 4.跳转指令 B{ cond } target_address 一般使用标号(例:B LOOP), 不使用地址 5.带返回和状态
[单片机]
ARM处理器总结
ARM处理器总结(一) ARM处理器简介 ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。 ARM处理器状态 ARM处理器有两种工作状态:ARM状态,执行32位字对齐的ARM指令;Thumb状态,执行16位半字对齐的Thumb指令。在程序执行过程中两种状态可切换,并不影响处理器的工作模式和寄存器内容,在开始执行代码时,处理器需要在ARM状态。 ARM处理器模式 七种:用户模式,快速中断模式,外部中断模式,管理模式,数据访问终止模式,系统模式和未定义指令中止模式。模式可通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,某些被保护的系统资源进制被访问
[单片机]
ARM Cortex-M3的嵌入式网络播放系统设计应用
ARM Cortex-M3的嵌入式网络播放系统设计应用 随着网络应用的普及,为普通嵌入式系统增加网络功能,能更好满足消费者对网络资源的需求。这里采用基于ARM Cortex-M3的微控制器LM3S1138实现一种具备网络功能的播放终端系统,该系统不仅具有良好的播放效果,还可从网络音乐服务器上点播音乐并实时播放。 1 网络播放系统的设计方案 该网络播放系统由服务器、用户终端和音响设备组成。其中,服务器通过以太网提供音乐资源,用户终端通过网络下载音频数据再实现音频解码,音响设备实现音乐播放。图1给出该系统设计框图。 该系统设计采用基于ARM Cortex-M3的控制器LM3Sll38作为主控制器。该控制器改进了代码密度,减少中断延
[单片机]
ARM增效能 x86降功耗 两阵营投入服务器市场长期竞争
DIGITIMES Research观察研究,ARM架构已逐步提升、强化其功效机制,使ARM架构的处理器能合乎伺服器系统的需求,这些功效机制包含多核、记忆体传输时的资料错误检查与更正、超越4GB的系统主记忆体定址能力,及64位元的运算等。 若将ARM架构针对伺服器的提升历程与x86架构相比较,可发现两者的提升历程相类似,差别在于x86架构的演进历程较早,然ARM架构的追赶脚步快速,功效差距已从10~15年拉近至7年。 当ARM架构逐渐提升后,x86架构的发创、主导、主占者英特尔亦有所警惕,以原有的Atom晶片为基础,衍生出高整合、低功耗的伺服器用处理器,即Atom S系列、C系列。 ARM架构以低功耗出发逐渐提升效能,x86
[手机便携]
三星宣布与 Arm 合作,以 GAA 代工技术优化下一代 Cortex-X CPU 内核
2 月 20 日消息,三星电子旗下芯片代工部门宣布与 Arm 合作,共同开发、优化下一代 Cortex-X 核心。据介绍,此次合作涉及通过使用 Arm 最新 Cortex-X 设计和三星 GAA 工艺,旨在提升 CPU 性能和能效表现。 也就是说,Arm 下一代 Cortex-X 系列 CPU 架构将针对三星电子的 Gate-All-Around(GAA)芯片制造技术进行优化,这意味着基于下一代 Cortex-X 系列架构的 CPU 在使用三星 2nm 和 3nm GAA 工艺制造时可获得进一步优化,从而提供更高的性能和更低的功耗。 IT之家查询相关资料获悉,GAA 是目前业界公认的下一代技术,相比 FinFET 进一步改进了半导
[嵌入式]