百世经纶一页书

大学 4 年的计算机专业的生活快结束了,看完了大部分的书,还有一小部分没看完,记之。

看的比较杂,有些也不是很好分类。文笔很烂,点评就不写了。

基本都买了 ,慢慢传图片,分享一下比较不错的好书。


<<<<<<<<<<<<<<<<<<<<<< 图论点滴 >>>>>>>>>>>>>>>>>>>>>>>>

《图论导引》—— 道格拉斯


《图论导引》—— B.Andrasfai 

《图论与工程应用》

《图论及其应用》—— 王树禾

《有向图理论,算法及其应用》

《欧拉图理论》

《图论与代数结构》

《图与矩阵》


《因子理论和匹配可拓性》


《Applied Graph Theory》

《Graph Theory》—— Reinhard Diestel



《代数图论》(X)


《复杂网络理论及其应用》(X)

《网络群体与市场》(X)


《Random Graph》(X)



<<<<<<<<<<<<<<<<<<<<<< 图形学点滴 >>>>>>>>>>>>>>>>>>>>>>>

《计算机图形学导论》

《计算几何导论》


<<<<<<<<<<<<<<<<<<<< 数据可视化点滴 >>>>>>>>>>>>>>>>>>>>>>>

《数据可视化之美》

《基于VTK的数据可视化》


<<<<<<<<<<<<<<<<<<<<<< 智能点滴 >>>>>>>>>>>>>>>>>>>>>>>>>

《计算语言学》

《遗传算法原理及应用》—— 周明

《人工情感与人工心里》

《人工智能·罗素》

《人工智能原理及其应用》

《人工智能:一种现代的方法》



<<<<<<<<<<<<<<<<<<<<< 算法点滴 >>>>>>>>>>>>>>>>>>>>>>>>>>

《编程之美》

《时空权衡》

《算法引论:一种创造性方法》

《算法设计与分析导论》


《算法导论》


《算法艺术与信息学竞赛》

《挑战程序设计竞赛》

《计算机程序设计艺术》


《计算机程序的构造和解释》

《ACM/ICPC国际大学生程序设计竞赛 题目与解题》

《程序设计方法学》

《算法演化论》

《Hacker's Delight》


<<<<<<<<<<<<<<<<<<<<< 数论点滴 >>>>>>>>>>>>>>>>>>>>>>>>

《数论导引》—— 华罗庚

《解析数论导引》


<<<<<<<<<<<<<<<<<<<<<<< 数分点滴 >>>>>>>>>>>>>>>>>>>>>>

《数学分析原理》—— Rudin

《吉米多维奇》


《陶哲轩实分析》

《数学建模》—— 吉奥丹诺


<<<<<<<<<<<<<<<<<<<<<< 复分析 >>>>>>>>>>>>>>>>>>>>>>>>

《复分析可视化方法》—— Needham 



<<<<<<<<<<<<<<<<<<<<<< 代数点滴 >>>>>>>>>>>>>>>>>>>>>>>

《线性代数应该这样学》

《线性代数及其应用》


《矩阵分析》


《计算机代数》

《代数》—— Michael


《高等代数》 —— 邱维声


《矩阵不等式》


<<<<<<<<<<<<<<<<<<<<<<< 数理点滴 >>>>>>>>>>>>>>>>>>>>>>

《面向计算机科学的数理逻辑》


《数理逻辑与集合论》

《数理逻辑》


<<<<<<<<<<<<<<<<<<<<<< 字符串点滴 >>>>>>>>>>>>>>>>>>>>>>

《精通正折表达式》

《柔性字符串匹配》


<<<<<<<<<<<<<<<<<<<<<< 群论点滴 >>>>>>>>>>>>>>>>>>>>>>>

《置换群与组合结构》

《代数交换基础》

《代数群引论》


<<<<<<<<<<<<<<<<<<<<< 规划点滴 >>>>>>>>>>>>>>>>>>>>>>>>

《运筹学应用范例与解法》

《规划算法》

《组合数学》—— 陈景润

《组合序列与矩阵》


