- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章—补充内容 Alignment(对齐) 举例 例如,考虑下列两个结构声明: struct S1 { int i; char c; int j; }; 为便于打印、显示汉字,汉字字形必须预先存在机内 字库 (font):所有汉字形状的描述信息集合 不同字体 (如宋体、仿宋、楷体、黑体等) 对应不同字库 从字库中找到字形描述信息,然后送设备输出 问题:如何知道到哪里找相应的字形信息? 汉字内码与其在字库中的位置有关!! 字形主要有两种描述方法: 字模点阵描述(图像方式) 轮廓描述(图形方式) 直线向量轮廓 曲线轮廓(True Type字形) 汉字的字模点阵码和轮廓描述 数据的基本宽度 比特(bit)是计算机中处理、存储、传输信息的最小单位 二进制信息的计量单位是“字节”(Byte),也称“位组” 现代计算机中,存储器按字节编址 字节是最小可寻址单位 (addressable unit ) 如果以字节为一个排列单位,则LSB表示最低有效字节,MSB表示最高有效字节 除比特和字节外,还经常使用“字”(word)作为单位 “字”和 “字长”的概念不同 IA-32中的“字”有多少位?字长多少位呢? DWORD :32位 QWORD:64位 16位 32位 数据的基本宽度 “字”和 “字长”的概念不同 “字长”指数据通路的宽度。 (数据通路指CPU内部数据流经的路径以及路径上的部件,主要是CPU内部进行数据运算、存储和传送的部件,这些部件的宽度基本上要一致,才能相互匹配。因此,”字长”等于CPU内部总线的宽度、运算器的位数、通用寄存器的宽度等。 ) “字”表示被处理信息的单位,用来度量数据类型的宽度。 字和字长的宽度可以一样,也可不同。 例如,x86体系结构定义“字”的宽度为16位,但从386开始字长就是32位了。 数据量的度量单位 存储二进制信息时的度量单位要比字节或字大得多 容量经常使用的单位有: “千字节”(KB),1KB=210字节=1024B “兆字节”(MB),1MB=220字节=1024KB “千兆字节”(GB),1GB=230字节=1024MB “兆兆字节”(TB),1TB=240字节=1024GB 通信中的带宽使用的单位有: “千比特/秒”(kb/s),1kbps=103 b/s=1000 bps “兆比特/秒”(Mb/s),1Mbps=106 b/s =1000 kbps “千兆比特/秒”(Gb/s),1Gbps=109 b/s =1000 Mbps “兆兆比特/秒”(Tb/s),1Tbps=1012 b/s =1000 Gbps 如果把b换成B,则表示字节而不是比特(位) 例如,10MBps表示 10兆字节/秒 程序中数据类型的宽度 高级语言支持多种类型、多种长度的数据 例如,C语言中Char类型的宽度为1个字节,可表示一个字符(非数值数据),也可表示一个8位的整数(数值数据) 不同机器上表示的同一种类型的数据可能宽度不同 必须确定相应的机器级数据表示方式和相应的处理指令 (在第五章指令系统介绍具体指令) C声明 典型32位 机器 Compaq Alpha 机器 char short int int long int 1 2 4 4 1 2 4 8 char* 4 8 float double 4 8 4 8 C语言中数值数据类型的宽度 (单位:字节) 从表中看出:同类型数据并不是所有机器都采用相同的宽度,分配的字节数随机器字长和编译器的不同而不同。 Compaq Alpha是一个针对高端应用的64位机器,即字长为64位 数据的存储和排列顺序 80年代开始,几乎所有机器都用字节编址 ISA设计时要考虑的两个问题: 如何根据一个字节地址取到一个32位的字?- 字的存放问题 一个字能否存放在任何字节边界?- 字的边界对齐问题 例如,若 int i = -65535,存放在内存100号单元,则用“取数”指令访问100号单元取出 i 时,必须清楚 i 的4个字节是如何存放的。 msb lsb 103 102 101 100 little endian word 100 100 101 102 103 big endian word 100 Word: FF FF 00 01 大端方式(Big Endian): MSB所在的地址是数的地址 e.g. IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA 小端方式( Little Endi
文档评论(0)