ورود به حساب

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

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

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

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

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

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


09117307688
09117179751

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

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

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

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

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

پشتیبانی

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

دانلود کتاب Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond

دانلود کتاب مقدمه ای بر سیستم های محاسباتی: از بیت ها و گیت ها تا C/C++ و فراتر از آن

Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond

مشخصات کتاب

Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond

دسته بندی: کامپیوتر
ویرایش: 3 
نویسندگان:   
سری:  
ISBN (شابک) : 1260150534, 9781260150537 
ناشر: McGraw-Hill Education 
سال نشر: 2019 
تعداد صفحات: 801 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 16 مگابایت 

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



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

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


در صورت تبدیل فایل کتاب Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب مقدمه ای بر سیستم های محاسباتی: از بیت ها و گیت ها تا C/C++ و فراتر از آن نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب مقدمه ای بر سیستم های محاسباتی: از بیت ها و گیت ها تا C/C++ و فراتر از آن

ویرایش سوم مقدمه‌ای بر سیستم‌های محاسباتی: از بیت‌ها و گیت‌ها تا C/C++ و فراتر از آن طراحی شده است تا پایه‌ای قوی از محاسبات را در ابتدای کار درسی به دانش‌آموزان ارائه دهد. این کتاب در دو بخش است: (الف) ساختار زیربنایی یک کامپیوتر، و (ب) برنامه نویسی به دو زبان سطح بالا و روش برنامه نویسی. اتخاذ رویکردی از پایین به بالا از مفاهیم اساسی، مانند نحوه عملکرد یک کامپیوتر، تا زبان های برنامه نویسی سطح بالا، دانش آموزان را قادر می سازد تا هر مفهومی را در حین کار بر روی متن درک کنند. این رویکرد از پایین به بالا می‌تواند دانش‌آموزان را به درک مفهومی و کاربرد بیشتر با به خاطر سپردن کمتر سوق دهد.


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

The third edition of Introduction to Computing Systems: From bits & gates to C/C++ and beyond is designed to give students a strong foundation of computing early on in their coursework. The book is in two parts: (a) the underlying structure of a computer, and (b) programming in two high-level languages and programming methodology. Taking a bottom-up approach from foundational concepts, such as how a computer operates, to more high-level programming languages enables students to understand each concept while working through the text. This bottom-up approach can lead students to more conceptual understanding and application with less memorizing.



فهرست مطالب

Cover
Title Page
Copyright Page
Dedication
Contents
Acknowledgments
Preface
1 Welcome Aboard
	1.1 What We Will Try to Do
	1.2 How We Will Get There
	1.3 Two Recurring Themes
		1.3.1 The Notion of Abstraction
		1.3.2 Hardware vs. Software
	1.4 A Computer System
		1.4.1 A (Very) Little History for a (Lot) Better Perspective
		1.4.2 The Parts of a Computer System
	1.5 Two Very Important Ideas
	1.6 Computers as Universal Computational Devices
	1.7 How Do We Get the Electrons to Do the Work?
		1.7.1 The Statement of the Problem
		1.7.2 The Algorithm
		1.7.3 The Program
		1.7.4 The ISA
		1.7.5 The Microarchitecture
		1.7.6 The Logic Circuit
		1.7.7 The Devices
	Exercises
2 Bits, Data Types, and Operations
	2.1 Bits and Data Types
		2.1.1 The Bit as the Unit of Information
		2.1.2 Data Types
	2.2 Integer Data Types
		2.2.1 Unsigned Integers
		2.2.2 Signed Integers
	2.3 2’s Complement Integers
	2.4 Conversion Between Binary and Decimal
		2.4.1 Binary to Decimal Conversion
		2.4.2 Decimal to Binary Conversion
		2.4.3 Extending Conversion to Numbers with Fractional Parts
	2.5 Operations on Bits—Part I: Arithmetic
		2.5.1 Addition and Subtraction
		2.5.2 Sign-Extension
		2.5.3 Overflow
	2.6 Operations on Bits—Part II: Logical Operations
		2.6.1 A Logical Variable
		2.6.2 The AND Function
		2.6.3 The OR Function
		2.6.4 The NOT Function
		2.6.5 The Exclusive-OR Function
		2.6.6 DeMorgan’s Laws
		2.6.7 The Bit Vector
	2.7 Other Representations
		2.7.1 Floating Point Data Type (Greater Range, Less Precision)
		2.7.2 ASCII Codes
		2.7.3 Hexadecimal Notation
	Exercises
