CSAPP 3.3 Data Formats(数据格式)

发布时间:2026/10/25 22:00:29

CSAPP 3.3 Data Formats(数据格式) 第 5 课3.3数据格式x86 的历史宽度名称x86 名称位数字节数常见整数后缀byte81bword162wdouble word324lquad word648qx86 起源于 16 位的 8086因此word固定表示 16 位。处理器扩展到 32 位和 64 位后旧名称仍被保留32 位叫 double word64 位叫 quad word。这里的word是 x86 历史术语不应理解成“当前机器最自然的整数宽度”。本书环境中的 C 类型大小C 类型大小Figure 3.1 中的类型名称汇编后缀char1 字节Bytebshort2 字节Wordwint4 字节Double wordllong8 字节Quad wordq指针例如char *8 字节Quad wordqfloat4 字节Single precisionsdouble8 字节Double precisionl这些大小针对教材采用的 x86-64 Linux/GCC 数据模型。尤其要注意教材中的 Clong是 8 字节Windows x64 通常把 Clong定义为 4 字节所以 C 类型大小仍需结合 ABI 和平台判断。整数指令后缀b - 1 字节 w - 2 字节 l - 4 字节 q - 8 字节例如movb ... # 移动 1 字节 movw ... # 移动 2 字节 movl ... # 移动 4 字节 movq ... # 移动 8 字节movl中是小写字母l不是数字1。它在整数指令中表示 32 位 double word不能因为字母l就把它理解成 C 的long。Figure 3.1 还把float记为后缀s、double记为后缀l。因此不能脱离指令系列仅凭最后一个字母判断宽度整数和浮点指令使用不同的指令系列及寄存器完整指令与上下文可以消除歧义。指针宽度与所指对象宽度char*p;short*q;在本书环境中p和q本身都是 8 字节地址但解引用后的对象宽度不同p - 8 字节指针 *p - 1 字节 char q - 8 字节指针 *q - 2 字节 short因此“复制指针本身”和“通过指针访问对象”是两种不同操作。前者按地址宽度处理后者按所指对象的类型选择访问宽度。例如%rax中保存char *p时%rax保存的是 8 字节地址但读取*p只访问%rax所指位置的 1 字节。若结果要放入更宽寄存器编译器还会选择符号扩展或零扩展指令这将在后续数据传送部分学习。关于long doublex86 家族历史上还使用过 80 位扩展精度浮点格式C 可用long double表示。教材提醒这种格式的平台可移植性和硬件性能特征与float、double不同因此本章主要围绕 4 字节float和 8 字节double展开。本节易错点把 x86 的word错当成 64 位实际上它固定是 16 位。把整数后缀l错当成 Clong整数语境中的l表示 4 字节。认为所有平台的 Clong都是 8 字节这取决于平台 ABI。因为指针是 8 字节就误以为通过指针总要访问 8 字节。只看一个后缀字母不结合完整指令、数据类型和寄存器类别判断。
延伸阅读

更多相关文章

2026/10/25 21:51:26

Java 服务调用下游接口注意点

目录 1. 必须设置超时2. 重试策略,不能无脑重试3. 熔断、降级、隔离4. 限流5. 异常处理,区分不同失败类型6. 请求参数与响应处理7. 线程池注意8. 超时时间的设计,链路整体考虑9. 资源与连接池(HTTP 客户端)10. 业务层…

2026/10/24 21:52:08

AI编程助手Skill不生效?环境配置与加载链路排查指南

最近在调整 AI 编程助手的工作流,遇到了一个特别折磨人的现象:明明按照说明把 Skill 装好了,工具列表里也能看到,但真正调用的时候,要么静默无反应,要么报一句“没有找到对应技能”。反复看了好几遍配置&am…

2026/10/25 8:50:17

个人AI助手工程化指南:从聊天玩具到稳定工作流入口

airi酱 这个名字,第一次听很容易让人以为是一个虚拟角色或聊天机器人,但真正动手做过个人 AI 助手项目的人会明白,这类项目最难的不是让模型开口说话,而是让它稳定地、可复用地产出结果。 我见过不少类似的实践:把一个…

2026/10/26 20:46:25

AI视频生成定价困局:为何20美元订阅模式难以为继

1. 一个反常识的定价判断,藏着AI视频赛道的真实成本结构18个月做到10亿美元年化收入,这个数字放在任何一家SaaS公司身上都足够炸裂。但Higgsfield的创始人却在多个公开场合表达了一个让很多人意外的观点:他不看好20美元/月的订阅模式。这话乍…

2026/10/26 20:46:25

STM32平衡小车从姿态解算到串级PID调参实战

简介:面向自动控制初学者与嵌入式开发者的平衡小车实践资料包,围绕陀螺仪与加速度计姿态采集、PID 控制、卡尔曼滤波及状态观测等核心环节,提供可对照学习的工程实现,适合课程设计、竞赛备赛与自平衡机器人入门。压缩包共 1420 个…

2026/10/26 20:46:25

PLC工程师学AI:从RAG和Agent入手,让设备知识活起来

上个月,一个玩PLC十几年的老哥跟我吃饭,开口就问:外面天天喊AI,我是不是也得学点啥?他SCADA画面做得漂亮,PID也调得稳,但一翻开AI教程就头大——什么神经网络、反向传播、梯度下降,跟…

2026/10/26 20:46:25

DGX Spark 64GB版真假探讨:统一内存、推理能力与驱动避坑指南

最近好几个朋友都在问我同一个问题:DGX Spark 那个 64GB 版到底是真的还是假的,值不值得等。坦白讲,NVIDIA 官方目前主推的仍然是 128GB 统一内存版本,市面上关于 64GB 版本的讨论更多来自社区、供应链和用户群的推测。但这个话题…

2026/10/26 20:46:25

ESP32驱动无FIFO OV7670:DVP时序与SCCB配置及花屏排查

简介:面向嵌入式与物联网学习者的ESP32驱动OV7670摄像头实践工程,围绕Arduino环境下的图像采集与显示需求,提供可参考的初始化、时序控制与数据读取代码,适合智能视觉、无线图传及课程设计场景。压缩包共55个文件、约7.74MB&#…

2026/10/26 20:36:00

为Codex装上可视化仪表盘:让AI编码过程不再黑盒

说实话,用Codex跑任务的那段时间,我做的最多的一件事就是盯着终端窗口发呆。看着日志一行行刷过去,我经常忍不住问自己:它现在到底在干什么?分析到第几步了?改了哪几个文件?测试到底过没过&…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/26 0:20:17

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/26 0:00:48

Nested Learning:解决AI灾难性遗忘的分层记忆架构

1. 为什么AI需要"记忆"能力?在传统深度学习模型中,我们常遇到一个根本性问题:模型在处理新任务时,往往会完全遗忘之前学到的知识。这种现象被业界称为"灾难性遗忘"(Catastrophic Forgetting)。想象一下&#…

2026/10/26 0:00:48

企业级大模型应用:OCR预处理、Dify编排与DeepSeek落地实战

1. 这不是“用大模型”,而是重构工作流的起点“大模型的应用和工具”——这八个字现在被贴在无数技术分享、招聘JD、内部立项书的标题栏里,但绝大多数人点进去后看到的,是零散的API调用示例、几个开源UI截图、或者一句“接入LLM就能降本增效”…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