本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
图书基本信息 | |
图书名称 | 汇编程序设计与计算机体系结构:软件工程师教程 |
作者 | [美]布莱恩·R.,霍尔(BrianR.Hall),凯文·J |
定价 | 79元 |
出版社 | 机械工业出版社 |
ISBN | 9787111615163 |
出版日期 | 2019-04-01 |
字数 | |
页码 | 312 |
版次 | |
装帧 | 平装 |
开本 | 16开 |
商品重量 |
内容提要 | |
本书通过大量实例,循序渐进地讲解了汇编语言的各种应用方式,并直观地演示了怎样把汇编语言同高级语言结合,以制作出充分发挥硬件特性的程序。书中以x86与x86_64这两种主流架构为重点,兼顾AT&T及Intel语法,并适用于GAS、NASM及MASM这三种常见的汇编器,以及Linux、macOS及Windows这三种常用的操作系统,这使得身处各种开发环境中的软件工程师都能在书里找到可以直接运用的解决方案,并了解如何将其移植到其他环境。 |
目录 | |
出版者的话 n 译者序 n 前言 n 章 编程语言及数据的 n 基础知识 1 n 1.1 开篇语 1 n 1.2 简介 3 n 1.3 计算机编程语言 3 n 1.3.1 语言之间的关系 3 n 1.3.2 翻译流水线 3 n 1.3.3 编程语言与相应文件及编程工具之间的关系 6 n 1.3.4 为什么要学习汇编语言 7 n 1.4 数据的表示 8 n 1.4.1 计数系统 8 n 1.4.2 怎样表示整数 8 n 1.4.3 怎样表示无符号的整数 9 n 1.4.4 怎样表示带符号的整数 12 n 1.4.5 怎样保存字符 14 n 1.5 布尔表达式 16 n 1.6 3位计算机示例 17 n 1.7 小结 18 n 1.8 关键术语 18 n 1.9 代码回顾 19 n 1.10 习题 20 n 1.11 作业 21 n 第2章 处理器与计算机系统体系结构 22 n 2.1 简介 22 n 2.2 体系结构概述 22 n 2.3 处理器 26 n 2.3.1 缓存与寄存器 27 n 2.3.2 64 位处理器 31 n 2.3.3 指令的执行 31 n 2.3.4 指令流水线 32 n 2.4 输入与输出 33 n 2.5 小结 35 n 2.6 关键术语 35 n 2.7 习题 36 n 2.8 作业 37 n 章与第2章补充材料 与体系结构有关的更多细节 38 n 第3章 汇编语言及其语法的基础知识 41 n 3.1 简介 41 n 3.2 基本元素 42 n 3.2.1 汇编代码的五大支柱 42 n 3.2.2 字面量 46 n 3.2.3 标签与注释 48 n 3.3 定义数据 49 n 3.4 写出能够正常运行的范例程序 55 n 3.5 小结 56 n 3.6 关键术语 56 n 3.7 代码回顾 57 n 3.8 习题 57 n 3.9 作业 58 n 第4章 基本指令 60 n 4.1 简介 60 n 4.2 数据的移动与算术运算 61 n 4.2.1 移动数据 61 n 4.2.2 加法与减法 62 n 4.2.3 乘法与除法 64 n 4.2.4 移位 69 n 4.2.5 处理负值 71 n 4.3 数据的寻址与传输 72 n 4.3.1 数据对齐 72 n 4.3.2 数据寻址 73 n 4.3.3 数组 75 n 4.3.4 改变数据的大小及类型 78 n 4.4 小结 79 n 4.5 关键术语 80 n 4.6 代码回顾 80 n 4.7 习题 81 n 4.8 作业 81 n 第 5 章 中级指令 83 n 5.1 简介 83 n 5.2 按位执行的布尔运算 83 n 5.3 分支 88 n 5.3.1 无条件跳转 88 n 5.3.2 有条件跳转 88 n 5.3.3 复合条件 91 n 5.4 重复执行 92 n 5.4.1 用 CX/ECX/RCX 计数器实现循环 92 n 5.4.2 用开发者自定义的计数器实现循环 94 n 5.5 小结 97 n 5.6 关键术语 97 n 5.7 代码回顾 97 n 5.8 习题 98 n 5.9 作业 99 n 第 6 章 函数 100 n 6.1 简介 100 n 6.2 栈内存入门 100 n 6.3 x86 与 x86_64 的调用约定 101 n 6.3.1 cdecl(32 位) 102 n 6.3.2 stdcall(32 位) 109 n 6.3.3 x86_64(64 位) 110 n 6.3.4 有用的细节 114 n 6.4 实现 114 n 6.5 小结 118 n 6.6 关键术语 118 n 6.7 重要的寄存器(32 位和 n 64 位) 118 n 6.8 代码回顾 119 n 6.9 与平台有关的注意事项 119 n 6.10 习题 120 n 6.11 作业 120 n 第6章补充材料 程序 6-3 122 n 第7章 与字符串有关的指令及结构体 123 n 7.1 简介 123 n 7.2 辅助指令 123 n 7.3 基本字符串指令 125 n 7.3.1 MOVS 125 n 7.3.2 CMPS 126 n 7.3.3 SCAS 129 n 7.3.4 STOS 131 n 7.3.5 LODS 132 n 7.4 结构体 133 n 7.5 小结 135 n 7.6 关键术语 135 n 7.7 代码回顾 135 n 7.8 习题 136 n 7.9 作业 137 n 第8章 浮点运算 138 n 8.1 简介 138 n 8.2 浮点数的表示方式 139 n 8.2.1 IEEE表示法 139 n 8.2.2 特殊值 141 n 8.2.3 次正规数 141 n 8.2.4 舍入 142 n 8.3 浮点数的实现 143 n 8.3.1 x87 143 n 8.3.2 MMX——题外话 152 n 8.3.3 SSE 154 n 8.3.4 XOP、FMA3/4、F16C——分化 159 n 8.3.5 AVX 160 n 8.4 小结 161 n 8.5 关键术语 162 n 8.6 重要的寄存器(32位和64位) 162 n 8.7 代码回顾 162 n 8.8 习题 164 n 8.9 作业 165 n 第8章补充材料 第8章中的程序 167 n 第9章 内联汇编与宏 177 n 9.1 简介 177 n 9.2 内联汇编 177 n 9.2.1 与编译器有关的细节 178 n 9.2.2 内联式的汇编语句 178 n 9.2.3 为各种汇编方言提供支持 184 n 9.2.4 注意事项 185 n 9.3 宏 186 n 9.3.1 对比宏与函数 186 n 9.3.2 定义并调用宏 186 n 9.4 小结 188 n 9.5 关键术语 188 n 9.6 习题 188 n 9.7 作业 189 n 0章 与处理器及体系结构有关的高级话题 191 n 10.1 简介 191 n 10.2 处理器与系统的机能 192 n 10.2.1 系统寄存器 192 n 10.2.2 处理器模式 193 n 10.2.3 内存模型 193 n 10.2.4 代码范例 197 n 10.3 中断与系统调用 198 n 10.3.1 软件中断 198 n 10.3.2 硬件中断 204 n 10.3.3 通过INT进行系统调用(旧方法) 204 n 10.3.4 通过SYSENTER、SYSCALL及程序库/API进行系统调用(新方法) 207 n 10.4 小结 214 n 10.5 关键术语 215 n 10.6 代码回顾 216 n 10.7 习题 216 n 10.8 作业 217 n 0章补充材料 0章中的程序和资源 218 n 1章 其他架构 223 n 11.1 简介 223 n 11.2 CISC与RISC 224 n 11.3 更多架构 225 n 11.3.1 ARM 225 n 11.3.2 AVR 228 n 11.3.3 RISC-V 231 n 11.3.4 System-z/Architecture 233 n 11.4 量子架构 234 n 11.5 小结 236 n 11.6 关键术语 236 n 11.7 习题 |
作者介绍 | |
布莱恩·R. 霍尔(Brian R.Hall)任教于查普兰学院。凯文·J.斯郎迦(Kevin J.Slonka)任教于宾夕法尼亚Highlands Community学院。 |