3 Digital Logic Structures
	3.1 The Transistor
	3.2 Logic Gates
		3.2.1 The NOT Gate (Inverter)
		3.2.2 OR and NOR Gates
		3.2.3 Why We Can’t Simply Connect P-Type to Ground
		3.2.4 AND and NAND Gates
		3.2.5 Gates with More Than Two Inputs
	3.3 Combinational Logic Circuits
		3.3.1 Decoder
		3.3.2 Mux
		3.3.3 A One-Bit Adder (a.k.a. a Full Adder)
		3.3.4 The Programmable Logic Array (PLA)
		3.3.5 Logical Completeness
	3.4 Basic Storage Elements
		3.4.1 The R-S Latch
		3.4.2 The Gated D Latch
	3.5 The Concept of Memory
		3.5.1 Address Space
		3.5.2 Addressability
		3.5.3 A 22-by-3-Bit Memory
	3.6 Sequential Logic Circuits
		3.6.1 A Simple Example: The Combination Lock
		3.6.2 The Concept of State
		3.6.3 The Finite State Machine and Its State Diagram
		3.6.4 The Synchronous Finite State Machine
		3.6.5 The Clock
		3.6.6 Example: A Danger Sign
	3.7 Preview of Coming Attractions: The Data Path of the LC-3
	Exercises
4 The von Neumann Model
	4.1 Basic Components
		4.1.1 Memory
		4.1.2 Processing Unit
		4.1.3 Input and Output
		4.1.4 Control Unit
	4.2 The LC-3: An Example von Neumann Machine
	4.3 Instruction Processing
		4.3.1 The Instruction
		4.3.2 The Instruction Cycle (NOT the Clock Cycle!)
		4.3.3 Changing the Sequence of Execution
		4.3.4 Control of the Instruction Cycle
		4.3.5 Halting the Computer (the TRAP Instruction)
	4.4 Our First Program: A Multiplication Algorithm
	Exercises
5 The LC-3
	5.1 The ISA: Overview
		5.1.1 Memory Organization
		5.1.2 Registers
		5.1.3 The Instruction Set
		5.1.4 Opcodes
		5.1.5 Data Types
		5.1.6 Addressing Modes
		5.1.7 Condition Codes
	5.2 Operate Instructions
		5.2.1 ADD, AND, and NOT
		5.2.2 Immediates
		5.2.3 The LEA Instruction (Although Not Really an Operate)
	5.3 Data Movement Instructions
		5.3.1 PC-Relative Mode
		5.3.2 Indirect Mode
		5.3.3 Base+offset Mode
		5.3.4 An Example
	5.4 Control Instructions
		5.4.1 Conditional Branches
		5.4.2 Two Methods of Loop Control
		5.4.3 The JMP Instruction
		5.4.4 The TRAP Instruction
	5.5 Another Example: Counting Occurrences of a Character
	5.6 The Data Path Revisited
		5.6.1 Basic Components of the Data Path
		5.6.2 The Instruction Cycle Specific to the LC-3
	Exercises
6 Programming
	6.1 Problem Solving
		6.1.1 Systematic Decomposition
		6.1.2 The Three Constructs: Sequential, Conditional, Iterative
		6.1.3 LC-3 Control Instructions to Implement the Three Constructs
		6.1.4 The Character Count Example from Chapter 5, Revisited
	6.2 Debugging
		6.2.1 Debugging Operations
		6.2.2 Use of an Interactive Debugger
	Exercises
7 Assembly Language
	7.1 Assembly Language Programming—Moving Up a Level
	7.2 An Assembly Language Program
		7.2.1 Instructions
		7.2.2 Pseudo-Ops (AssemblerDirectives)
		7.2.3 Example: The Character Count Example of Section 5.5, Revisited Again!
	7.3 The Assembly Process
		7.3.1 Introduction
		7.3.2 A Two-Pass Process
		7.3.3 The First Pass: Creating the Symbol Table
		7.3.4 The Second Pass: Generating the Machine Language Program
	7.4 Beyond the Assembly of a Single Assembly Language Program
		7.4.1 The Executable Image
		7.4.2 More than One Object File
	Exercises
