要想对C语言有一个深入的理解,就不得不说它赖以生存的环境,这里简要介绍一下系统内存模型。内存模型,就不得不说业界知名的Wintel联盟,到底是谁选择了谁?又是谁成就了谁?反正已成事实鬼才知道!
关于IntelX86家族的发展历史这里不想赘述,无非就是:字长越来越大(4位 -> 8位 -> 32位 -> 64位);频率越来越快(30MHz -> 600MHz -> 998MHz -> 2.2GHz);芯片制程越来越先进(900nm -> 600nm -> 300nm -> 90nm -> 32nm -> 28nm);内核越来越多(单核 -> 双核 -> 四核 -> 八核);指令集越来越多(浮点运算、SSE等)架构越来越新(英文太怪,没记住);性能越来越高(什么百万条指令每秒的)。
学过X86汇编的人,都应该对里面讲到的段地址和段内偏移印象深刻,有没有想过为什么Intel的工程师要弄这么一个“变态”的设计,8086处理器本来就是16位的地址,按理说只能访64KB的内存,可是我们“聪明”的工程师一定要别出心裁,用两个16位的地址