摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010113091137224/ 栈区:主要用来存放局部变量, 传递参数, 存放函数的返回地址。.esp 始终指向栈顶, 栈中的数据越多, esp的值越小。 堆区:用于存放动态分配的对象, 当你使用 malloc和new 等进行分配时,所得到的空间就在堆中。动态分配得到的内存区域附... 阅读全文
posted @ 2014-03-25 22:59 sheshiji 阅读(657) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/1204468420110925635503/ 设置看门狗定时器的时候,必须先关闭它才能设置,否则在开启状态下设置看门狗定时器可能会出现问题。 一般单片机和DSP、还有ARM芯片里设置内部功能的时候,都是先关闭这个功能,再设置。中断也是类似的,我们通常它把中断全部关闭了,然后在程序里面进一步设置。 要搞... 阅读全文
posted @ 2014-03-25 22:50 sheshiji 阅读(943) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/12044684201101214457186/ 一般情况下,一个程序本质上都是由 bss段、data段、text段三个组成的——本概念是当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。 在采用段式内存管... 阅读全文
posted @ 2014-03-25 22:44 sheshiji 阅读(183) 评论(0) 推荐(0)
摘要: 原文地址:http://blog.csdn.net/HumorRat/article/details/5631023 对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的I/O地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便的多了。 以#define IOPIN (*((v... 阅读全文
posted @ 2014-03-25 22:36 sheshiji 阅读(244) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111610612200/ ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令,ARM 的协处理器指令主要用于: ARM 处理器初始化 ARM 协处理器的数据处理... 阅读全文
posted @ 2014-03-25 22:26 sheshiji 阅读(226) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111482417545/ 6、GNU汇编程序中的常数 十进制数以非0数字开头,如:123和9876; 二进制数以0b开头,其中字母也可以为大写; 八进制数以0开始,如:0456,0123; 十六进制数以0x开头,如:0xabcd,0X123f; 字符串常量需要... 阅读全文
posted @ 2014-03-25 18:13 sheshiji 阅读(256) 评论(0) 推荐(0)
摘要: ARM GNU常用汇编语言介绍 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010445441611/ ARM汇编语言源程序语句,一般由指令,伪操作,宏指令和伪指令组成.ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令。 伪操作,是ARM汇编语言程序里的一些特殊的指令助记符,其作用主要是为完成汇编程序做各种准备工作,在... 阅读全文
posted @ 2014-03-25 17:55 sheshiji 阅读(238) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/1204468420103196564/ 定义和作用 LTORG或LTONG用于声明一个数据缓冲池(也称为文字池)的开始。即在此指令出现的地方放一个数据缓冲池(literal pool)。 什么时候使用 在使用伪指令LDR时,常常需要在适当的地方加入LTORG声明数据缓冲池,LDR加载的数据暂时放于数据... 阅读全文
posted @ 2014-03-25 17:34 sheshiji 阅读(471) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/12044684201031102956976/ 最近在分析u-boot的源代码,看到这一行: .balignl 16, 0xdeadbeef 不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?查阅了众多资料的时候才晃然大悟。 下面我一步步来说明: 首先要弄明白.balig... 阅读全文
posted @ 2014-03-25 17:30 sheshiji 阅读(178) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/12044684201011148226622/ 4、GNU汇编语言定义入口点 汇编程序的缺省入口是_start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点。 例:定义入口点.section .data .section .bss .section... 阅读全文
posted @ 2014-03-25 17:16 sheshiji 阅读(191) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111482023804/ 3、GNU汇编程序中的分段 .section伪操作 .section {,””} Starts a new code or data section. Sections in GNU are called .text, a code sect... 阅读全文
posted @ 2014-03-25 17:09 sheshiji 阅读(413) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111481828392/ 2、GNU汇编程序中的标号symbol(或label) 标号只能由a~z,A~Z,0~9,“.”,_等(由点、字母、数字、下划线等组成,除局部标号外,不能以数字开头)字符组成。 Symbol的本质:代表它所在的地址,因此也可以当作变量或者函数来... 阅读全文
posted @ 2014-03-25 16:59 sheshiji 阅读(188) 评论(0) 推荐(0)
摘要: 原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111481551809/ 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。 1、GNU汇编语言语句格式 任何Linux汇编行都是如下结构:[:][} @comment ... 阅读全文
posted @ 2014-03-25 16:39 sheshiji 阅读(344) 评论(0) 推荐(0)