ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب 汇编语言: 基于Linux环境(第3版)

دانلود کتاب 汇编语言: 基于Linux环境(第3版)

汇编语言: 基于Linux环境(第3版)

مشخصات کتاب

汇编语言: 基于Linux环境(第3版)

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 7302345929, 9787302345923 
ناشر: 清华大学出版社 
سال نشر: 2014 
تعداد صفحات: 589 
زبان: Chinese 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 112 مگابایت 

قیمت کتاب (تومان) : 40,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 13


در صورت تبدیل فایل کتاب 汇编语言: 基于Linux环境(第3版) به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب 汇编语言: 基于Linux环境(第3版) نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

封面
前言
目录
第1章 又一个令人愉快的星期六
	1.1 一切尽在计划之中
		1.1.1 步骤和测试
		1.1.2 不止两种方式
		1.1.3 计算机像我们一样
思考
	1.2 如果这是真实情况
	1.3 此路不通,请绕行
		1.3.1 Big Bux游戏
		1.3.2 玩Big Bux游戏
	1.4 像棋盘游戏一样的汇编语言
编程
	1.4.1 代码和数据
	1.4.2 地址
	1.4.3 隐喻,将军
第2章 外星基数
	2.1 新数学怪物归来
	2.2 在火星上计数
		2.2.1 火星数字剖析
		2.2.2 数字基数的本质
	2.3 八进制:绿色精怪怎样偷走
8 和9的
	2.4 十六进制:解决数字的短缺
	2.5 从十六进制到十进制,从十进制
到 十六进制
	2.5.1 从十六进制到十进制
	2.5.2 从十进制到十六进制
	2.5.3 练习!练习!
再练习
	2.6 十六进制运算
		2.6.1 列和进位
		2.6.2 减法和借位
		2.6.3 跨多列借位
		2.6.4 意义何在
	2.7 二进制
		2.7.1 二进制值
		2.7.2 为什么使用二进制
	2.8 二进制简写方式:十六进制
第3章 摘下面具
	3.1 RAXie,我们怎么不认识你
	3.2 开关、晶体管和存储器
		3.2.1 如果走陆路,就是1
		3.2.2 晶体管开关
		3.2.3 难以置信的位缩水
		3.2.4 随机访问
		3.2.5 存储器访问时间
		3.2.6 字节,字,双字,
四字
	3.2.7 精致的芯片排成一行
	3.2.8 车间工长和流水线
	3.2.9 对话内存
	3.2.10 驾驭数据总线
	3.2.11 车间工长的口袋
	3.2.12 流水线
3.3 遵循计划行事的盒子
	3.3.1 取指和执行
	3.3.2 车间工长的内脏
	3.3.3 改变航向
3.4 是什么vs.怎么做:体系结构和
微体系结构
	3.4.1 体系结构的演变
	3.4.2 地下室里的秘密机制
3.5 工厂经理
	3.5.1 操作系统:角落
办公室
	3.5.2 BIOS:是软件,但并
不软
	3.5.3 多任务魔术
	3.5.4 内核提升
	3.5.5 内核爆炸
	3.5.6 计划
第4章 位置,位置,位置
	4.1 内存模式的乐趣
		4.1.116 位将带来64K
存储空间
	4.1.2 兆字节的本质
	4.1.3 向后兼容和虚拟
86 模式
	4.1.416 位眼罩
4.2 段的本质
	4.2.1 一个界限,而非
一个位置
	4.2.2 用两个16位寄存器
构成20 位地址
	4.316 位和32位寄存器
		4.3.1 通用寄存器
		4.3.2 半寄存器
		4.3.3 指令指针寄存器
		4.3.4 标志寄存器
	4.4 三种主要的汇编编程模型
		4.4.1 实模式平面模型
		4.4.2 实模式段模型
		4.4.3 保护模式平面模型
	4.5 保护模式下不再允许我们做的
事情
	4.5.1 内存映射视频系统
	4.5.2 直接访问端口硬件
	4.5.3 直接调用BIOS
