HelloWorld

ASM,C,LUA,LINUX(gentoo)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年10月1日

摘要: 关于多维数组在前面的关于指针的文章中也多次提及了,这里有必要补充一下。0.在c语言中实际上只有一维数组,二维数组被视为数组的数组,多维数组就是数组的数组的数组的......1.数组内部按照右边标号增加的顺序依次存放2.数组退化为指针的规则不能递归调用,数组的数组退化成数组的指针,而不是指针的指针如果向函数传递二维数组int array[NROWS][NCOLUMS];f(array);那么函数的声明必须匹配void f(int [][NCOLUMS]);void f(int (*ap)[COLUMS]);第一个已经有数组的指针的意思,第二个就更加明显。3.数组的扁平化数组失去了形状 阅读全文

posted @ 2011-10-01 11:16 光铭 阅读(170) 评论(0) 推荐(0) 编辑

2011年9月30日

摘要: 软件天才与技术民工——薛涌《天才是训练出来的》读后感金旭亮 长期以来,“软件业”一直被视为“智力密集”型的“朝阳”产业,大多数从业者都受过高等教育,其平均素质居于社会各行业的前列,这个产业的顶尖人物被公众视为“知识英雄”,比如微软公司的创始人比尔盖茨雄据世界首富之位多年,更是为人“津津乐道”。 16年前我下决心开始学习计算机技术的时候,对这个行业也充满了自豪感。 然而世事难料,在2009年高考刚刚结束之际,中国权威出版机构社会科学文献出版社于2009年6月10日发布首部《中国大学毕业生就业报告(2009)》,其中“计算机专业”荣登 “就业最困难的十大专业”光荣榜。 大约从2003年开始,我在北 阅读全文

posted @ 2011-09-30 13:47 光铭 阅读(140) 评论(0) 推荐(0) 编辑

摘要: 力争上游——我眼中的“计算机产业链” Google前研究员,腾讯现任副总裁吴军博士写了一本介绍IT行业数十年风云变幻的《浪潮之巅》,其中有一章介绍个人电脑工业的生态链,比较有趣: 个人电脑工业整个的生态链是这样的:以微软为首的软件开发商吃掉硬件提升带来的全部好处,迫使用户更新机器让惠普和戴尔等公司收益,而这些整机生产厂再向英特尔这样的半导体厂订货购买新的芯片、同时向Seagate 等外设厂购买新的外设。在这中间,各家的利润先后得到相应的提升,股票也随着增长。各个硬件半导体和外设公司再将利润投入研发,按照摩尔定理制定的速度,提升硬件性能,为微软下一步更新软件、吃掉硬件性能做准备。华尔街的投资者都 阅读全文

posted @ 2011-09-30 13:39 光铭 阅读(192) 评论(0) 推荐(0) 编辑

2011年9月29日

摘要: 栈结构(参数入栈顺序跟调用方式有关,这里以C语言默认的CDECL为例(参数由右向左进入堆栈)):| ....................| (栈底方向,高位地址)| 参数3 || 参数2 || 参数1 || 返回地址 |-| 上一层[EBP] || 局部变量2 || 局部变量1 | |.....................| (栈顶方向,低位地址)栈一直随着函数调用的深入,一直想栈顶方向压下去。每次调用函数时候,先压函数参数(从右往左顺序压),再压入函数调用下条指令的地址(由call完成)。接着进入调用函数体中先执行 pushq%rbp;movq%rsp, %rbp(一般已经由编... 阅读全文

posted @ 2011-09-29 20:22 光铭 阅读(432) 评论(0) 推荐(0) 编辑

摘要: GCC-Inline-Assembly-HOWTOSandeep.Sv0.1, 01 March 2003.This HOWTO explains the use and usage of the inline assembly feature provided by GCC. There are only two prerequisites for reading this article, and that’s obviously a basic knowledge of x86 assembly language and C.1.Introduction.1.1 Copyright an 阅读全文

posted @ 2011-09-29 18:29 光铭 阅读(293) 评论(0) 推荐(0) 编辑

摘要: x86-64 Machine-Level ProgrammingRandal E. BryantDavid R. O’HallaronSeptember 9, 2005Intel’s IA32 instruction set architecture (ISA), colloquially known as “x86”, is the dominant instructionformat for the world’s computers. IA32 is the platform of choice for most Windows and Linux machines.The ISA w 阅读全文

posted @ 2011-09-29 18:26 光铭 阅读(441) 评论(0) 推荐(0) 编辑

摘要: AT&TASM开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇 编可以缩小目标代码的尺寸。另外,对于某些需要被经常调用的代码,使用汇编可以提高性能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。如果你是计算机专业的话,在大学里你应该学习过Intel格式的8086/80386汇编,这 里就不再讨论。如果我们选择的OS开发工具是GCC以及GAS的话,就必须了解AT&T汇编语言语法,因为GCC/GAS只支持这种汇编语法。本书不会去讨论8086/80386的汇编编程,这类 阅读全文

posted @ 2011-09-29 18:16 光铭 阅读(359) 评论(0) 推荐(0) 编辑

摘要: #include<stdio.h>void hello(void);int main(void){ int a[10]; char *b[10]={ "hello", "world" }; char *c[10]; printf("%p\t%p\t\n",hello,&hello); printf("%p\t%p\t%p\t\n",a,&a,&a[0]); printf("%p\t%p\t%p\t%p\t\n",b,&b,b[0],&b[0]) 阅读全文

posted @ 2011-09-29 14:48 光铭 阅读(427) 评论(0) 推荐(0) 编辑

摘要: 0.c语言并没有内建的字符串类型,传统上都是以'\0’结尾的字符数组来表示字符串的而且,c语言也没有什么真正的字符类型,字符是由它在ASCII码中的整数来表示的。1.当一个字符串常量出现在表达式中时,它的值是一个指针常量,它指向它的第一个字符的地址。这就是为什么总会出现类似char *a = "hello";这样表达式的原因。"hello"存储在代码段中,a存储在栈中。“xyz"表示x的地址*"xyz"表示‘x'”xyz"+1表示'y'的地址"xyz"[2]表示& 阅读全文

posted @ 2011-09-29 01:01 光铭 阅读(351) 评论(0) 推荐(0) 编辑

2011年9月27日

摘要: #include<stdio.h>#include<string.h>int lookup_keyword(const char *const desired_word,const char *keyword_table[],int const size){ const char **kwp; for(kwp=keyword_table; kwp<keyword_table+size; kwp++) if(strcmp(desired_word,*kwp)==0) return(kwp-keyword_table); return -1;}int main(voi 阅读全文

posted @ 2011-09-27 22:04 光铭 阅读(167) 评论(0) 推荐(0) 编辑