1.What is M like:M是一维线性空间 a array of addressed bytes
2.Address each byte 【注编址单位】 of M is numbered, such as 0x0000-0000~0xffff-ffff
一个字的地址 4个字节的地址中最小的那个
一个字的存放
endian的问题 little endian高高低低于x86下
对齐的问题 CPU在一个总线周期内完成M的R/W 【后面有单独介绍】
3.What is in M:code and data
CPUM的图 下面第4点会完善之
4.How can M beclassified? 【可以画一个8086的图指令的执行过程】 【另外 OS book的第一章的举例】 【另外可以参考Unit 3的layout图】
Code段:操作码操作数 PCCSIP
Data段 DS
C语言变量名and type
编译器 Encoding size and编码规范 【即Unit 2的内容】
整数补码
浮点数 I EEE标准
机器代码 bits序列and size
Stack段一个特殊的数据段LIF O S SS PBP
5.数据段中 Address也可以放入M中。 【即地址也是一个数】 【说明 1.3.2.1中的有一个推理过程。现反之比如0x10可以被理解成一个数值也可以被理解成是一个Address】
定义 Pointer指针
其所占的M空间大小 4字节32位平台下
6指针的两个运算符 &and*
Textbook上提及一个现象一个M有两个名字可利用C专家里面的c onst举例
7.M的分配举例 【画一个图逐一表示说明分配的独立性。另外p o inter占4字节】
char *c=’a’ ;
char *p;
p=&a;
8.指针的算术运算如++/--
语法含义的一致性下一个/上一个元素
编译器进行翻译,具体偏移多少指针类型相关
原因 c ompiler能够得到指针类型的信息
优点利用指针访问数组的时候
to manipulate arrays using pointer expressions,no matter what the type of the arrayc ontents
Pointer expressions are easier to read
less abstract closer to how the hardware
缺点效率低【说明关于这点 TextBook写错了可以见汇编代码对比】
9.威力所在之一指向任意强制类型转化 [1.3.5节naughty pointer]
指针/Address在被解析的时候所依据的信息指针的类型
得到freedom任意M的访问权and解释权
方法 *and type casting
举例具体见1.3.5节
10.威力所在之二指向代码后修改代码
11.数组的存放
连续递增空间
12.数组的访问都没有边界检查越界后的R/W的危险
下标法
指针法可行性原因指针的算术运算
难点数组and指针的关系and区别
相同的前提
效率低了 【可以通过汇编code对比发现之】
13.利用数组的指针来进行赋值 的语义 c语言没有真正的数组
14二维数组
存放 row-major order的连续存放理解其的一个思维角度
访问
下标法
指针法
15.C语言中的字符串
以NUL结束的字符数组固定长度有库函数printf(), strc at(),and strncmp()等的支持
有长度 因为有边界但是没有边界检查
访问方法and边界检查 同数组
使用字符串常量容易犯的一个error Textbook的2.4.1.4节
16.结构的存放
对齐
17.结构的访问
名字法
指针法
18.对齐
含义 padding
原因空间换时间和CPU访问M的总线宽度相关 存在于局部变量的Stack Heap空间
表现结构内部VS结构外部
CPU相关有的是必需的有的是一种优化
对齐的多角度理解汇编级别VS C语言级别
公司介绍成都随风云科技有限公司成立于2021年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。公司一直秉承”以人为本、客户为尊、永续创新&...
我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...
搬瓦工怎么样?这几天收到搬瓦工发来的邮件,告知香港pccw机房(HKHK_1)即将关闭,这也不算是什么出乎意料的事情,反而他不关闭我倒觉得奇怪。因为目前搬瓦工香港cn2 GIA 机房和香港pccw机房价格、配置都一样,可以互相迁移,但是不管是速度还是延迟还是丢包率,搬瓦工香港PCCW机房都比不上香港cn2 gia 机房,所以不知道香港 PCCW 机房存在还有什么意义?关闭也是理所当然的事情。点击进...