发布时间:2026/8/27 20:14:19
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/8/27 20:14:19

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

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

2026/8/27 20:14:19

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

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

2026/8/27 20:14:19

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

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

2026/8/27 20:49:22

JavaScript面向对象编程:从工厂模式到原型链的演进与实践

1. 从“捏小人”到“造工厂”:为什么我们需要面向对象? 如果你写过一段时间的JavaScript,尤其是处理过稍微复杂一点的页面逻辑,比如一个动态表单验证、一个可拖拽的组件或者一个购物车,你大概率会经历过这样的时刻&…

2026/8/27 20:49:22

MCP与多智能体协同:构建AI视频创作自动化流水线

这次我们不聊单点工具,而是把 MCP、多智能体和视频创作流程串起来,做成一条能实际落地的生产流水线。 MCP 全称 Model Context Protocol,是 Anthropic 在 2024 年开源的模型上下文协议,用来统一 AI 模型与外部工具、数据源之间的…

2026/8/27 20:44:22

数学建模与优化问题求解:从Lingo经典应用到现代工具链迁移

1. 从“数学建模”到“经典用Lingo”:一个老兵的视角 如果你在数学建模这条路上摸爬滚打了一段时间,或者正准备参加相关竞赛,那么“Lingo”这个名字你一定不陌生。它就像一个在特定领域里流传已久的“神器”,尤其是在处理线性规划…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/27 10:58:22

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/27 7:46:21

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/27 0:01:16

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用

1. 项目概述:从零构建一个企业级的AI服务网关 最近在帮一个做内容审核的团队做技术架构升级,他们原来的业务里,每天有几十万张图片和短视频需要过审,最初是接了几个开源的AI模型自己部署,但效果和性能一直不太稳定。后…

2026/8/27 0:01:16

LeetCode Hot100(51-60)算法精解与面试技巧

1. 题目背景与核心价值"hot100(51-60)"这个标题看起来像是某个编程题库或算法练习集中的一组题目编号。在技术社区中,类似命名通常指向LeetCode、牛客网等平台的热门题目集合。作为刷过300题的算法老手,我理解这类题目的核心价值在于&#xff…

2026/8/27 0:01:16

CRC校验实战:从模2除法到HJ212协议排错

1. 为什么一个“校验码”能扛住工业现场90%的数据 corruption? 你有没有遇到过这样的场景:嵌入式设备通过RS-485上传温湿度数据,上位机偶尔收到一帧乱码——温度显示成-273℃,湿度跳到999%,但串口波形看起来完全正常&a…

2026/8/26 19:34:06

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/26 19:17:08

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/26 19:34:05

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…