- 博客(11)
- 资源 (28)
- 收藏
- 关注
原创 ARM LDR 伪指令辨析
ARM LDR 伪指令的格式:1LDR Rn, =expr如果name是立即数的话LDR R0,=0X123;//将0X123存入R0如果name时个标识符LDR R0,=NAME;//将NAME的地址存入R01LDR R0, =0x3FF5000 ; 伪指令: 把 0x3FF5
2013-06-27 15:04:29 904
原创 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有堆栈指针初始化这个动作。但是,从来只是看到有人说系统初始化要初始化堆栈,即正确给堆栈指针sp赋值,但是却从来没有看到有人解释,为何要初始化堆栈。所以,接下来的内容,就是经过一定
2013-06-27 14:56:23 1585
原创 七种寻址方式(立即寻址、寄存器寻址)
七种寻址方式(立即寻址、寄存器寻址)一、立即寻址方式操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。例如:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456
2013-06-27 14:01:25 89208 7
原创 ARM汇编语言调用C函数之参数传递
之前在学习如何在C语言中嵌入汇编时有了解到C语言之前的参数调用是使用寄存器R0 传递第一个参数,R1传递到第二个..一直到R3传递第四个参数.但是实际上有时可能传递的参数非常多,超过8个,或是参数中有浮点数之类,参数也会超过 4个寄存器,对于超出的部份并不使用R4,而是使用堆栈的方式,但具体是如何的方式很多网站就没了下文了,好在在GG的帮助下,让我在凌晨1.30找到了 (为啥老是在半夜呢?)—
2013-06-25 14:32:25 5532
原创 Uboot启动流程(图+代码)
Uboot是嵌入式系统中最常用的bootloader,这里我们以s3c2410为例分析一下uboot的启动流程。首先通过uboot的链接文件,我们可以看到uboot运行是执行的第一段代码在start.S中。ENTRY(_start) SECTIONS { . = 0x00000000; . = AL
2013-06-24 15:31:40 1897
原创 uboot 分析之二 start_armboot()函数
第一个c函数位于arch/arm/lib/board.c start_armboot会马上申请三块空间,一块用来分配给malloc管理,一份用来存储gd_t,一份用来存储bd_t。他们在RAM中内存布局如上图所示。void start_armboot (void){ init_fnc_t **init_fnc_ptr; char *s; int de
2013-06-24 15:28:48 2115
原创 uboot 分析之一 start.S
最近给 Mini6410 添加开机启动画面和操作系统未启动时充电管理画面。使用的平台是友善的mini6410。 由于操作系统未启动,大部分工作要在UBoot里进行完成。现在充电管理和开机动画基本实现,呵呵,中间经历了N多磨难啊 现在把做的工作记录下来。 前面有两篇文章是介绍UBoot的makefile的。我们从makefile中看到编译生成的第一个目标文件是start.
2013-06-24 15:26:17 1142 1
原创 汇编学习总结记录
1.1. 汇编学习总结记录对于我们之前分析的start.S中,涉及到很多的汇编的语句,其中,可以看出,很多包含了很多种不同的语法,使用惯例等,下面,就对此进行一些总结,借以实现一定的举一反三或者说触类旁通,这样,可以起到一定的借鉴功能,方便以后看其他类似汇编代码, 容易看懂汇编代码所要表达的含义。1.1.1. 汇编中的标号=C中的标号像前面汇编代码中,有很多的,以点开头,加上一个名字的
2013-06-24 11:38:48 972
原创 LDR指令详解
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。(1)LDR r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0 *如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R0
2013-06-24 11:14:19 6787
原创 汇编小知识
汇编小知识.section .data汇编程序中以 . 开头的名称并不是指令的助记符,不会被翻译成机器指令,而是给汇编器一些特殊的指示,称为汇编指示(Assembler Directive).section 指示把代码划分成若干个段(Section).data 段保存程序的数据,是可读可写的,C程序的全局变量也属于.data段。本程序中没有定
2013-06-24 10:39:09 970
sscom5.13串口调试工具
2023-03-27
sttoolset-STM32读写HEX工具
2023-03-27
CmBacktrace开源代码,亲测可用
2023-03-27
PT1000 分度表C语言代码
2020-12-29
STM32_OS.zip
2020-06-17
Quartus_13.0_WinXp_32bit破解器
2013-06-24
Linux-C-编程一站式学习
2012-09-03
python教程pdf合集
2012-03-18
C语言函数速查手册--标准库函数
2010-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人