我会尽力以最简洁清晰的思路来写这篇文章。所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程。因为操作系统要兼顾许多东西,所以也就变得复杂。逻辑地址 →线性地址→物理地址逻辑地址 = 段 + 偏移量因为:最开始cpu中的alu宽度只有16位,但地址总线宽度有20位。所以设置四个段寄存器:c...
分类:
系统相关 时间:
2015-12-15 21:14:17
阅读次数:
267
转载:http://blog.sina.com.cn/s/blog_6a1837e90101128k.htmlregister:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要...
分类:
编程语言 时间:
2015-09-23 16:37:46
阅读次数:
175
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝...
分类:
其他好文 时间:
2015-09-20 23:47:35
阅读次数:
252
众所周知,32位计算机最大内存支持是4G,这个4G是怎么来的呢?4G内存表示最大存储数据为4G的数据么? 隐约记得学计算原理时候把这个概念搞清楚过,可是现在回想起来又有些模糊。首先,32位计算机指的是计算机内存寻址总线是32根,这跟总线主板总线根数应该是对应的。通过二进制算法,我们得到了32位计算机...
分类:
其他好文 时间:
2015-08-19 01:58:25
阅读次数:
105
1、register
在函数内定义变量时,默认是 auto 类型,变量存储在内存中,当程序用到该变量时,由控制器发出指令将内存中该变量的值送到运算器,计算结束后再从运算器将数据送到内存。如果一个变量用 register 关键字修饰,编译器则尽可能将该变量存放在CPU的内部寄存器中,这样就不用通过内存寻址来访问变量,可以大大提高访问效率。
2、volatile
volatile关键字修饰的变量...
分类:
编程语言 时间:
2015-08-17 08:49:05
阅读次数:
130
1、逻辑地址怎么转换为线性地址的:逻辑地址 = 段选择符(16bit)+偏移量(32bit)段选择符又三部分组成:index(索引序号)、T1(表指示器)、RPL(request privilege level 请求者特权级)索引序号:指向GDT(global descriptor table 全局...
分类:
系统相关 时间:
2015-07-10 22:10:18
阅读次数:
186
这些胡言乱语整理自微信朋友圈。1.关于大数据内存寻址大数据!大数据可以用于超大内存寻址吗?我觉得能!把整个世界看成一块内存,各级政权,谷歌已经寻遍了每一个角落!虽然有疏漏,但世界本就不是齐整的!寻址64bit地址,索引开销巨大,引入反向hash索引解决不了根本问题!12..
分类:
移动开发 时间:
2015-05-16 18:38:23
阅读次数:
127
这些胡言乱语整理自微信朋友圈。1.关于大数据内存寻址大数据!大数据可以用于超大内存寻址吗?我觉得能!把整个世界看成一块内存,各级政权,谷歌已经寻遍了每一个角落!虽然有疏漏,但世界本就不是齐整的!寻址64bit地址,索引开销巨大,引入反向hash索引解决不了根本问题!128bit呢?我们需要拥抱错误!bloom filter是个好伙伴。没人说计算机内存寻址一定是精确的,关键是你如何包容错误!绝不能把...
分类:
移动开发 时间:
2015-05-16 16:38:36
阅读次数:
133
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝...
分类:
编程语言 时间:
2015-05-13 00:41:41
阅读次数:
161
1、内存寻址由大到小,优先分配内存地址比较大的字节给变量2、变量有限定义,内存地址就越大3、输出格式为%p4、一个变量要先初始化,再使用#include int main(){ int a=10; int b=20; char c='f'; double d=2.0; float f=3....
分类:
编程语言 时间:
2015-04-28 11:23:19
阅读次数:
147