首页 > 代码库 > 计算机的内存问题

计算机的内存问题

计算机的硬件主要为:控制器,寄存器,运算器,以及输入输出。

fseek:                 表示定为指针

ftell:                    表示返回当前的值

rewind:             表示返回到文件的头

 

计算机的总线就是cpu的外部总线。

计算机的存储器就是内存。

RAMcpu内部,RAMcpu内起到缓冲区的作用。比计算机的内存大,但是运算速度较慢。

 

计算机的结构有两种:

一、    冯*诺依曼结构:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

二、    哈佛结构:哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。

 

cs:                       表示代码

ds:                       表示数据

ss:                       表示栈段

ip:                       表示段内偏移

pc:                      表示指向下一条要执行的指令

readelf        -a          .o(.o文件)                                  表示查看.o文件的链接

计算机内的链接器不等同于加载器。

注:所有的汇编的入口为start.

 

有关全局变量与局部变量存放的问题:

一、    初始化的全局变量全放在data里。

二、    初始化的静态局部变量放在data里。

三、    未初始化的全局变量放在bss里。

四、    未初始化的静态局部变量放在bss里。

五、    除静态局部变量外的局部变量全在栈里面。

六、    常量是存放在text(只读)里面。

七、    向系统申请的内存空间全在堆里面。

注:在调用函数时栈是先进去的数据后出来。

        一段称为栈针。

        每个函数的局部变量在每个函数的栈针里面。

        malloc                    表示悬空指针。

        const                       表示只读,是放在代码段里

 

man的帮助:

例如:man     3     fputc                               表示查看fputc的帮助。

其中会看到:int         fputc    (int c,FILE *stream)

                            其中的c为整形变量c

                            *stream表示是文本指针