4.6 展望未来:64位“长模式”
第5章 汇编的权利
	5.1 文件及其包含的内容
		5.1.1 二进制文件 vs.
文本文件
	5.1.2 用 Bless 编辑器查看
文件内容
	5.1.3 解释原始数据
	5.1.4 “字节序”
5.2 文本进去, 代码出来
	5.2.1 汇编语言
	5.2.2 注释
	5.2.3 当心“只写”
源代码
	5.2.4 目标代码和连接器
	5.2.5 重定位能力
5.3 汇编语言开发过程
	5.3.1 工作目录规范
	5.3.2 编辑源代码文件
	5.3.3 编译源代码文件
	5.3.4 汇编错误
	5.3.5 回到编辑器
	5.3.6 汇编警告
	5.3.7 连接目标代码文件
	5.3.8 连接错误
	5.3.9 测试.EXE文件
	5.3.10 错误vs.漏洞
	5.3.11 我们还在那里吗
	5.3.12 调试器和调试
5.4 沿着汇编小路旅行
	5.4.1 安装软件
	5.4.2 第1步:在编辑器中
编辑程序
	5.4.3 第2步:使用NASM
编译程序
	5.4.4 第3步:使用LD
连接器
	5.4.5 第4步:测试可执行
文件
	5.4.6 第5步:在调试器中
观察程序运行
	5.4.7 准备好要来
真格的了吗
第6章 有地儿,有工具
	6.1 Kate 编辑器
		6.1.1 安装Kate编辑器
		6.1.2 启动Kate
		6.1.3 配置
		6.1.4 Kate 会话
		6.1.5 Kate编辑器的
文件管理
	6.1.6 向工具栏添加
菜单项
	6.1.7 Kate编辑器的
编辑控制
	6.1.8 编程期间使用Kate
编辑器
	6.2 Linux 和终端
		6.2.1 Linux 控制台
		6.2.2 Konsole中的字符
编码
	6.2.3 三个标准Unix文件
	6.2.4 I/O 重定向
	6.2.5 简易文本过滤器
	6.2.6 使用转义序列进行终
端控制
	6.2.7 为什么不用汇编语言编写
GUI应用程序呢
	6.3 使用Linux Make
		6.3.1 依赖条件
		6.3.2 文件何时最新
		6.3.3 依赖链
		6.3.4 从Kate编辑器内部
调用Make实用工具
	6.3.5 使用touch命令强制
执行生成操作
	6.4 Insight 调试器
		6.4.1 运行Insight
		6.4.2 Insight的众多窗口
		6.4.3 快速体验Insight
		6.4.4 拿起你的工具
第7章 跟踪指令
	7.1 为自己建立一个沙盒
		7.1.1 一个最小的NASM
程序
	7.1.2 指令及其操作数
	7.1.3 源操作数和目标
操作数
	7.1.4 立即数
	7.1.5 寄存器数据
	7.1.6 内存数据
	7.1.7 混淆数据和它的
地 址
	7.1.8 内存数据的尺寸
	7.1.9 糟糕的过去
7.2 CPU的标志位
	7.2.1 标志规范
	7.2.2 使用INC指令和DEC
指令加1 和减1
	7.2.3 从Insight中观察
标志
	7.2.4 标志如何改变程序的
执行
	7.3 有符号值和无符号值
		7.3.1 补码和NEG
		7.3.2 符号扩展和MOVSX
	7.4 隐式操作数和Mul
		7.4.1 MUL 和进位标志
		7.4.2 使用DIV实现无符号
除法
	7.4.3 x86中的“慢动作”
指令
	7.5 阅读和使用汇编语言参考资料
		7.5.1 对于复杂记忆的唤醒
文件
	7.5.2 初学者汇编语言参考
指南
	7.5.3 标志
7.6 NEG:求补(求补码;即,
与-1 相乘)
	7.6.1 合法形式
	7.6.2 操作数符号
	7.6.3 示例
	7.6.4 注解
	7.6.5 这里没有包含的
