语言原理
p.c.wang
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态转载 2013-04-04 16:59:26 · 809 阅读 · 0 评论 -
CString和String的区别
CString 是MFC或者ATL中的实现,string是C++标准库中的实现string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中string 是 语言的东西 是c++语言的CString 是VC++ IDE内嵌的,是MFC的不是一个概念CString 离开VC++不能用string 在任何支持C++的ID原创 2013-08-13 19:32:41 · 1606 阅读 · 0 评论 -
ARM映像文件
ARM映像文件ARM中的各种源文件(包括汇编文件,C语言程序及C++程序等)经过ARM编译器编译后生成ELF(Executable and linking format)格式的目标文件。这些目标文件和相应的C/C++运行 时用到的库经过ARM连接器处理后,生成ELF格式的映像文件(image),这种ELF格式的映像文件是一种可执行文件,可被写入嵌入式设备的ROM 中。bin文件是真转载 2015-02-11 13:41:37 · 2217 阅读 · 0 评论 -
SVC和PendSV
1.SVCSVC(Supervisor Call)指令用于产生一个SVC异常。它是用户模式代码中的主进程,用于创造对特权操作系统代码的调用。SVC是用于呼叫操作系统所提供API的正道。用户程序只需知道传递给操作系统的参数,而不必知道各API函数的地址。SVC指令带一个8位的立即数,可以视为是它的参数,被封装在指令自身,如:SVC 3; 呼叫3号系统服务 则3被封装在这个S转载 2015-03-27 15:00:26 · 2080 阅读 · 0 评论 -
详细学习ARM 汇编指令1
一、汇编一般使用的场合:(1)、汇编语言在ARM中一般用在启动代码中,比如Bootloader 初始化时对 CPU 和 协处理器 等进行初始化, 此时没有建立起 C 语言运行环境, 这个时候使用汇编语言执行初始化操作;(2)、汇编效率比较高, 在Linux 内核中对效率有特殊要求的地方也会使用汇编语言来编写. 二、ARM汇编的分类:汇编语言可以分为ARM标准汇编转载 2015-03-29 10:09:50 · 1142 阅读 · 0 评论 -
ARM 伪指令详解
4.1 ARM汇编器所支持的伪指令在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪转载 2015-03-29 10:34:38 · 4722 阅读 · 0 评论