8 Data Structures
	8.1 Subroutines
		8.1.1 The Call/Return Mechanism
		8.1.2 JSR(R)—The Instruction That Calls the Subroutine
		8.1.3 Saving and Restoring Registers
		8.1.4 Library Routines
	8.2 The Stack
		8.2.1 The Stack—An Abstract Data Type
		8.2.2 Two Example Implementations
		8.2.3 Implementation in Memory
		8.2.4 The Complete Picture
	8.3 Recursion, a Powerful Technique When Used Appropriately
		8.3.1 Bad Example Number 1: Factorial
		8.3.2 Fibonacci, an Even Worse Example
		8.3.3 The Maze, a Good Example
	8.4 The Queue
		8.4.1 The Basic Operations: Remove from Front, Insert at Rear
		8.4.2 Wrap-Around
		8.4.3 How Many Elements Can We Store in a Queue?
		8.4.4 Tests for Underflow, Overflow
		8.4.5 The Complete Story
	8.5 Character Strings
		Exercises
9 I/O
	9.1 Privilege, Priority, and the Memory Address Space
		9.1.1 Privilege and Priority
		9.1.2 Organization of Memory
	9.2 Input/Output
		9.2.1 Some Basic Characteristics of I/O
		9.2.2 Input from the Keyboard
		9.2.3 Output to the Monitor
		9.2.4 A More Sophisticated Input Routine
		9.2.5 Implementation of Memory-Mapped I/O, Revisited
	9.3 Operating System Service Routines (LC-3 Trap Routines)
		9.3.1 Introduction
		9.3.2 The Trap Mechanism
		9.3.3 The TRAP Instruction
		9.3.4 The RTI Instruction: To Return Control to the Calling Program
		9.3.5 A Summary of the Trap Service Routine Process
		9.3.6 Trap Routines for Handling I/O
		9.3.7 A Trap Routine for Halting the Computer
		9.3.8 The Trap Routine for Character Input (One Last Time)
		9.3.9 PUTS: Writing a Character String to the Monitor
	9.4 Interrupts and Interrupt-Driven I/O
		9.4.1 What Is Interrupt-Driven I/O?
		9.4.2 Why Have Interrupt-Driven I/O?
		9.4.3 Two Parts to the Process
		9.4.4 Part I: Causing the Interrupt to Occur
		9.4.5 Part II: Handling the Interrupt Request
		9.4.6 An Example
		9.4.7 Not Just I/O Devices
	9.5 Polling Revisited, Now That We Know About Interrupts
		9.5.1 The Problem
		9.5.2 The Solution
	Exercises
10 A Calculator
	10.1 Data Type Conversion
		10.1.1 Example: A Bogus Program: 2 + 3 = e
		10.1.2 Input Data (ASCII to Binary)
		10.1.3 Display Result (Binary to ASCII)
	10.2 Arithmetic Using a Stack
		10.2.1 The Stack as Temporary Storage
		10.2.2 An Example
		10.2.3 OpAdd, OpMult, and OpNeg
	10.3 The Calculator
		10.3.1 Functionality
		10.3.2 Code
	Exercises
11 Introduction to C/C++ Programming
	11.1 Our Objective
	11.2 Bridging the Gap
	11.3 Translating High-Level Language Programs
		11.3.1 Interpretation
		11.3.2 Compilation
		11.3.3 Pros and Cons
	11.4 The C/C++ Programming Languages
		11.4.1 The Origins of C and C++
		11.4.2 How We Will Approach C and C++
		11.4.3 The Compilation Process
		11.4.4 Software Development Environments
	11.5 A Simple Example in C
		11.5.1 The Function main
		11.5.2 Formatting, Comments, and Style
		11.5.3 The C Preprocessor
		11.5.4 Input and Output
	11.6 Summary
	Exercises