内容
第8章 我们的崇高目标
	8.1 汇编语言程序的基本框架
		8.1.1 最开始处的注释块
		8.1.2 data段
		8.1.3 bss?段
		8.1.4 text段
		8.1.5 标号
		8.1.6 已初始化变量
		8.1.7 字符串变量
		8.1.8 通过EQU和$推导
字符串 的长度
	8.2 通过堆栈实现后进先出
		8.2.1 每小时500个盘子
		8.2.2 堆栈的内容上下
颠倒
	8.2.3 Push-y指令
	8.2.4 POP 指令
	8.2.5 临时存储
8.3 通过INT80使用Linux内核
服务
	8.3.1 不中断任何事情的
中断
	8.3.2 再次返回
	8.3.3 通过使用 INT 80h
退出一个程序
	8.3.4 软件中断VS硬件
中断
	8.3.5 INT 80h和可移植性
盲目崇拜
	8.4 设计一个有价值的程序
		8.4.1 问题定义
		8.4.2 从伪代码开始
		8.4.3 连续改进
		8.4.4 不可避免的“哎呀!”
时刻
	8.4.5 扫描缓冲区
	8.4.6 缓冲溢出(“Off By One”)
错误
	8.4.7 进一步学习
第9章 位、标志、分支和表
	9.1 位就是二进制位(字节也是
二进制 位)
	9.1.1 位编号
	9.1.2 逻辑操作
	9.1.3 与指令
	9.1.4 位屏蔽
	9.1.5 或指令
	9.1.6 异或指令
	9.1.7 非指令
	9.1.8 段寄存器对逻辑操作
没有反应
	9.2 移位操作
		9.2.1 根据什么进行移位
操作
	9.2.2 移位指令的工作
原理
	9.2.3 将位移入进位标志
	9.2.4 循环移位指令
	9.2.5 将已知值存入进位
标志CF
	9.3 位操作
		9.3.1 将一个字节分解为
两个“半字节”
	9.3.2 将高半字节移入
低半字节
	9.3.3 使用查找表
	9.3.4 通过移位和相加来
实现相乘
	9.4 标志、测试和分支
		9.4.1 无条件转移
		9.4.2 条件转移指令
		9.4.3 条件“缺席”时
进行跳转
	9.4.4 标志
	9.4.5 通过CMP进行
比较操作
	9.4.6 转移指令的错综
复杂之处
	9.4.7 “大于”与“以上”
	9.4.8 使用TEST指令
查找位1
	9.4.9 使用BT指令
查找位0
	9.5 保护模式下内存寻址详解
		9.5.1 有效地址计算
		9.5.2 位移量
		9.5.3 基址+位移量寻址
方式
	9.5.4 基址+索引寻址方式
	9.5.5 索引×缩放比例+位
移量寻址方式
	9.5.6 其他寻址方式
	9.5.7 LEA:最机密的
数学机器
	9.5.816 位寄存器的负担
9.6 字符表转换
	9.6.1 转换表
	9.6.2 用MOV或者XLAT
进行转换
	9.7 用表来代替计算
第10章 分治
	10.1 盒子里面的盒子
	10.2 调用和返回
		10.2.1 调用中的调用
		10.2.2 意外递归的危险
		10.2.3 一个需要提防的标志
规范Bug
	10.2.4 过程及其所需的
数据
	10.2.5 保存主调程序的
寄存器
	10.2.6 局部数据
	10.2.7 更多的表格技巧
	10.2.8 在过程定义中加入
常 量数据
	10.3 局部标号和跳转的长度
		10.3.1 “强行”访问局部
标号
	10.3.2 短转移、近转移和
远转移
	10.4 生成外部过程库
		10.4.1 全局声明和外部
声明
	10.4.2 全局过程和外部
过程的机制
	10.4.3 连接库文件到
程序中
	10.4.4 太多过程和太多库的
危险
	10.5 自定义过程的艺术
		10.5.1 可维护性和
可重用性
	10.5.2 确定哪些代码应该
成为一个过程
	10.5.3 使用注释标头
10.6 Linux控制台下的简单光标
控制
	10.7 创建和使用宏
		10.7.1 宏定义机制
		10.7.2 定义带参数的宏
		10.7.3 宏调用机制
		10.7.4 宏内部的局部标号
		10.7.5 像包含文件一样的
