- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4数据类型
1.基本数据类型
Byte(字节)=8bits(位)
Word(字)=2Bytes=16bits
Doubleword(双字)=2Words=4Bytes=32bits
Quadword(四字)=4Words=8Bytes=64bits (=Intel486)
Double Quadword(八字)=8Words=16Bytes=128bits (=Pentium III)
图4-1 基本数据类型
图4-2展示了每一种基本数据类型在内存中的字节顺序
受CPU总线限制(32位或64位或更高),使用数据结构(特别是栈)时对准自然边界能提高程序的效率,这是因为访问未对齐的数据需要两次,而对齐的数据只需要一次。以下是基本数据类型的自然边界:
字——偶数地址(2字节)
双字——能被4整除的地址(4字节)
四字——能被8整除的地址(8字节)
八字——有的指令只能操作对齐的八字操作数(能被16整除的地址),否则会产生异常(#GP),而另一些指令则允许操作未对齐的八字操作数,不管怎么样,访问未对齐的数据总是需要额外的存储总线周期。
2.数字数据类型
基本数据类型可以扩展为数字数据类型(带符号和不带符号的整型,浮点数字),见图4-3。
图4-3 数字数据类型
Intel 64IA-32架构定义了两种整型:带符号的和不带符号的。
[1]无符号整型
无符号整型是标准的二进制值。
在字节中它的范围是0~255,
在字中它的范围是0~65535,
在双字中它的范围是0~2^32-1,
在四字中它的范围是0~2^64-1。
[2]带符号整型
带符号整型是有符号的二进制值,采用补码(twos complement)表示。
字节整型的符号位是第7位,
字整型的符号位是第15位,
双字整型的符号位是第31位,
四字整型的符号位是第63位。
正整数的符号位置0,负整数的符号位置1。
在字节中它的范围是-128~+127,
在字中它的范围是-32768~+32767,
在双字中它的范围是-2^31~+2^31-1,
在四字中它的范围是-2^63~+2^63-1。
字整型在内存中占用两个连续的字节,双字整型在内存中占用四个连续的字节,四字整型在内存中占用八个连续的字节。
IA-32架构定义了三种浮点数据类型:单精度浮点数、双精度浮点数和扩展双精度浮点数(见图4-3),使用的格式符合IEEE 754二进制浮点运算标准。
表4-2 浮点数据类型的长度、精度与范围
单精度值在内存中占用四个连续的字节,双精度值在内存中占用八个连续的字节,扩展双精度值在内存中占用十个连续的字节。
单精度与双精度浮点数据类型可以被x87 FPU和SSE/SSE2/SSE3指令操作,扩展双精度浮点格式只能由x87 FPU操作。
3.指针数据类型
IA-32架构定义了两种类型的指针:近指针和远指针(见图4-4)。
图4-4. 指针数据类型
近指针是段内部的一个32位(或16位)偏移。
远指针(或逻辑地址)包括了一个16位的段选择器和一个32位(或16位)的偏移。
4.位字段
位字段是一个连续的位序列,可以开始于任何字节的任何位置,最多能包含32位。(见图4-6)
图4-6. 位字段数据类型
5.字串数据类型
字串是一个连续的位、字节、字或双字序列,位字串可以开始于任何字节的任何位置,最多能包含2^32-1位,字节字串可以包括字节、字或双字,范围从0到2^32-1(4GBytes)。
6.打包SIMD数据类型
Intel 64IA-32架构为SIMD(单指令多数据流)操作定义了一组64位和128位的打包数据类型,这些数据类型由基本数据类型(打包字节、字、双字和四字)和基本数据类型的数字解码组成。
7.BCD与压缩BCD整型
BCD(Binary-coded decimal)整型是一个4位的无符号整型,有效值范围0~9。
8.实数字与浮点格式
图4-10. 二进制实数系统
图4-11. 二进制浮点格式
表4-5. 实数字与浮点数字表示法
9.浮点异常概述
略
文档评论(0)