登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』x86汇编语言程序设计

書城自編碼: 3531824
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 许向阳
國際書號(ISBN): 9787568063111
出版社: 华中科技大学出版社
出版日期: 2020-08-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 293

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
商业人像摄影
《 商业人像摄影 》

售價:NT$ 447.0
抗争表演
《 抗争表演 》

售價:NT$ 347.0
咏春八斩刀
《 咏春八斩刀 》

售價:NT$ 391.0
聊不完的艺术家:跨界设计师穆夏
《 聊不完的艺术家:跨界设计师穆夏 》

售價:NT$ 549.0
失去的过去与未来的犯罪
《 失去的过去与未来的犯罪 》

售價:NT$ 279.0
质子交换膜燃料电池系统及其控制   戴海峰,余卓平,袁浩 著
《 质子交换膜燃料电池系统及其控制 戴海峰,余卓平,袁浩 著 》

售價:NT$ 1114.0
绘画的基础 彩色铅笔技法入门教程
《 绘画的基础 彩色铅笔技法入门教程 》

售價:NT$ 279.0
听闻远方有你2
《 听闻远方有你2 》

售價:NT$ 240.0

編輯推薦:
作者从事汇编语言程序设计课程教学多年,为国家精品课程汇编语言程序设计的主要建设者之一。本书理论结合实践,符合现代教材编写思路,书中附大量代码案例,便于学生动手验证、操作。
內容簡介:
本书立足于目前使用为广泛的Intel x8632和x8664系列的CPU、Windows操作系统及Visual Studio 2019开发平台,从汇编语言这种直观和直接的角度,揭示计算机工作的基本原理、C语言语句和函数的处理过程、程序优化的技巧。全书共分为19章。前5章介绍了汇编语言程序设计的基本知识,包括CPU、内存、寻址方式和常用机器指令;第6章至第11章介绍了x8632位控制台应用程序设计,包括顺序和分支、循环、子程序设计、多模块化程序设计;第12章为中断和异常处理;第13章是Win32窗口程序设计;第14章至第17章介绍了x87 FPU、MMX、SSE、AVX程序设计;第18章为x8664位汇编程序设计;第19章为上机操作。本书内容新颖,覆盖面广,重点突出,直观易懂,趣味性强,可供各类高等院校计算机及相关专业作为教材,也可供广大使用汇编语言的工程技术人员参考。
關於作者:
华中科技大学计算机科学与技术学院副教授。1991年毕业于华中科技大学计算机学院,获得软件专业硕士学位。从事数据库科研工作多年,对数据库管理系统的总体设计、并发控制、查询优化、数据库安全、并行数据库有较深的研究,在国内权威和重要期刊上发表论文20多篇。从事汇编语言程序设计、人工智能的教学工作多年,为国家精品课程汇编语言程序设计的主要建设者之一。
目錄
1.1什么是汇编语言1
1.1.1机器语言1
1.1.2汇编语言2
1.2为什么学习汇编语言4
1.3如何学习汇编语言7
1.4汇编语言源程序举例9
1.5计算机中信息编码的奥秘12
1.6使用符号的说明14
习题115
上机实践116
第2章Intel中央处理器17
2.1Intel公司微处理器的发展史17
2.2Intel x86微处理器结构19
2.3执 行 部 件20
2.3.132位CPU中的通用寄存器21
2.3.2通用寄存器应用示例22
2.4标志寄存器23
2.4.1条件标志位24
2.4.2控制标志位26
2.4.3系统标志位27
2.5指令预取部件和指令译码部件27
2.6分段部件和分页部件28
2.7x86的三种工作方式30
2.8Intel公司酷睿微体系结构31
习题233
上机实践234
第3章主存储器及数据在计算机内的表示形式35
3.1主存储器35
3.1.1数据存储的基本形式35
3.1.2数据地址的类型及转换36
3.2数值数据在计算机内的表示形式37
3.2.1有符号数和无符号数表示法37
3.2.2BCD码38
3.3字符数据在计算机内的表示形式39
3.4数据段定义39
3.4.1数据定义伪指令40
3.4.2表达式40
3.4.3汇编地址计数器42
3.4.4数据段定义示例43
3.5主存储器分段管理44
3.6主存储器物理地址的形成45
3.6.18086和x8632实方式下物理地址的形成45
3.6.2保护方式下物理地址的形成47
习题350
上机实践351
第4章寻址方式53
4.1寻址方式概述53
4.2立即寻址54
4.3寄存器寻址56
4.4直接寻址57
4.4.1直接寻址的基本概念57
4.4.2直接寻址的用法示例58
4.5寄存器间接寻址60
4.5.1寄存器间接寻址的基本用法60
4.5.2寄存器间接寻址与C语言指针的比较62
4.6变址寻址63
4.7基址加变址寻址64
4.8寻址方式综合举例66
4.9x86机器指令编码规则68
4.10808680386的寻址方式73
习题474
上机实践477
第5章常用机器指令79
5.1通用机器指令概述79
5.2数据传送指令80
5.2.1一般数据传送指令80
5.2.2带条件的数据传送指令82
5.2.3堆栈操作指令83
5.2.4标志寄存器传送指令86
5.2.5地址传送指令88
5.3算术运算指令89
5.3.1加法指令90
5.3.2减法指令91
5.3.3乘法指令92
5.3.4除法指令94
5.3.5符号扩展指令95
5.4逻辑运算指令95
5.5移位指令97
5.7位操作和字节操作指令99
5.8标志位控制指令和杂项指令100
5.9IO指令100
习题5102
上机实践5103
第6章顺序和分支程序设计105
6.1概述105
6.2程序中的伪指令107
6.2.1处理器选择伪指令107
6.2.2存储模型说明伪指令108
6.2.3段定义及程序结束伪指令109
6.3转移指令110
6.3.1转移指令概述110
6.3.2简单条件转移指令110
6.3.3无符号条件转移指令111
6.3.4有符号条件转移指令113
6.3.5无条件转移指令114
6.4简单分支程序设计115
6.4.1C语言的if语句与汇编语句的对应关系115
6.4.2分支程序设计示例117
6.4.3分支程序设计注意事项120
6.5多分支程序设计121
6.5.1多分支向无分支的转化121
6.5.2switch语句的编译123
6.6条件控制流伪指令125
习题6128
上机实践6129
第7章循环程序设计131
7.1循环程序131
7.1.1循环程序的结构131
7.1.2循环控制方法132
7.1.3循环控制指令134
7.2单重循环程序设计137
7.3多重循环程序设计139
7.4循环程序中的细节分析141
7.5与C循环程序反汇编的比较145
7.6循环控制伪指令148
习题7150
上机实践7151
第8章子程序设计152
8.1子程序的概念152
8.2子程序的基本用法153
8.2.1子程序的定义153
8.2.2子程序的调用和返回154
8.2.3在主程序与子程序之间传递参数155
8.2.4子程序调用现场的保护157
8.2.5子程序设计应注意的问题158
8.3子程序应用示例159
8.3.1字符串的比较159
8.3.2数串转换161
8.3.3串数转换163
8.3.4自我修改返回地址的子程序165
8.3.5自我修改的子程序168
8.4C语言程序中函数的运行机理169
8.5汇编语言中子程序的高级用法172
8.5.1局部变量的定义和使用173
8.5.2子程序的原型说明、定义和调用174
8.5.3子程序的高级用法举例176
8.6递归子程序的设计177
习题8180
上机实践8181
第9章串处理程序设计183
9.1串操作指令简介183
9.2串传送指令185
9.3串比较指令187
9.4串搜索指令189
9.5向目的串中存数指令190
9.6从源串中取数指令191
习题9192
上机实践9192
第10章复合数据类型的定义和使用194
10.1结构体194
10.1.1结构体的定义194
10.1.2结构变量的定义195
10.1.3结构变量的访问196
10.1.4结构信息的自动计算198
10.2结构变量的数据存储200
10.2.1汇编语言中结构变量的存储200
10.2.2与C语言结构变量存储的差异201
10.3联合体202
习题10203
上机实践10203
第11章程序设计的其他方法205
11.1汇编语言多模块化程序设计205
11.2C语言程序和汇编语言程序的混合209
11.2.1函数的申明和调用209
11.2.2变量的申明和调用210
11.3内嵌汇编211
11.4模块程序设计中的注意事项213
11.5宏功能程序设计214
11.5.1宏定义214
11.5.2宏调用215
11.5.3宏指令与子程序的比较216
11.6可执行文件的格式217
习题11223
上机实践11224
第12章中断和异常处理225
12.1中断与异常的基础知识225
12.1.1中断和异常的概念225
12.1.2中断描述符表227
12.1.3中断和异常的响应过程229
12.1.4软中断指令230
12.2Windows中的结构化异常处理231
12.2.1编写异常处理函数231
12.2.2异常处理程序的注册232
12.2.3全局异常处理程序的注册234
12.3C语言异常处理程序反汇编分析236
习题12239
上机实践12239
第13章Win32窗口程序设计242
13.1Win32窗口程序设计基础 242
13.1.1窗口程序运行的基本过程242
13.1.2Windows消息245
13.1.3Win32窗口程序的开发环境247
13.2Win32窗口应用程序的结构248
13.2.1主程序248
13.2.2窗口主程序248
13.2.3窗口消息处理程序249
13.3窗口应用程序开发实例250
13.3.1不含资源的窗口程序250
13.3.2包含菜单和对话框的窗口程序253
13.4与C语言开发的窗口程序比较260
习题13264
上机实践13264
第14章x87 FPU程序设计265
14.1浮点数据265
14.1.1浮点数据在机内的表示形式265
14.1.2浮点类型变量的定义267
14.2x87 FPU的寄存器268
14.2.1x87 FPU数据寄存器268
14.2.2x87 FPU其他寄存器269
14.3x87 FPU指令271
14.4浮点数处理程序示例274
习题14277
上机实践14277
第15章MMX程序设计278
15.1MMX技术简介278
15.2MMX指令简介280
15.3MMX编程示例282
15.4使用C语言编写MMX应用程序285
习题15286
上机实践15287
第16章SSE程序设计288
16.1SSE技术简介288
16.2SSE指令简介289
16.2.1组合和标量单精度浮点指令290
16.2.2SSE 64位SIMD整数指令292
16.2.3MXCSR状态管理指令293
16.2.4缓存控制指令293
16.3SSE2及后续版本的指令简介293
16.3.1组合双精度浮点数和标量双精度浮点数指令294
16.3.264位和128位整数指令295
16.4SSE编程示例296
16.5使用C语言编写SSE应用程序297
习题16299
上机实践16300
第17章AVX程序设计301
17.1AVX技术简介301
17.2AVX指令简介302
17.2.1新指令302
17.2.2功能扩展指令303
17.3AVX编程示例304
习题17306
上机实践17306
第18章x8664位汇编程序设计307
18.1x8664的运行环境307
18.1.1寄存器307
18.1.2寻址方式308
18.1.3指令系统309
18.264位的程序设计309
18.2.164位平台下与32位平台下的区别309
18.2.2显示一个消息框312
18.2.3浮点数运算312
18.2.4程序自我修改313
18.3x8664机器指令编码规则314
习题18317
上机实践18317
第19章上机操作318
19.1创建工程和生成可执行程序318
19.2程序的调试319
19.3编译链接器的配置322
19.4其他操作324
附录ASCII字符表326
参考文献327
內容試閱
毋庸置疑,现在的IT界很少使用汇编语言开发项目。作为一种程序设计语言,汇编语言似乎销声匿迹。这也让一些人怀疑学习汇编语言的必要性。在阅读本书后,读者完全可以打消这种疑虑了。不论是对后续课程学习、理解计算机的工作原理,还是编写高质量、高效率的应用程序,汇编语言都起着不可或缺的作用。
首先,汇编语言程序设计是计算机类专业的重要专业基础课,是从事计算机研究与应用,特别是软件研究的基础,是计算机人员必须接受的重要的专业基础训练课之一。汇编语言作为机器语言的符号表示,提供了直观、直接学习有关知识的方式。汇编程序可以看成是编译器对高级语言程序编译后的输出产物,也可以看成是在计算机上能直接加工处理的输入对象。因此,汇编语言就是连接高级语言程序和计算机硬件设备的桥梁和枢纽,为深入地理解计算机硬件、操作系统、应用程序之间的交互工作奠定基础。此外,汇编语言对于高级语言程序设计的学习和实践很有帮助。很多人在学习CC语言程序设计时,都会有很多疑问。例如,程序运行中为什么崩溃?程序运行中为什么会出现莫名其妙的结果?函数之间是如何传递参数和返回结果的?递归程序是如何运转的?为什么不返回局部变量的地址?数组越界访问会造成什么后果?指针是如何实现的?地址类型转换和数据类型转换的含义是什么?在C程序设计中,对象构造、对象析构、继承、多态、成员对象的引用、虚函数、类模板和函数模板等是如何实现的?汇编语言是揭开高级程序设计语言工作机制神秘面纱的强有力武器。本书给出了一些C语言程序的反汇编示例,直观展现了C语言语句和函数对应的一个执行系列,进而分析变量的空间分配方法、地址类型转换、数据结构中各组成部分的空间关系、函数参数和结果的传递方法、程序执行流程的转移、递归函数的执行过程等奥秘。这些知识又助于从本质上理解程序执行过程。在编程者深刻把握语句的执行原理后,编写程序时就可以少犯错误,也可发编写出执行效率高且形式优美的程序。
其次,开发的软件运行速度快是一个常规要求。除了在大方面选择性能高的算法外,还需要在很多小方面选择快速的实现方法。在学习汇编语言后,会发现计算机指令系统提供了一些能提高程序运行性能的指令,如串操作指令、单指令多数据流指令。它们比另外一些实现相同功能的指令的速度要快得多。这也就会让人们在使用高级语言开发程序时寻找封装后高性能指令的函数或语句。本书在串操作和数据成组运算上给出了示例,并检测了不同实现方法的运行时间。当然,在实际项目开发中,有人直接利用汇编语言编写部分关键代码以提高系统的性能。汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、IO端口等,且占用内存空间少,执行速度快,是高效的程序设计语言。
后,汇编语言是逆向工程、解密程序、病毒与木马分析和防治的唯一选择。在不支持高级语言开发工具的特定场合下,编写汇编程序是一种必然选择。
本书的特色之一是使用Visual Studio 2019作为汇编语言程序的开发平台。该平台操作简单,与其前辈版本Visual Studio 2010、Visual Studio 2013、Visual Studio 2017等用法相似,可以和CC程序开发无缝衔接,在汇编语言程序中调用C标准库函数、Windows API函数,或者在C程序中调用汇编语言编写的函数。特色之二是根据构建理论,将不同的知识关联起来形成网络,同步促进多种知识的学习。书上给出了一些大家熟悉的有代表性的C程序例子,通过研究这些例子的反汇编代码,由表及里揭示其内在的处理过程、编译技巧,进而加深对机器指令的运行过程和功能的理解,加深对计算机工作原理的理解。书中也给出了一些既用汇编语言又用C语言实现的例子,在学习汇编语言知识后,可以引导编写更高质量的C语言程序。特色之三是内容新颖、覆盖面广。本书介绍了目前使用为广泛的Intel x8632和x8664系列CPU支持指令系统,包括x8632、x87、MMX、SSE、AVX、x8664指令,以及机器指令的编码规则;介绍了Windows操作系统下控制台程序和窗口应用程序的开发;包含了多模块程序设计、C和汇编混合、C内嵌汇编、中断及异常处理程序开发、执行文件结构等内容。特色之四是趣味性强。在完成某一功能时,采用一题多解的策略,采用不同的寻址方式、不同的指令、不同的算法完成相同的任务,充分展现了编程的灵活性。同时,书上也给出了程序自我修改、机器语言编程、程序转移自主控制等特色例子。特色之五是重点突出。Intel CPU的机器指令是非常多的,可编写的程序也非常多,本书并不是指令参考书,也不是编程集锦,未纠缠于一一介绍这些指令和过多地给出程序示例,相信读者对这些知识能够举一反三,融汇贯通。建议不要死记硬背那些机器指令,将大脑降档为一个存储器。随着时间的流逝,这些指令内容都会遗忘,留在脑海里的是基本原理、基本方法和基本技巧。
在编写本书的过程中,得到了华中科技大学计算机科学与技术学院汇编语言程序设计课程组老师们的热情帮助和支持。汇编语言程序设计课程是国*级精品课程。在精品课程建设中,老师们集思广益,群策群力,使我收获颇丰。本书的编写也得到了华中科技大学出版社编辑的帮助,在此一并表示感谢
由于作者水平有限,书中错误在所难免,恳请广大读者批评指正。同时也欢迎使用本书的老师、学生和其他读者,共同探讨汇编语言的教学内容和教学方法等问题。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.