Introduction To Computer Organisation - An Under-the-Hood Look at Hardware and x86-64 Assembly

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Introduction to Computer Organization gives programmers a practical understanding of what happens in a computer when you execute your code. You may never have to write x86-64 assembly language or design hardware yourself, but knowing how the hardware and software works will give you greater control and confidence over your coding decisions. We start with high level fundamental concepts like memory organization, binary logic, and data types and then explore how they are implemented at the assembly language level. The goal isn’t to make you an assembly programmer, but to help you comprehend what happens behind the scenes between running your program and seeing “Hello World” displayed on the screen. Classroom-tested for over a decade, this book will demystify topics like: How to translate a high-level language code into assembly language How the operating system manages hardware resources with exceptions and interrupts How data is encoded in memory How hardware switches handle decimal data How program code gets transformed into machine code the computer understands How pieces of hardware like the CPU, input/output, and memory interact to make the entire system work. -------------------------------------- Unlike other books about assembly language and computer organisation, Introduction to Computer Organization is written with the understanding that most programmers will never have to write x86-64 assembly language or design hardware. This book is written to give those programmers a practical and concrete understanding of what's happening in a computer in the hopes that that knowledge will help them become a better programmer in their chosen field. Readers learn how transistors are used to construct the binary switches that are used to implement the logic circuits that make up a computer; how these circuits are programmed to implement basic programming constructs; and how data items are organised and manipulated. By the end of the book readers should have a strong understanding of how binary is used to store data; how Boolean logic works, and how it's implemented in a computer; the basics of computer hardware; assembly language; program flow; and Input/Output. --------------------------------------------- Author Bio Bob Plantz was a professor at Sonoma State for 21 years, teaching a variety of core computing classes. He started his career designing electronics for the horizon scanners on the Gemini spacecraft and Apollo Lunar Module. After that, he got his PhD in electrical engineering at UC Berkeley, and went on to work as a software engineer for eight years before becoming an educator.

Author(s): Robert G. Plantz
Edition: 1
Publisher: No Starch Press
Year: 2022

Language: English
Pages: 400
Tags: c x86 x64 compiler c++ assembly architecture cpu electronics asm

Chapter 1: Setting the Stage
Chapter 2: Data Storage Formats
Chapter 3: Computer Arithmetic
Chapter 4: Boolean Algebra
Chapter 5: Logic Gates
Chapter 6: Combinational Logic Circuits
Chapter 7: Sequential Logic Circuits
Chapter 8: Memory
Chapter 9: Central Processing Unit
Chapter 10: Programming in Assembly Language
Chapter 11: Inside the main Function
Chapter 12: Instruction Details
Chapter 13: Control Flow Constructs
Chapter 14: Inside Subfunctions
Chapter 15: Special Uses of Subfunctions
Chapter 16: Computing with Bitwise Logic, Multiplication, and Division Instructions
Chapter 17: Data Structures
Chapter 18: Object-Oriented Programming
Chapter 19: Fractional Numbers
Chapter 20: Interrupts and Exceptions
Appendix A: Using GNU make to Build Programs Index