HelloWorld

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

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) 编辑