<<<<<<<<<<<<<<<<<<<<<< 概率点滴 >>>>>>>>>>>>>>>>>>>>>>>

《实验应用统计》

《The probabilistic method》


《随机过程》


<<<<<<<<<<<<<<<<<<<<< 最优化点滴 >>>>>>>>>>>>>>>>>>>>>>

《广义最优化理论》

《最优化理论与算法》—— 陈宝林


<<<<<<<<<<<<<<<<<< 系统底层点滴 >>>>>>>>>>>>>>>>>>>>>>>

《windows程序设计》

《深入理解计算机系统》

《Operating System Concepts》

《professional assembly language》

《C++反汇编与逆向分析》

《黑客反汇编解密》(X)

《操作系统:精髓与设计原理》


《X86 从实模式到保护模式》( X )



<<<<<<<<<<<<<<<<<<<< 编程语言点滴 >>>>>>>>>>>>>>>>>>>>

Ada:

《Ada Quality》

《Ada 导引》

《Ada Software Engineers》

《Ada 语言编程指南》


C++:

《C++程序设计原理与实践》


《C++沉思录》

《C++编程思想》

标准C++输入输出流与本地

《C++程序设计艺术》

《泛型编程与STL》

《数据结构与STL》

《数据结构与C++高级编程》


HTML:

《HTML5 Mastery Semantics, Standards, and Styling》


Python:

《Python编程实战:运用设计模式,并发》


《Python核心编程》

《Python高级编程》

《Python源码剖析》(X)

《可爱的Python》


Scheme:

《EOPL》(X)

《The Little Schemer》

《The Scheme Programming》



Structure and Interpretation of Computer Programs



SML:

《ML程序设计教程》

《Programming in Standard ML》


<<<<<<<<<<<<<<<<<<<< 前端设计 >>>>>>>>>>>>>>>>>>>>>>>>

《Designing Interfaces》

《Smashing CSS》

《Smashing jQuery》



<<<<<<<<<<<<<<<<<<<< 数据库点滴 >>>>>>>>>>>>>>>>>>>>>>>

《MongoDB权威指南》

《MongoDB实战》

PostgreSQL 9 Administration Cookbook

《PostgreSQL 从零开始学》

《数据库系统概念》



《数据库信息管理系统原理与实践》


《数据库:模型,语言与设计》

《OrientDB Manual》

《ZODB Manual》


<<<<<<<<<<<<<<<<<<<< 工程点滴 >>>>>>>>>>>>>>>>>>>>>>>>>

《零缺陷程序设计》

《净室软件工程》



《大型网站技术架构》


《大象》



<<<<<<<<<<<<<<<<<<<< Web点滴 >>>>>>>>>>>>>>>>>>>>>>>>

《Flask Web Developments》


《Introduction to tornado》

《Django Web开发指南》




<<<<<<<<<<<<<<<<<<<< 编译原理点滴 >>>>>>>>>>>>>>>>>>>>>>

《自动机理论,语言与计算导论》


《编译原理 · 龙》

《句法模式识别》—— R.C冈察雷斯

《flex and bison》


《形式语义学基础与形式说明》—— 屈延文



<<<<<<<<<<<<<<<<<<<< 通信点滴 >>>>>>>>>>>>>>>>>>>>>>

《数字与模拟通信系统》—— Leon W. Couch


<<<<<<<<<<<<<<<<<<<< 阅读点滴 >>>>>>>>>>>>>>>>>>>>>>>>>

《果壳中的宇宙》

《异类》

《松本行弘的程序世界》

《数学天书中的证明》

《不等式的秘密》

《计算机网络》—— 特南鲍姆