12 Variables and Operators
	12.1 Introduction
	12.2 Variables
		12.2.1 Four Basic Data Types
		12.2.2 Choosing Identifiers
		12.2.3 Scope: Local vs. Global
		12.2.4 More Examples
	12.3 Operators
		12.3.1 Expressions and Statements
		12.3.2 The Assignment Operator
		12.3.3 Arithmetic Operators
		12.3.4 Order of Evaluation
		12.3.5 Bitwise Operators
		12.3.6 Relational Operators
		12.3.7 Logical Operators
		12.3.8 Increment /Decrement Operators
		12.3.9 Expressions with Multiple Operators
	12.4 Problem Solving Using Operators
	12.5 Tying It All Together
		12.5.1 Symbol Table
		12.5.2 Allocating Space for Variables
		12.5.3 A Comprehensive Example
	12.6 Additional Topics
		12.6.1 Variations of the Basic Types
		12.6.2 Literals, Constants, and Symbolic Values
		12.6.3 Additional C Operators
	12.7 Summary
	Exercises
13 Control Structures
	13.1 Introduction
	13.2 Conditional Constructs
		13.2.1 The if Statement
		13.2.2 The if-else Statement
	13.3 Iteration Constructs
		13.3.1 The while Statement
		13.3.2 The for Statement
		13.3.3 The do-while Statement
	13.4 Problem Solving Using Control Structures
		13.4.1 Problem 1: Approximating the Value of ?
		13.4.2 Problem 2: Finding Prime Numbers Less Than 100
		13.4.3 Problem 3: Analyzing an E-mail Address
	13.5 Additional C Control Structures
		13.5.1 The switch Statement
		13.5.2 The break and continue Statements
		13.5.3 An Example: Simple Calculator
	13.6 Summary
	Exercises
14 Functions
	14.1 Introduction
	14.2 Functions in C
		14.2.1 A Function with a Parameter
		14.2.2 Example: Area of a Ring
	14.3 Implementing Functions in C
		14.3.1 Run-Time Stack
		14.3.2 Getting It All to Work
		14.3.3 Tying It All Together
	14.4 Problem Solving Using Functions
		14.4.1 Problem 1: Case Conversion
		14.4.2 Problem 2: Pythagorean Triples
	14.5 Summary
	Exercises
15 Testing and Debugging
	15.1 Introduction
	15.2 Types of Errors
		15.2.1 Syntactic Errors
		15.2.2 Semantic Errors
		15.2.3 Algorithmic Errors
		15.2.4 Specification Errors
	15.3 Testing
		15.3.1 Black-Box Testing
		15.3.2 White-Box Testing
	15.4 Debugging
		15.4.1 Ad Hoc Techniques
		15.4.2 Source-Level Debuggers
	15.5 Programming for Correctness
		15.5.1 Nailing Down the Specifications
		15.5.2 Modular Design
		15.5.3 Defensive Programming
	15.6 Summary
	Exercises
16 Pointers and Arrays
	16.1 Introduction
	16.2 Pointers
		16.2.1 Declaring Pointer Variables
		16.2.2 Pointer Operators
		16.2.3 Passing a Reference Using Pointers
		16.2.4 Null Pointers
		16.2.5 Demystifying the Syntax
		16.2.6 An Example Problem Involving Pointers
	16.3 Arrays
		16.3.1 Declaring and Using Arrays
		16.3.2 Examples Using Arrays
		16.3.3 Arrays as Parameters
		16.3.4 Strings in C
		16.3.5 The Relationship Between Arrays and Pointers in C
		16.3.6 Problem Solving: Insertion Sort
		16.3.7 Common Pitfalls with Arrays in C
		16.3.8 Variable-Length Arrays
		16.3.9 Multidimensional Arrays in C
	16.4 Summary
	Exercises
17 Recursion
	17.1 Introduction
	17.2 What Is Recursion?
	17.3 Recursion vs. Iteration
	17.4 Towers of Hanoi
	17.5 Fibonacci Numbers
	17.6 Binary Search
	17.7 Escaping a Maze
	17.8 Summary
	Exercises
18 I/O in C
	18.1 Introduction
	18.2 The C Standard Library
	18.3 I/O, One Character at a Time
		18.3.1 I/O Streams
		18.3.2 putchar
		18.3.3 getchar
		18.3.4 Buffered I/O
	18.4 Formatted I/O
		18.4.1 printf
		18.4.2 scanf
		18.4.3 Variable Argument Lists
	18.5 I/O from Files
	18.6 Summary
	Exercises
