ARM APCS 学习笔记
最近在学习arm体系架构,先简单了解一下APCS。
什么是APCS?http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf
具体的概念随后理解下,先提供一个汇编和反汇编的方法,以供实验。之后会详细写APCS的东西。
获取arm gnu工具链之后,我们写一个简单的c代码。
int func0(int x)
{return x++;
}
void main()
{int x = 9;x = func0(x);
}
然后执行: arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb hello.c -nostartfiles -o hello.o
这时会生成hello.o,我们再反汇编一下:
arm-none-eabi-objdump -S hello.o > hello.s
hello.s:
hello.o: file format elf32-littlearmDisassembly of section .text:00008000 <func0>:8000: b480 push {r7}8002: b083 sub sp, #128004: af00 add r7, sp, #08006: 6078 str r0, [r7, #4]8008: 687b ldr r3, [r7, #4]800a: 1c5a adds r2, r3, #1800c: 607a str r2, [r7, #4]800e: 4618 mov r0, r38010: 370c adds r7, #128012: 46bd mov sp, r78014: bc80 pop {r7}8016: 4770 bx lr00008018 <main>:8018: b580 push {r7, lr}801a: b082 sub sp, #8801c: af00 add r7, sp, #0801e: 2309 movs r3, #98020: 607b str r3, [r7, #4]8022: 6878 ldr r0, [r7, #4]8024: f7ff ffec bl 8000 <func0>8028: 6078 str r0, [r7, #4]802a: bf00 nop802c: 3708 adds r7, #8802e: 46bd mov sp, r78030: bd80 pop {r7, pc}8032: bf00 nop
~
下面的文章以hello.s来分析APCS,未完待续!
ARM APCS 学习笔记相关推荐
- 嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析)
嵌入式知识-ARM裸机-学习笔记(2):利用GPIO来控制LED(附mkv210_image.c文件解析) 首先声明该博客是针对朱有鹏老师的嵌入式课程进行笔记的总结. 一.通过GPIO控制点亮LED( ...
- 嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210)
嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210) 一.SD卡介绍 1. SD卡背景知识和特点 SD卡.MMC卡.MicroSD.TF卡:这些卡其实内部就是Flash存储颗粒,比 ...
- I.MX6ULL ARM Linux学习笔记
I.MX6ULL ARM Linux学习笔记 写在前面 S1:U-Boot S2:正点原子U-Boot编译 S3:U-Boot基本命令第1讲:help.bdinfo和环境变量命令 S4:U-Boot基 ...
- 嵌入式知识-ARM裸机-学习笔记(8):SoC定时器与看门狗(WDT)
嵌入式知识-ARM裸机-学习笔记(8):SoC定时器与看门狗(WDT) 一.定时器 1. 定时器简介 定时器是SoC中最常见的外设 (1)定时器与计数器.计数器是用来计数的(每隔一个固定时间会计一个数 ...
- 嵌入式知识-ARM裸机-学习笔记(12):ADC模数转换器
嵌入式知识-ARM裸机-学习笔记(12):ADC模数转换器 一.ADC 1. 什么是ADC ADC(analog digital converter):模数转换(也就是模拟量转换为数字量).由于CPU ...
- ARM汇编语言学习笔记
汇编是对寄存器操作的,不知道一些和主控制器相关的寄存器的作用,根本无法理解某些指令,所以先自己学习相关寄存器和工作模式. 下面是<ARM 嵌入式体系结构与接口技术(Cortex-A8 版) &g ...
- ARM Cortex-M3 学习笔记(3)
最近在学ARM Cortex-M3,找了本号称很经典的书"An Definitive Guide to The ARM Cortex-M3"在看.这个系列学习笔记其实就是在学习这本 ...
- arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记
本文介绍如何用IDA进行动态调试及部分ARM指令的学习. 环境:已root的安卓手机一部,IDA pro 6.8,win7系统. 下载样本app,并已确认可调试(debuggable = true), ...
- ARM裸机学习笔记(一)GPIO_and_LED
(一)安装交叉编译工具链 1.linux下安装软件的方法 在线安装.譬如ubuntu中使用apt-get install vim来安装vim软件. 自己下载安装包来安装.这种方式的缺陷就是你不知道你下 ...
最新文章
- 唉,面试官这 5 道题,难为我这 3 年经验了
- 报名 | 大咖云集,清华方圆系列之大数据分析与可视化报告会
- 【干货】大中型企业网络搭建
- Linux 串口编程分析
- 微型计算机内存为8m,通常说一台微机的内存容量为8M,指的是_______。
- 牛客网(剑指offer) 第五题 用两个栈来实现一个队列
- 如何配置Filter过滤器处理JSP中文乱码
- awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!
- phpcms 轮播图 (posid推荐位 )调用 - 代码篇
- SSH中直接运行php文件
- 【java笔记】函数式接口
- linux轻量级的图形库,基于Microwindows的嵌入式Linux轻量级图形应用库的设计
- git pull/git fetch更新分支
- python中def main是什么意思_python - 为什么要使用def main()?
- 使用ftp访问资源管理器托拽文件下载出现“当前的安全设置不允许从该位置下载文件”提示
- 1 error and 0 warnings potentially fixable with the `--fix` optio
- 数据之美:迄今 10 佳数据可视化示例
- Spring(eclipse)简要笔记
- HoloLens2之路-配置文件(一)
- Mean squared error MSE即方差
热门文章
- 记一次burpsuite安装问题的解决(包括打不开burp-loader-keygen.jar,点击run无反应,回显-Xbootclasspath/p is no longer a sup
- 证券投资学原理(韩德宗 朱晋)知识点
- 东西方赌王“口水战”升级 措词激烈论“竞争”
- Android kotlin 大全
- 停止抱怨的力量是多么强大!
- 携程在线网页制作(flex布局)(静态页面)
- redis客户端工具下载,RedisDesktopManager,RedisInsight
- 屏幕的背光是什么呢?
- yum.repos.d没有这个文件和目录解决方法
- 初级程序员软考重点5 程序设计语言