Introducción a la Organización del Ordenador Usando Ensamblador con un Raspberry Pi
[Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi] (http://bob.cs.sonoma.edu/IntroCompOrg-RPi/frontmatter-1.html) es un libro electrónico y gratuito que nos enseña cómo funciona el hardware, a bajo nivel, de un ordenador desde el punto de vista del programador.
Para ello, se basa en uno de nuestros “juguetes” favoritos: Raspberry Pi, con Raspbian y usando lenguaje ensamblador para la arquitectura de la CPU de dicho dispositivo: ARM.
El objetivo del libro es que el lector llegue a entender como funciona un ordenador desde el nivel más bajo. Aunque uno prácticamente no escriba aplicaciones directamente en ensamblador, sin duda alguna te hará mucho mejor a la hora de programar, analizar malware, realizar ingeniería inversa, etc.
El libro empieza desde los conceptos más básicos como la preparación de tu Raspberry Pi o el sistema binario, hasta el uso de interrupciones y el GPIO.
El índice del mismo es el siguiente:
- Introduction
- Efficient Use of This Book
- Computer Subsystems
- How the Subsystems Interact
- Setting Up Your Raspberry Pi
- Data Storage Formats
- Bits and Groups of Bits
- Exercises
- Mathematical Equivalence of Binary and Decimal
- Exercises
- Unsigned Decimal to Binary Conversion
- Exercises
- Memory
- Exercises
- Using C Programs to Explore Data Formats
- Programming Exercises
- Examining Memory With a Debugger
- Programming Exercise
- Storing Characters
- Programming Exercise
- Low-level Character Handling
- Programming Exercises
- Accessing the GPIO in C
- Computer Arithmetic
- Addition and Subtraction
- Exercises
- Arithmetic Errors—Unsigned Integers
- Signed Integers
- Exercises
- Arithmetic Errors—Signed Integers
- Exercises
- Basic Data Types
- C/C++ Basic Data Types
- Hexadecimal to Integer Conversion
- Programming Exercise
- Bitwise Logical Operations
- Programming Exercise
- Other Codes.
- Boolean Algebra
- Boolean Algebra Operations
- Exercises
- Canonical (Standard) Forms
- Exercise
- Boolean Function Minimization
- Exercises
- Logic Gates
- Crash Course in Electronics
- CMOS Transistors
- NAND and NOR Gates
- Exercise
- Logic Circuits
- Combinational Logic Circuits
- Programmable Logic Devices
- Sequential Logic Circuits
- Designing Sequential Circuits
- Memory Organization
- Central Processing Unit
- Overview
- CPU Registers
- CPU Interaction with Memory
- Program Execution in the CPU
- Using gdb to View the CPU Registers
- Programming Exercises
- Programming in Assembly Language
- Program Organization
- First Assembly Language Instructions
- Creating a Program in Assembly Language
- Programming Exercises
- Assemblers and Linkers
- Structure of the main Function
- Passing Arguments in Registers
- The Stack
- Stack Management In a Function
- Programming Exercise
- Local Variables on the Stack
- Programming Exercise
- Data Storage in Memory
- Instruction Details
- Addressing Modes
- The Assignment Operator
- Machine Code, Assignment
- Branching
- Machine Code, Branching
- Assembler Listings
- Program Flow Constructs
- Repetition
- Programming Exercises
- Binary Decisions
- Programming Exercise
- Writing Your Own Functions
- Overview of Passing Arguments
- Accessing Arguments in a Function
- Programming Exercises
- Bit Operations; Multiplication and Division
- Logical Instructions
- Programming Exercise
- Shifting Bits
- Programming Exercises
- Multiplication
- Division
- Programming Exercises
- Data Structures
- Arrays
- Programming Exercise
- Records (structs)
- structs as Function Arguments
- Programming Exercise
- structs as C++ Objects
- Programming Exercise
- Fractional Numbers
- Fractional Values in Binary
- Programming Exercise
- Fixed Point Fractional Values
- Floating Point Format
- IEEE 754
- Exercises
- Floating-Point Hardware
- Interrupts and Exceptions
- CPU Features
- Supervisor Call
- Interrupts
- Error Condition
- Input/Output
- Memory Timing
- I/O Device Timing
- Bus Timing
- I/O Interfacing
- I/O Ports
- Programming Exercise
- General Purpose Input/Output (GPIO) Device
- GPIO I/O Memory
- GPIO Connections
- Programming Exercise
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec