| 书[0名0]: | 汇编语言:基于x86处理器(原书[0第0]7版)|4934543 |
| 图书定价: | 99元 |
| 图书作者: | [美]基普 · 欧文(Kip Irvine) |
| 出版社: | 机械工业出版社 |
| 出版日期: | 2016/4/1 0:00:00 |
| ISBN号: | 9787111530367 |
| 开本: | 16开 |
| 页数: | 547 |
| 版次: | 1-1 |
| 作者简介 |
| 基普·欧文(Kip Irvine)佛罗里达[0国0]际[0大0][0学0]高级讲师,教授计算机相关的课程。 著有多本编程教材,被翻译成多[0国0]语言,涵盖的主题如汇编语言、C++、Visual Basic和COBOL。 |
| 内容简介 |
| 本书是汇编语言课程的经典教材,系统介绍x86和Intel64处理器的汇编语言编程与架构。前9章为汇编语言的核心概念,包括:汇编语言基础,x86处理器架构,数据传送、寻址和算术运算,过程,条件处理,整数运算,高级过程,以及字符串和数组。后4章介绍结构和宏、MS-Windows编程、浮点数处理和指令编码,以及高级语言接口。 本书内容翔实,案例丰富,[0极0]具逻辑性和系统性,不仅可作为汇编语言课程的教材,还可作为计算机系统基础和体系结构基础方面的教材。 |
| 目录 |
出版者的话 译者序 前言 [0第0]1章 基本概念 1 1.1 欢迎来到汇编语言的世界 1 1.1.1 读者可能[0会0]问的问题 2 1.1.2 汇编语言的应用 4 1.1.3 本节回顾 5 1.2 虚拟机概念 5 1.3 数据表示 7 1.3.1 二进制整数 7 1.3.2 二进制加[0法0] 8 1.3.3 整数存储[0大0]小 9 1.3.4 十六进制整数 10 1.3.5 十六进制加[0法0] 11 1.3.6 有符号二进制整数 12 1.3.7 二进制减[0法0] 13 1.3.8 字符存储 14 1.3.9 本节回顾 15 1.4 布尔表达式 16 1.4.1 布尔函数真值表 18 1.4.2 本节回顾 18 1.5 本章小结 19 1.6 关键术语 19 1.7 复习题和练习 20 1.7.1 简答题 20 1.7.2 算[0法0]基础 21 [0第0]2章 x86处理器架构 23 2.1 一般概念 23 2.1.1 基本微机设计 23 2.1.2 指令执行周期 24 2.1.3 读取内存 25 2.1.4 加载并执行程序 26 2.1.5 本节回顾 26 2.2 32位x86处理器 27 2.2.1 操作模式 27 2.2.2 基本执行环境 27 2.2.3 x86内存管理 30 2.2.4 本节回顾 30 2.3 64位x86-64处理器 30 2.3.1 64位操作模式 31 2.3.2 基本64位执行环境 31 2.4 典型x86计算机组件 32 2.4.1 主板 32 2.4.2 内存 34 2.4.3 本节回顾 34 2.5 输入输出系统 34 2.5.1 I/O访问层次 34 2.5.2 本节回顾 36 2.6 本章小结 36 2.7 关键术语 37 2.8 复习题 38 [0第0]3章 汇编语言基础 39 3.1 基本语言元素 39 3.1.1 个汇编语言程序 39 3.1.2 整数常量 40 3.1.3 整型常量表达式 41 3.1.4 实数常量 41 3.1.5 字符常量 42 3.1.6 字符串常量 42 3.1.7 保留字 42 3.1.8 标识符 43 3.1.9 伪指令 43 3.1.10 指令 44 3.1.11 本节回顾 46 3.2 示例:整数加减[0法0] 46 3.2.1 AddTwo程序 46 3.2.2 运行和调试AddTwo程序 48 3.2.3 程序模板 52 3.2.4 本节回顾 52 3.3 汇编、链接和运行程序 53 3.3.1 汇编–链接–执行周期 53 3.3.2 列表文件 53 3.3.3 本节回顾 55 3.4 定义数据 55 3.4.1 内部数据类型 55 3.4.2 数据定义语句 55 3.4.3 向AddTwo程序添加一个变量 56 3.4.4 定义BYTE和SBYTE数据 57 3.4.5 定义WORD和SWORD数据 59 3.4.6 定义DWORD和SDWORD数据 59 3.4.7 定义QWORD数据 60 3.4.8 定义压缩BCD(TBYTE)数据 60 3.4.9 定义浮点类型 61 3.4.10 变量加[0法0]程序 61 3.4.11 小端顺序 62 3.4.12 声明未初始化数据 62 3.4.13 本节回顾 63 3.5 符号常量 63 3.5.1 等号伪指令 63 3.5.2 计算数组和字符串的[0大0]小 64 3.5.3 EQU伪指令 65 3.5.4 TEXTEQU伪指令 66 3.5.5 本节回顾 66 3.6 64位编程 67 3.7 本章小结 68 3.8 关键术语 69 3.8.1 术语 69 3.8.2 指令、运算符和伪指令 70 3.9 复习题和练习 70 3.9.1 简答题 70 3.9.2 算[0法0]基础 71 3.10 编程练习 71 [0第0]4章 数据传送、寻址和算术运算 73 4.1 数据传送指令 73 4.1.1 引言 73 4.1.2 操作数类型 73 4.1.3 直接内存操作数 74 4.1.4 MOV指令 75 4.1.5 整数的全零/符号扩展 76 4.1.6 LAHF和SAHF指令 77 4.1.7 XCHG指令 78 4.1.8 直接–偏移量操作数 78 4.1.9 示例程序(Moves) 79 4.1.10 本节回顾 80 4.2 加[0法0]和减[0法0] 81 4.2.1 INC和DEC指令 81 4.2.2 ADD指令 81 4.2.3 SUB指令 81 4.2.4 NEG指令 82 4.2.5 执行算术表达式 82 4.2.6 加减[0法0]影响的标志位 82 4.2.7 示例程序(AddSubTest) 85 4.2.8 本节回顾 86 4.3 与数据相关的运算符和伪指令 87 4.3.1 OFFSET运算符 87 4.3.2 ALIGN伪指令 88 4.3.3 PTR运算符 88 4.3.4 TYPE运算符 89 4.3.5 LENGTHOF运算符 89 4.3.6 SIZEOF运算符 90 4.3.7 LABEL伪指令 90 4.3.8 本节回顾 90 4.4 间接寻址 91 4.4.1 间接操作数 91 4.4.2 数组 91 4.4.3 变址操作数 92 4.4.4 指针 93 4.4.5 本节回顾 95 4.5 JMP和LOOP指令 95 4.5.1 JMP指令 96 4.5.2 LOOP指令 96 4.5.3 在Visual Studio调试器中显示数组 97 4.5.4 整数数组求和 98 4.5.5 复制字符串 98 4.5.6 本节回顾 99 4.6 64位编程 99 4.6.1 MOV指令 99 4.6.2 64位的SumArray程序 100 4.6.3 加[0法0]和减[0法0] 101 4.6.4 本节回顾 102 4.7 本章小结 102 4.8 关键术语 104 4.8.1 术语 104 4.8.2 指令、运算符和伪指令 104 4.9 复习题和练习 104 4.9.1 简答题 104 4.9.2 算[0法0]基础 106 4.10 编程练习 107 [0第0]5章 过程 108 5.1 堆栈操作 108 5.1.1 运行时堆栈(32位模式) 108 5.1.2 PUSH和POP指令 110 5.1.3 本节回顾 112 5.2 定义并使用过程 112 5.2.1 PROC伪指令 112 5.2.2 CALL和RET指令 114 5.2.3 过程调用嵌套 115 5.2.4 向过程传递寄存器参数 116 5.2.5 示例:整数数组求和 116 5.2.6 保存和恢复寄存器 118 5.2.7 本节回顾 119 5.3 链接到外部库 119 5.3.1 背景[0知0]识 119 5.3.2 本节回顾 120 5.4 Irvine32链接库 120 5.4.1 创建库的动机 120 5.4.2 概述 122 5.4.3 过程详细说明 123 5.4.4 库测试程序 133 5.4.5 本节回顾 139 5.5 64位汇编编程 139 5.5.1 Irvine64链接库 139 5.5.2 调用64位子程序 140 5.5.3 x64调用规范 140 5.5.4 调用过程示例 141 5.6 本章小结 142 5.7 关键术语 143 5.7.1 术语 143 5.7.2 指令、运算符和伪指令 143 5.8 复习题和练习 143 5.8.1 简答题 143 5.8.2 算[0法0]基础 146 5.9 编程练习 146 [0第0]6章 条件处理 148 6.1 条件分支 148 6.2 布尔和比较指令 148 6.2.1 CPU状态标志 149 6.2.2 AND指令 149 6.2.3 OR指令 150 6.2.4 位映射集 151 6.2.5 XOR指令 152 6.2.6 NOT指令 153 6.2.7 TEST指令 153 6.2.8 CMP指令 154 6.2.9 置位和清除单个CPU标志位 155 6.2.10 64位模式下的布尔指令 155 6.2.11 本节回顾 156 6.3 条件跳转 156 6.3.1 条件结构 156 6.3.2 Jcond指令 156 6.3.3 条件跳转指令类型 157 6.3.4 条件跳转应用 159 6.3.5 本节回顾 163 6.4 条件循环指令 163 6.4.1 LOOPZ和LOOPE指令 163 6.4.2 LOOPNZ和LOOPNE指令 164 6.4.3 本节回顾 164 6.5 条件结构 164 6.5.1 块结构的IF语句 165 6.5.2 复合表达式 167 6.5.3 WHILE循环 168 6.5.4 表驱动选择 169 6.5.5 本节回顾 171 6.6 应用:有限状态机 172 6.6.1 验证输入字符串 172 6.6.2 验证有符号整数 172 6.6.3 本节回顾 176 6.7 条件控制流伪指令 176 6.7.1 新建IF语句 177 6.7.2 有符号数和无符号数的比较 178 6.7.3 复合表达式 179 6.7.4 用.REPEAT和.WHILE创建循环 181 6.8 本章小结 182 6.9 关键术语 183 6.9.1 术语 183 6.9.2 指令、运算符和伪指令 184 6.10 复习题和练习 184 6.10.1 简答题 184 6.10.2 算[0法0]基础 186 6.11 编程练习 187 6.11.1 测试代码的建议 187 6.11.2 习题 188 [0第0]7章 整数运算 191 7.1 移位和循环移位指令 191 7.1.1 逻辑移位和算术移位 191 7.1.2 SHL指令 192 7.1.3 SHR指令 193 7.1.4 SAL和SAR指令 193 7.1.5 ROL指令 194 7.1.6 ROR指令 195 7.1.7 RCL和RCR指令 195 7.1.8 有符号数溢出 196 7.1.9 SHLD/SHRD指令 196 7.1.10 本节回顾 198 7.2 移位和循环移位的应用 198 7.2.1 多个[0[0双0]0]字的移位 198 7.2.2 二进制乘[0法0] 199 7.2.3 显示二进制位 200 7.2.4 提取文件日期字段 200 7.2.5 本节回顾 201 7.3 乘[0法0]和除[0法0]指令 201 7.3.1 MUL指令 201 7.3.2 IMUL指令 203 7.3.3 测量程序执行时间 205 7.3.4 DIV指令 207 7.3.5 有符号数除[0法0] 208 7.3.6 实现算术表达式 211 7.3.7 本节回顾 212 7.4 扩展加减[0法0] 212 7.4.1 ADC指令 212 7.4.2 扩展加[0法0]示例 213 7.4.3 SBB指令 215 7.4.4 本节回顾 215 7.5 ASCII和非压缩十进制运算 216 7.5.1 AAA指令 217 7.5.2 AAS指令 218 7.5.3 AAM指令 218 7.5.4 AAD指令 219 7.5.5 本节回顾 219 7.6 压缩十进制运算 219 7.6.1 DAA指令 220 7.6.2 DAS指令 220 7.6.3 本节回顾 221 7.7 本章小结 221 7.8 关键术语 222 7.8.1 术语 222 7.8.2 指令、运算符和伪指令 222 7.9 复习题和练习 222 7.9.1 简答题 222 7.9.2 算[0法0]基础 224 7.10 编程练习 225 [0第0]8章 高级过程 227 8.1 引言 227 8.2 堆栈帧 227 8.2.1 堆栈参数 227 8.2.2 寄存器参数的缺点 228 8.2.3 访问堆栈参数 230 8.2.4 32位调用规范 232 8.2.5 局部变量 233 8.2.6 引用参数 235 8.2.7 LEA指令 235 8.2.8 ENTER和LEAVE指令 236 8.2.9 LOCAL伪指令 238 8.2.10 Microsoft x64调用规范 239 8.2.11 本节回顾 239 8.3 递归 239 8.3.1 递归求和 240 8.3.2 计算阶乘 241 8.3.3 本节回顾 246 8.4 INVOKE、ADDR、PROC和PROTO 246 8.4.1 INVOKE伪指令 246 8.4.2 ADDR运算符 247 8.4.3 PROC伪指令 247 8.4.4 PROTO伪指令 250 8.4.5 参数类别 253 8.4.6 示例:交换两个整数 253 8.4.7 调试提示 254 8.4.8 WriteStackFrame过程 255 8.4.9 本节回顾 256 8.5 新建多模块程序 256 8.5.1 隐藏和导出过程[0名0] 256 8.5.2 调用外部过程 257 8.5.3 跨模块使用变量和标号 258 8.5.4 示例:ArraySum程序 259 8.5.5 用Extern新建模块 259 8.5.6 用INVOKE和PROTO新建模块 262 8.5.7 本节回顾 265 8.6 参数的高级用[0法0](可选主题) 265 8.6.1 受USES运算符影响的堆栈 265 8.6.2 向堆栈传递8位和16位参数 266 8.6.3 传递64位参数 267 8.6.4 非[0[0双0]0]字局部变量 268 8.7 Java字节码(可选主题) 269 8.7.1 Java虚拟机 269 8.7.2 指令集 270 8.7.3 Java反汇编示例 271 8.7.4 示例:条件分支 273 8.8 本章小结 274 8.9 关键术语 275 8.9.1 术语 275 8.9.2 指令、运算符和伪指令 276 8.10 复习题和练习 276 8.10.1 简答题 276 8.10.2 算[0法0]基础 276 8.11 编程练习 277 [0第0]9章 字符串和数组 279 9.1 引言 279 9.2 字符串基本指令 279 9.2.1 MOVSB、MOVSW和MOVSD 280 9.2.2 CMPSB、CMPSW和CMPSD 280 9.2.3 SCASB、SCASW和SCASD 281 9.2.4 STOSB、STOSW和STOSD 282 9.2.5 LODSB、LODSW和LODSD 282 9.2.6 本节回顾 282 9.3 部分字符串过程 283 9.3.1 Str_compare过程 283 9.3.2 Str_length过程 284 9.3.3 Str_copy过程 284 9.3.4 Str_trim过程 285 9.3.5 Str_ucase过程 287 9.3.6 字符串库演示程序 288 9.3.7 Irivne64库中的字符串过程 289 9.3.8 本节回顾 291 9.4 二维数组 291 9.4.1 行列顺序 291 9.4.2 基址–变址操作数 292 9.4.3 基址–变址–偏移量操作数 294 9.4.4 64位模式下的基址–变址操作数 294 9.4.5 本节回顾 295 9.5 整数数组的检索和排序 295 9.5.1 冒泡排序 295 9.5.2 对半查找 297 9.5.3 本节回顾 302 9.6 Java字节码:字符串处理(可选主题) 302 9.7 本章小结 303 9.8 关键术语和指令 304 9.9 复习题和练习 304 9.9.1 简答题 304 9.9.2 算[0法0]基础 305 9.10 编程练习 305 [0第0]10章 结构和宏 308 10.1 结构 308 10.1.1 定义结构 308 10.1.2 声明结构变量 309 10.1.3 引用结构变量 310 10.1.4 示例:显示系统时间 313 10.1.5 结构包含结构 315 10.1.6 示例:醉汉行走 315 10.1.7 声明和使用联合 318 10.1.8 本节回顾 320 10.2 宏 320 10.2.1 概述 320 10.2.2 定义宏 321 10.2.3 调用宏 322 10.2.4 其他宏特性 323 10.2.5 使用本书的宏库(仅32位模式) 326 10.2.6 示例程序:封装器 332 10.2.7 本节回顾 333 10.3 条件汇编伪指令 333 10.3.1 检查缺失的参数 333 10.3.2 默认参数初始值设定 334 10.3.3 布尔表达式 335 10.3.4 IF、ELSE和ENDIF伪指令 335 10.3.5 IFIDN和IFIDNI伪指令 336 10.3.6 示例:矩阵行求和 336 10.3.7 特殊运算符 339 10.3.8 宏函数 342 10.3.9 本节回顾 343 10.4 定义重复语句块 344 10.4.1 WHILE伪指令 344 10.4.2 REPEAT伪指令 344 10.4.3 FOR伪指令 345 10.4.4 FORC伪指令 345 10.4.5 示例:链表 346 10.4.6 本节回顾 347 10.5 本章小结 348 10.6 关键术语 349 10.6.1 术语 349 10.6.2 运算符和伪指令 349 10.7 复习题和练习 349 10.7.1 简答题 349 10.7.2 算[0法0]基础 350 10.8 编程练习 351 [0第0]11章 MS-Windows编程 354 11.1 Win32控制台编程 354 11.1.1 背景[0知0]识 354 11.1.2 Win32控制台函数 357 11.1.3 显示消息框 359 11.1.4 控制台输入 361 11.1.5 控制台输出 366 11.1.6 读写文件 368 11.1.7 Irvine32链接库的文件I/O 371 11.1.8 测试文件I/O过程 373 11.1.9 控制台窗口操作 375 11.1.10 控制光标 378 11.1.11 控制文本颜色 379 11.1.12 时间与日期函数 380 11.1.13 使用64位Windows API 383 11.1.14 本节回顾 384 11.2 编写图形化的Windows应用程序 384 11.2.1 必要的结构 385 11.2.2 MessageBox函数 386 11.2.3 WinMain过程 387 11.2.4 WinProc过程 387 11.2.5 ErrorHandler过程 388 11.2.6 程序清单 388 11.2.7 本节回顾 391 11.3 动态内存分配 391 11.3.1 HeapTest程序 394 11.3.2 本节回顾 397 11.4 x86存储管理 397 11.4.1 线性地址 398 11.4.2 页转换 400 11.4.3 本节回顾 401 11.5 本章小结 402 11.6 关键术语 403 11.7 复习题和练习 403 11.7.1 简答题 403 11.7.2 算[0法0]基础 404 11.8 编程练习 404 [0第0]12章 浮点数处理与指令编码 406 12.1 浮点数二进制表示 406 12.1.1 IEEE二进制浮点数表示 406 12.1.2 阶码 407 12.1.3 规格化二进制浮点数 407 12.1.4 新建IEEE表示 408 12.1.5 十进制小数转换为二进制实数 409 12.1.6 本节回顾 411 12.2 浮点单元 411 12.2.1 FPU寄存器栈 411 12.2.2 舍入 413 12.2.3 浮点数异常 414 12.2.4 浮点数指令集 414 12.2.5 算术运算指令 416 12.2.6 比较浮点数值 419 12.2.7 读写浮点数值 422 12.2.8 异常同步 423 12.2.9 代码示例 423 12.2.10 混合模式运算 425 12.2.11 屏蔽与未屏蔽异常 426 12.2.12 本节回顾 427 12.3 x86指令编码 427 12.3.1 指令格式 427 12.3.2 单字节指令 428 12.3.3 立即数送寄存器 428 12.3.4 寄存器模式指令 429 12.3.5 处理器操作数[0大0]小前缀 429 12.3.6 内存模式指令 430 12.3.7 本节回顾 432 12.4 本章小结 432 12.5 关键术语 433 12.6 复习题和练习 434 12.6.1 简答题 434 12.6.2 算[0法0]基础 434 12.7 编程练习 435 [0第0]13章 高级语言接口 438 13.1 引言 438 13.1.1 通用规范 438 13.1.2 .MODEL伪指令 439 13.1.3 检查编译器生成的代码 441 13.1.4 本节回顾 444 13.2 内嵌汇编代码 444 13.2.1 Visual C++中的__asm伪指令 444 13.2.2 文件加密示例 447 13.2.3 本节回顾 449 13.3 32位汇编程序与C/C++的链接 449 13.3.1 IndexOf示例 450 13.3.2 调用C和C++函数 453 13.3.3 乘[0法0]表示例 454 13.3.4 调用C库函数 457 13.3.5 目录表程序 459 13.3.6 本节回顾 461 13.4 本章小结 461 13.5 关键术语 462 13.6 复习题 462 13.7 编程练习 462 附录A MASM参考[0知0]识 464 附录B x86指令集 483 附录C “本节回顾”问题答案 510 索引 527 |
| 编辑推荐 |
| 《汇编语言:基于x86处理器(原书[0第0]7版)》由机械工业出版社出版。 |
作为一本技术参考书,索引和术语表的完备程度直接决定了它的实用价值。这本书在这方面做得无可挑剔。当我需要快速回顾某个特定指令的完整操作数格式或者某个标志位(Flag)的具体含义时,目录和索引系统能迅速将我定位到目标位置。而且,书中对于新引入的术语都会在第一次出现时给出清晰的定义,并在页边空白处做了简短的提示,这避免了在阅读过程中频繁中断去查阅其他资料的麻烦。很多老旧的汇编教材会遗漏一些现代x86架构的新特性或指令集扩展,但这本书在保持对经典知识覆盖的同时,也适当地引入了现代处理器的一些优化点,让这份知识体系保持了应有的前沿性,非常适合希望将汇编知识应用于现代系统开发的读者。
评分初次接触汇编语言,很多人都会被那些晦涩难懂的助记符和十六进制数字吓跑,但这本书的叙述方式却像一位耐心十足的导师在耳边细细讲解。它没有一上来就堆砌复杂的底层知识,而是循序渐进地从最基本的CPU架构和数据表示开始,仿佛在为你搭建一座坚实的知识地基。作者对概念的解释非常到位,比如栈(Stack)和堆(Heap)的区别,在书中用了好几个生动的比喻来区分它们在实际程序运行中的作用,这种教学方法的实用性远超死记硬背。更让我欣赏的是,它并不局限于理论的阐述,而是紧密结合实际的x86处理器特性进行讲解,让你清晰地知道为什么某些操作在特定架构下是高效或低效的。这种理论与实践的紧密结合,让学习过程充满了“原来如此”的顿悟时刻,极大地提升了学习的内在驱动力。
评分这本书的排版和装帧确实是下了功夫的,拿到手里就能感觉到分量。纸张的质感很好,那种微微泛黄的米白色调,读起来眼睛不太容易疲劳,对于长时间对着屏幕看代码的程序员来说,这简直是福音。封面设计得也很有质感,虽然内容是偏硬核的技术,但视觉上却给人一种沉稳、专业的印象。我特别喜欢它在章节开头和结尾处的留白处理,阅读起来节奏感很强,不会让人觉得信息量一下子倾泻下来造成阅读上的焦虑。装订方式很扎实,即便是频繁翻阅查找特定寄存器或者指令集的部分,书脊也没有出现任何松动的迹象,这对于工具书来说至关重要。而且,书中的插图和流程图绘制得极其清晰,复杂的内存结构或者CPU工作原理,通过这些图示一下子就变得直观易懂了。不像有些技术书籍,图是糊的,线是乱的,让人看了比不看还懵。这本书在这方面做得非常到位,细节处理体现了出版方对读者的尊重。
评分我曾经尝试过几本声称是“入门”的汇编教材,结果都是在进入保护模式或者涉及浮点运算时就彻底迷失了方向,感觉作者是假设读者已经具备了相当的计算机体系结构知识。然而,这本《汇编语言:基于x86处理器》的作者显然对读者的知识背景有更准确的判断。它在讲解数据段、代码段的切换时,会非常耐心地解释为什么需要这样做,以及底层硬件是如何配合的。这种对“Why”的深入探讨,而非仅仅停留在“How”的层面,是这本书最宝贵的特质。它真正做到了将抽象的二进制世界与我们日常可见的高级语言抽象层之间搭起一座坚固、易于攀登的桥梁,让晦涩的机器指令拥有了清晰的逻辑路径和生命力。
评分这本书的习题设计是真正考验读者理解深度的部分,而且绝非那种“套路化”的练习题。我个人感觉,做完后面的综合性实验题,才算真正摸到了汇编语言的脉络。很多题目都需要你跳出单一的指令层面,去思考整个程序的内存布局、调用约定以及底层系统资源的交互。特别是涉及到中断处理和直接端口I/O的部分,书上提供的代码示例虽然精简,但逻辑链条非常完整,你需要自己去补全中间的细节。这迫使你必须动手调试,去观察寄存器和内存地址的变化,这才是学习底层编程的精髓所在。完成这些练习后,我对操作系统是如何启动、函数是如何被调用的这些底层奥秘有了更深刻的体悟,感觉自己不再是那个只会调用高级语言库的“表面用户”了。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有