摘要:
mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方式,... 阅读全文
摘要:
字符串操作指令的实质是对一片连续的存储单元进行处理,这片连续的存储单元由隐含指针DS:SI或ES:DI来指定;字符串操作指令可对内存单元按照字节、字、双字进行处理,并能根据操作对象的字节数使变址寄存器SI/DI增加或减少1、2、4字节;规定如下:A.当DF=0时,变址寄存器SI/DI增加1、2、4字... 阅读全文
摘要:
内联汇编 内联汇编是指在 C/C++ 代码中嵌入的汇编代码,与全部是汇编的汇编源文件不同,它们被嵌入到 C/C++ 的大环境中。一、gcc 内联汇编 gcc 内联汇编的格式如下:[cpp]view plaincopyasm(汇编语句:输出操作数//非必需:输入操作数//非必需:其他被污染的寄存器... 阅读全文
摘要:
计算机中的内存是以字节为单位的连续的存储空间,每个字节都有一个唯一的编号,这个编号就称为内存地址;因为内存的存储空间是连续的,所以,内存字节的地址编号也是连续的,并用二进制或十六进制数来表示;在内存中,每个变量都有自己的存储单元,不同类型的变量占用的存储单元空间大小不一样;对于多字节变量来说,在内存... 阅读全文
摘要:
当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地址当成返回地址压入栈中(这个压栈操作隐含在cal... 阅读全文
摘要:
GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是"GCC Inline ASM"(GCC内联汇编);一、基本内联汇编GCC中基本的内联汇编非常易懂,格式如下:__asm__ [__volatile__] ("instruction list");其中,1.__asm__:它是GCC定义的关... 阅读全文