GNU汇编
傲世阿龍
这个作者很懒,什么都没留下…
展开
-
gnu嵌入式汇编的基本格式
asm( "汇编语句" :输出寄存器 :输入寄存器 :会被修改的寄存器);其中对于特殊寄存器占用的关键字:例子:#define clear_bit(nr,addr) ({\ register int res __asm__("ax"); \/*表示res放在ax寄存器中*/__asm__ __volatile原创 2017-04-28 19:09:19 · 726 阅读 · 0 评论 -
介绍GNU中__attribute__机制的网址
这里记录一下介绍gnu中__attribute__机制的网址http://www.unixwiz.net/techtips/gnu-c-attributes.html介绍GNU中对C扩展的网址https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/C-Extensions.html#C-ExtensionsGNU中特点介绍的首页https://原创 2017-11-14 19:29:59 · 217 阅读 · 0 评论 -
GNU中__attribute__机制介绍
1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attrib转载 2017-11-14 21:01:04 · 242 阅读 · 0 评论 -
linux中的typeof使用
Another way to refer to the type of an expression is with typeof. The syntax of using of this keyword looks likesizeof, but theconstruct acts semantically like a type name defined withtypedef.Th原创 2017-11-15 09:44:37 · 653 阅读 · 0 评论 -
一篇不错的关于GCC特性的文章
Linux 内核中的 GCC 特性了解用于 C 语言的 GCC 扩展文章原来的地址:https://www.ibm.com/developerworks/cn/linux/l-gcc-hacks/GCC 和 Linux 是出色的组合。尽管它们是独立的软件,但是 Linux 完全依靠 GCC 在新的体系结构上运行。Linux 还利用 GCC 中的特性(称为扩展)实转载 2017-11-15 09:34:09 · 407 阅读 · 0 评论 -
____cacheline_aligned和____cacheline_aligned_in_smp
这两个都属于GCC扩展函数。____cacheline_aligned instructs the compiler to instantiate a struct or variable at an address corresponding to the beginning of an L1 cache line, for the specific architecture, i.e原创 2017-11-14 11:29:03 · 5362 阅读 · 0 评论 -
int __builtin_constant_p (exp)函数的使用
int __builtin_constant_p (exp)是GCC内置函数功能:— Built-in Function: int __builtin_constant_p (exp)You can use the built-in function __builtin_constant_p todetermine if a value is known to be consta原创 2017-11-14 09:40:09 · 549 阅读 · 0 评论 -
gnu链接脚本解析
一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld –verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响?).-转载 2017-09-12 14:59:06 · 782 阅读 · 2 评论 -
ld链接器的链接选项(持续)
-T name.ld: 使用指定的链接脚本name.ld-m elf_i86 :生成i386平台下的elf格式的可执行文件-nostdlib:不链接C语言的标准库原创 2017-09-13 09:41:16 · 2173 阅读 · 0 评论 -
gcc编译选项(持续)
-m32 :生成32位代码-ggdb | -gstabs+ :是添加相关的调试信息,调试对后期的排错很重要-nostdinc :不包含C语言的标准库的头文件-fno-builtin :要求gcc不主动使用自己的内建函数,除非显式声明-fno-stack-protector:不使用栈保护检测原创 2017-09-13 09:38:41 · 875 阅读 · 0 评论 -
嵌入式汇编基本语法
Basic inline assemblyThe format for basic inline assembly is very simple, and much likeBorland's method.asm ("statements");Pretty simple, no? Soasm ("nop");will do nothing of cou翻译 2017-09-04 18:10:38 · 754 阅读 · 0 评论 -
AT&T和Intel汇编的语法
Ok. This is meant to be an introduction to inline assembly under DJGPP.DJGPP is based on GCC, so it uses the AT&T/UNIX syntax and has asomewhat unique method of inline assembly. I spent many hours翻译 2017-09-04 17:39:58 · 266 阅读 · 0 评论 -
mips汇编时常用的宏指令
MIPS公司最初设计的汇编器是一个宏伟的计划,它能完成智能宏的扩展,延迟槽填充,窥孔优化以及尽可能减少流水线堵塞而对复杂指令序列进行指令重组。不过其他的汇编器简单多了,因为高级语言的先进编译器技术已经可以完成这些优化工作。为了保持汇编代码的兼容性,同时为了让汇编程序员轻松一点,所有的MIPS汇编器至少实现下列功能:(1)进行宏展开(2)为了让分支和加载指令的延迟槽对程序员透明,能够在需要的原创 2017-05-18 18:07:20 · 3410 阅读 · 0 评论 -
GNU中attribute中的cold和hot
cold The cold attribute on functions is used to inform the compiler that thefunction is unlikely to be executed. The function is optimized for size rather than speed and on many targets it is p原创 2017-11-21 15:59:15 · 3585 阅读 · 0 评论