19 Dynamic Data Structures in C
	19.1 Introduction
	19.2 Structures
		19.2.1 typedef
		19.2.2 Implementing Structures in C
	19.3 Arrays of Structures
	19.4 Dynamic Memory Allocation
		19.4.1 Dynamically Sized Arrays
	19.5 Linked Lists
		19.5.1 Support Functions
		19.5.2 Adding a Node to a Linked List
		19.5.3 Deleting Node from a Linked List
		19.5.4 Arrays vs. Linked Lists
	19.6 Summary
	Exercises
20 Introduction to C++
	20.1 Essential C++
	20.2 Going from C to C++
		20.2.1 Compiling C++ Code
		20.2.2 Namespaces
		20.2.3 Input and Output
		20.2.4 Pass by Reference
		20.2.5 Function Overloading
		20.2.6 Dynamic Allocation
		20.2.7 Compilation to Machine Version
	20.3 Classes
		20.3.1 Methods
		20.3.2 Access Specifiers
		20.3.3 Constructors
		20.3.4 Advanced Topics
	20.4 Containers and Templates
		20.4.1 Vectors
		20.4.2 Templates
	20.5 Summary
	Exercises
A The LC-3 ISA
	A.1 Overview
	A.2 The Instruction Set
	A.3 Interrupt and Exception Processing
		A.3.1 Interrupts
		A.3.2 Exceptions
B From LC-3 to x86
	B.1 LC-3 Features and Corresponding x86 Features
		B.1.1 Instruction Set
		B.1.2 Memory
		B.1.3 Internal State
	B.2 The Format and Specification of x86 Instructions
		B.2.1 Prefix
		B.2.2 Opcode
		B.2.3 ModR/M Byte
		B.2.4 SIB Byte
		B.2.5 Displacement
		B.2.6 Immediate
	B.3 An Example
C The Microarchitecture of the LC-3
	C.1 Overview
	C.2 The State Machine
	C.3 The Data Path
	C.4 The Control Structure
	C.5 The TRAP Instruction
	C.6 Memory-Mapped I/O
	C.7 Interrupt and Exception Control
		C.7.1 Initiating an Interrupt
		C.7.2 Returning from an Interrupt or Trap Service Routine, RTI
		C.7.3 Initiating an Exception
	C.8 Control Store
D The C Programming Language
	D.1 Overview
	D.2 C Conventions
		D.2.1 Source Files
		D.2.2 Header Files
		D.2.3 Comments
		D.2.4 Literals
		D.2.5 Formatting
		D.2.6 Keywords
	D.3 Types
		D.3.1 Basic Data Types
		D.3.2 Type Qualifiers
		D.3.3 Storage Class
		D.3.4 Derived Types
		D.3.5 typedef
	D.4 Declarations
		D.4.1 Variable Declarations
		D.4.2 Function Declarations
	D.5 Operators
		D.5.1 Assignment Operators
		D.5.2 Arithmetic Operators
		D.5.3 Bit-Wise Operators
		D.5.4 Logical Operators
		D.5.5 Relational Operators
		D.5.6 Increment/Decrement Operators
		D.5.7 Conditional Expression Operators
		D.5.8 Pointer, Array, and Structure Operators
		D.5.9 sizeof
		D.5.10 Order of Evaluation
		D.5.11 Type Conversions
	D.6 Expressions and Statements
		D.6.1 Expressions
		D.6.2 Statements
	D.7 Control
		D.7.1 If
		D.7.2 If-else
		D.7.3 Switch
		D.7.4 While
		D.7.5 For
		D.7.6 Do-while
		D.7.7 Break
		D.7.8 continue
		D.7.9 return
	D.8 The C Preprocessor
		D.8.1 Macro Substitution
		D.8.2 File Inclusion
	D.9 Some Standard Library Functions
		D.9.1 I/O Functions
		D.9.2 String Functions
		D.9.3 Math Functions
		D.9.4 Utility Functions
E Useful Tables
	E.1 Commonly Used Numerical Prefixes
	E.2 Standard ASCII codes
	E.3 Powers of 2
F Solutions to Selected Exercises




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