***请支持开源*** 汇编大师Richard Blum的经典AT&T汇编教程英文原版(没有中文版) 下面是中的介绍 Introduction Assembly language is one of the most misunderstood programming languages in use. When the term assembly language is used, it often invokes the idea of low-level bit shuffling and poring over thousand- page instruction manuals looking for the proper instruction format. With the proliferation of fancy high- level language development tools, it is not uncommon to see the phrase “assembly language programming is dead” pop up among various programming newsgroups. However, assembly language programming is far from dead. Every high-level language program must be compiled into assembly language before it can be linked into an executable program. For the high- level language programmer, understanding how the compiler generates the assembly language code can be a great benefit, both for directly writing routines in assembly language and for understanding how the high-level language routines are converted to assembly language by the compiler. Who This Book Is For The primary purpose of this book is to teach high-level language programmers how their programs are converted to assembly language, and how the generated assembly language code can be tweaked. That said, the main audience for this book is programmers already familiar with a high-level language, such as C, C++, or even Java. This book does not spend much time teaching basic programming principles. It assumes that you are already familiar with the basics of computer programming, and are interested in learning assembly language to understand what is happening underneath the hood. However, if you are new to programming and are looking at assembly language programming as a place to start, this book does not totally ignore you. It is possible to follow along in the chapters from the start to the finish and obtain a basic knowledge of how assembly language programming (and programming in general) works. Each of the topics presented includes example code that demonstrates how the assem- bly language instructions work. If you are completely new to programming, I recommend that you also obtain a good introductory text to programming to round out your education on the topic. What This Book Covers The main purpose of this book is to familiarize C and C++ programmers with assembly language, show how compilers create assembly language routines from C and C++ programs, and show how the gener- ated assembly language routines can be spruced up to increase the performance of an application. All high-level language programs (such as C and C++) are converted to assembly language by the com- piler before being linked into an executable program. The compiler uses specific rules defined by the cre- ator of the compiler to determine exactly how the high-level language statements are converted. Many programmers just write their high-level language programs and assume the compiler is creating the proper executable code to implement the program. Introduction However, this is not always the case. When the compiler converts the high-level language code state- ments into assembly language code, quirks and oddities often pop up. In addition, the compiler is often written to follow the conversion rules so specifically that it does not recognize time-saving shortcuts that can be made in the final assembly language code, or it is unable to compensate for poorly written high- level routines. This is where knowledge of assembly language code can come in handy. This book shows that by examining the assembly language code generated by the compiler before link- ing it into an executable program, you can often find places where the code can be modified to increase performance or provide additional functionality. The book also helps you understand how your high- level language routines are affected by the compiler’s conversion process. How This Book Is Structured The book is divided into three sections. The first section covers the basics of the assembly language programming environment. Because assembly language programming differs among processors and assemblers, a common platform had to be chosen. This book uses the popular Linux operating system, running on the Intel family of processors. The Linux environment provides a wealth of program devel- oper tools, such as an optimizing compiler, an assembler, a linker, and a debugger, all at little or no charge. This wealth of development tools in the Linux environment makes it the perfect setting for dissecting C programs into assembly language code. The chapters in the first section are as follows: Chapter 1, “What Is Assembly Language?” starts the section off by ensuring that you understand exactly what assembly language is and how it fits into the programming model. It debunks some of the myths of assembly language, and provides a basis for understanding how to use assembly language with high- level languages. Chapter 2, “The IA-32 Platform,” provides a brief introduction to the Intel Pentium family of processors. When working with assembly language, it is important that you understand the underlying processor and how it handles programs. While this chapter is not intended to be an in-depth analysis of the opera- tion of the IA-32 platform, it does present the hardware and operations involved with programming for that platform. Chapter 3, “The Tools of the Trade,” presents the Linux open-source development tools that are used throughout the book. The GNU compiler, assembler, linker, and debugger are used in the book for com- piling, assembling, linking, and debugging the programs. Chapter 4, “A Sample Assembly Language Program,” demonstrates how to use the GNU tools on a Linux system to create, assemble, link, and debug a simple assembly language program. It also shows how to use C library functions within assembly language programs on Linux systems to add extra fea- tures to your assembly language applications. The second section of the book dives into the basics of assembly language programming. Before you can start to analyze the assembly language code generated by the compiler, you must understand the assem- bly language instructions. The chapters in this section are as follows: xxiv Introduction Chapter 5, “Moving Data,” shows how data elements are moved in assembly language programs. The concepts of registers, memory locations, and the stack are presented, and examples are shown for mov- ing data between them. Chapter 6, “Controlling Execution Flow,” describes the branching instructions used in assembly lan- guage programs. Possibly one of the most important features of programs, the ability to recognize branches and optimize branches is crucial to increasing the performance of an application. Chapter 7, “Using Numbers,” discusses how different number data types are used in assembly lan- guage. Being able to properly handle integers and floating-point values is important within the assembly language program. Chapter 8, “Basic Math Functions,” shows how assembly language instructions are used to perform the basic math functions such as addition, subtraction, multiplication, and division. While these are gener- ally straightforward functions, subtle tricks can often be used to increase performance in this area. Chapter 9, “Advanced Math Functions,” discusses the IA-32 Floating Point Unit (FPU), and how it is used to handle complex floating-point arithmetic. Floating-point arithmetic is often a crucial element to data processing programs, and knowing how it works greatly benefits high-level language programmers. Chapter 10, “Working with Strings,” presents the various assembly language string-handling instruc- tions. Character data is another important facet of high-level language programming. Understanding how the assembly language level handles strings can provide insights when working with strings in high-level languages. Chapter 11, “Using Functions,” begins the journey into the depths of assembly language programming. Creating assembly language functions to perform routines is at the core of assembly language optimiza- tion. It is good to know the basics of assembly language functions, as they are often used by the compiler when generating the assembly language code from high-level language code. Chapter 12, “Using Linux System Calls,” completes this section by showing how many high-level func- tions can be performed in assembly language using already created functions. The Linux system pro- vides many high-level functions, such as writing to the display. Often, you can utilize these functions within your assembly language program. The last section of the book presents more advanced assembly language topics. Because the main topic of this book is how to incorporate assembly language routines in your C or C++ code, the first few chapters show just how this is done. The remaining chapters present some more advanced topics to round out your education on assembly language programming. The chapters in this section include the following: Chapter 13, “Using Inline Assembly,” shows how to incorporate assembly language routines directly in your C or C++ language programs. Inline assembly language is often used for “hard-coding” quick rou- tines in the C program to ensure that the compiler generates the appropriate assembly language code for the routine. Chapter 14, “Calling Assembly Libraries,” demonstrates how assembly language functions can be com- bined into libraries that can be used in multiple applications (both assembly language and high-level language). It is a great time-saving feature to be able to combine frequently used functions into a single library that can be called by C or C++ programs. xxv Introduction Chapter 15, “Optimizing Routines,” discusses the heart of this book: modifying compiler-generated assembly language code to your taste. This chapter shows exactly how different types of C routines (such as if-then statements and for-next loops) are produced in assembly language code. Once you understand what the assembly language code is doing, you can add your own touches to it to customize the code for your specific environment. Chapter 16, “Using Files,” covers one of the most overlooked functions of assembly language program- ming. Almost every application requires some type of file access on the system. Assembly language pro- grams are no different. This chapter shows how to use the Linux file-handling system calls to read, write, and modify data in files on the system. Chapter 17, “Using Advanced IA-32 Features,” completes the book with a look at the advanced Intel Single Instruction Multiple Data (SIMD) technology. This technology provides a platform for program- mers to perform multiple arithmetic operations in a single instruction. This technology has become cru- cial in the world of audio and video data processing. What You Need to Use This Book All of the examples in this book are coded to be assembled and run on the Linux operating system, run- ning on an Intel processor platform. The Open Source GNU compiler (gcc), assembler (gas), linker (ld), and debugger (gdb) are used extensively throughout the book to demonstrate the assembly language features. Chapter 4, “A Sample Assembly Language Program,” discusses specifically how to use these tools on a Linux platform to create, assemble, link, and debug an assembly language program. If you do not have an installed Linux platform available, Chapter 4 demonstrates how to use a Linux distribution that can be booted directly from CD, without modifying the workstation hard drive. All of the GNU development tools used in this book are available without installing Linux on the workstation.
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值