宏库文件
	10.7.6 宏?vs.?过程:优点和
缺点
第11章 字符串奏鸣曲
	11.1 汇编语言字符串的概念
		11.1.1 彻底颠覆你的
“字符串 感觉”
	11.1.2 源字符串和目标
字符串
	11.1.3 虚拟文本显示屏
11.2 REP STOSB,软件机枪
	11.2.1 机枪扫射虚拟
显示器
	11.2.2 执行STOSB 指令
	11.2.3 STOSB 和方向
标志(DF)
	11.2.4 在显示缓冲区中
定义行
	11.2.5 将缓冲区发送到
Linux控制 台
	11.3 半自动武器:不带REP的
STOSB
	11.3.1 是谁递减了ECX
	11.3.2 LOOP指令
	11.3.3 在屏幕上显示一个
标尺
	11.3.4 MUL并非 IMUL
	11.3.5 添加ASCII数字
	11.3.6 调整AAA
	11.3.7 Ruler过程的教训
	11.3.8 STOS指令的16位
版本和32 位版本
	11.4 MOVSB:快速块拷贝
		11.4.1 DF和重叠块移动
		11.4.2 使用Insight单步调试
REP字符串 指令
	11.5 将数据存储到不连续的
字符串 中
	11.5.1 显示一个ASCII表
	11.5.2 嵌套指令循环
	11.5.3 当ECX变为0时
进行跳转
	11.5.4 关闭内层循环
	11.5.5 关闭外层循环
	11.5.6 Showchar小结
11.6 命令行参数和堆栈检查
	11.6.1 两块虚拟内存
	11.6.2 Linux堆栈剖析
	11.6.3 为什么堆栈的地址
是不可预测的
	11.6.4 使用Insight设置
命令行参数
	11.6.5 通过Insight的内存
视图查看堆栈
	11.7 使用SCASB进行字符串
搜索
	11.7.1 REPNE v.s. REPE
	11.7.2 从堆栈中弹出,
还是对堆栈寻址
	11.7.3 额外的学分
第12章 C语言
	12.1 什么是GNU
		12.1.1 “瑞士军刀”
编译器
	12.1.2 以GNU的方式生成
代码
	12.1.3 如何在汇编工作中
使用gcc
	12.1.4 为什么不用gas
12.2 连接到标准的C函数库
	12.2.1 C调用公约
	12.2.2 建立一个框架
	12.2.3 保存和恢复寄存器
	12.2.4 建立堆栈帧
	12.2.5 销毁堆栈帧
	12.2.6 通过puts()输出
字符
	12.3 使用printf()格式化文本输出
	12.4 使用fgets()和scanf()进行
数据输入
	12.5 驾驭时间
		12.5.1 C库的时间机制
		12.5.2 从系统时钟中取出
time_t值
	12.5.3 将time_t 值转换为
一个格式化字符串
	12.5.4 生成单独的本地
时间值
	12.5.5 通过使用MOVSD复制
glibc的tm结构
	12.6 理解 AT&T 指令助记符
		12.6.1 AT&T助记符公约
		12.6.2 查看gcc创建的gas
源文件
	12.6.3 AT&T 内存引用
语法
	12.7 产生随机数
		12.7.1 利用srand()为随机
生成器“播种”
	12.7.2 产生伪随机数
	12.7.3 有些位比其他位更具
随机性
	12.7.4 调用寄存器中的
地 址
	12.8 C如何看待命令行参数
	12.9 简单文件输入/输出
		12.9.1 通过sscanf()将字符串
转换为数字
	12.9.2 创建和打开文件
	12.9.3 使用fgets()从文件中
读取文本
	12.9.4 使用fprintf()写文本到
文件中
	12.9.5 关于收集过程到库中的
注解
结论:不是结束,而是刚刚开始
附录A 部分x86 指令集
附录B 字符集图
XVIII 汇编语言:基于Linux环境(第3 版)
目录 XVII




نظرات کاربران