ARM学习笔记(一)

本文介绍了ARM程序的空间布局,包括BSS段、DATA段和代码段的作用,以及如何通过LDM和STM指令进行数据传输。此外,还讲解了常量定义、寄存器赋值和ADR指令的使用,适用于理解和操作ARM程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常量定义及赋值与寄存器赋值:

1. 常量定义及赋值:

在程序的最前面,赋值采用.equ,如.equ x, 45,即定义一个常量x=45。在代码中使用x的方式与立即数相同,需要加#。

2. 寄存器赋值:

常采用MOV指令。

二、全局变量定义:

.global _start 常作为程序入口

三、程序的空间属性:

一般情况下,一个程序本质上都是有BSS段、DATA段和代码(text/code)段。

1. BSS段:用来存放程序中未初始化的全局变量的一块内存区域、静态内存分配:

.bss全局变量数据段,存放未初始化的全局变量和静态变量,可读可写,程序会为这些段初值清零。

2. DATA段:用来存放程序中已初始化的全局变量的一块内存区域、静态内存分配:

.data数据段,存放初始化了的全局变量和静态变量,可读可写。

3. 代码段:用来存放程序执行代码的一块内存,常为只读:

.text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值