Share E-Book

The Art of ARM Assembly, Volume 1 64-Bit ARM Machine Organization and Programming (Randall Hyde) (z-library.sk, 1lib.sk, z-lib.sk) (1)

Author

Rating No ratings yet

Log in to rate

Programming
Language English

Lightweight version. Reduced size from 9.7 MB to 3.8 MB by converting figures from JPEG format to 16 color indexed PNG. —bookfixer Modern Instructions for 64-Bit ARM CPUs Building on Randall Hyde’s iconic series, The Art of ARM Assembly delves into programming 64-bit ARM CPUs—the powerhouses behind iPhones, Macs, Chromebooks, servers, and embedded systems. Following a fast-paced introduction to the art of programming in assembly and the GNU Assembler (Gas) specifically, you’ll explore memory organization, data representation, and the basic logical operations you can perform on simple data types. You’ll learn how to define constants, write functions, manage local variables, and pass parameters efficiently. You’ll explore both basic and advanced arithmetic operations, control structures, numeric conversions, lookup tables, and string manipulation—in short, you’ll cover it all. You’ll also dive into ARM SIMD (Neon) instructions, bit manipulation, and macro programming with the Gas assembler, as well as how to: Declare pointers and use composite data structures like strings, arrays, and unions Convert simple and complex arithmetic expressions into machine instruction sequences Use ARM addressing modes and expressions to access memory variables Create and use string library functions and build libraries of assembly code using makefiles This hands-on guide will help you master ARM assembly while revealing the intricacies of modern machine architecture. You’ll learn to write more efficient high-level code and gain a deeper understanding of software-hardware interactions—essential skills for any programmer working with ARM-based systems.

Format EPUB
Size 3.7 MB
5
Views

AI Guide

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

Full assistant
AI guide
【One-Line Pitch】 A hands-on, Gas-centered course in 64-bit ARM assembly that teaches you how real machines organize memory, data, and control flow—best for programmers who already know a high-level language and want to understand what the compiler actually emits. 【Book Arc】 - **Opening (~0%–10%)**: Sets up the case for learning ARM assembly (Apple Silicon, Raspberry Pi, mobile/embedded), introduces the GNU Assembler (Gas) and the ARM lineage from the 6502/RISC heritage, then lays the data-representation groundwork: binary/hex, signed vs. unsigned, extension and saturation, IEEE floating point, BCD, ASCII/Unicode, and the Operand2 forms behind immediate and shifted-register operands. - **Early (~10%–30%)**: Moves into machine organization—runtime memory sections (.text, .data, .bss, .pool), endianness, alignment, the full set of ARM addressing modes, push/pop and stack discipline—then builds the programmer's toolkit: constants, pointers, strings, arrays, structs, unions, procedures with activation records and ABI parameter passing, and floating-point/FPU arithmetic. - **Middle (~30%–50%)**: Covers low-level control structures (branches, if/else, switch, state machines, loops and loop optimization), advanced arithmetic on extended-precision and mixed-size operands, numeric conversion between strings and values, and table-lookup techniques—the "translate HLL constructs into instruction sequences" core of the book. - **Late (~50%–75%)**: Shifts to advanced material: Neon/SIMD vector programming (loads, shuffles, vertical/horizontal ops, shifts), bit manipulation with bitfield instructions, and the Gas compile-time language including C preprocessor macros and conditional assembly. - **Ending (~75%–100%)**: Applies everything to real projects—string libraries and Unicode handling, multi-file assembly with .include/extern directives, makefiles and archiver-built libraries, and stand-alone programs using the svc system-call interface across Linux and macOS; reference appendices cover ASCII, a glossary, Gas installation, Bash, and useful C functions. 【Book Arc note】The excerpts are dominated by the table of contents and front matter; percentages above are inferred from chapter ordering rather than confirmed position markers. 【Key Takeaways】 - **Assembly is taught as machine organization, not just syntax** (Opening): the stated rationale is that understanding the underlying machine helps you write and debug better high-level code—speed, space, and bit-twiddling are the practical payoffs. - **Gas is the assumed toolchain throughout** (Opening): examples, directives, and macro facilities are tied to the GNU Assembler, with installation guidance for macOS and Linux, so setup matters before chapter one. - **Data representation is treated as first-class** (Opening): sign/zero extension, saturation, IEEE formats, BCD, and character encodings are covered before serious programming, because ARM operands and conversions depend on them. - **Memory layout and addressing modes are the hinge of the book** (Early): sections, PIE/ASLR, endianness, alignment, and the seven-plus addressing modes (PC-relative, pre/post-indexed, scaled-indexed) are what let you actually reach variables. - **Procedures follow the ARM ABI explicitly** (Early): activation records, leaf procedures, standard entry/exit sequences, and parameter-passing conventions are spelled out rather than left implicit. - **HLL constructs are rebuilt from branches and flags** (Middle): if/else, short-circuit vs. complete Boolean evaluation, switch, state machines, and loop optimizations show how compilers think—and where you can beat them. - **Advanced topics go beyond scalar code** (Late): extended-precision arithmetic, numeric conversion, table lookups, Neon SIMD, bitfield instructions, and Gas macro programming extend the toolkit substantially. - **The book ends in engineering practice** (Ending): separate compilation, makefiles, static libraries, and stand-alone svc-based programs (including a "Hello, World!" and file I/O demo) turn exercises into buildable projects. 【Reading Tips】 - **Skim the front matter and appendices first** to confirm your Gas setup (macOS vs. Linux) and Bash familiarity; the main text assumes a working toolchain. - **Deep-read Chapters 2–4 (data representation, memory, addressing)**—everything later depends on Operand2, addressing modes, and stack discipline; this is where most readers stall. - **Treat Parts II–III as a translation exercise**: after each control-structure or arithmetic section, write the equivalent in C and compare with compiler output to internalize the mapping. - **Don't skip the macro/compile-time chapter if you plan real projects**; the string library and makefile chapters build directly on it. - **Use the appendices as reference, not narrative**—ASCII tables, glossary, and C function lists are lookup material. 【Coverage Limits】 This guide is synthesized from stratified excerpts that are largely the table of contents and front matter; specific code examples, exercise content, and chapter-level depth are not covered, so treat chapter-level claims as structural rather than verified detail.

Passage locations

Excerpt 1
UTHOR AND TECHNICAL REVIEWER ACKNOWLEDGMENTS INTRODUCTION 0.1    A Brief History of the ARM CPU 0.2    Why Learn ARM Assembly? 0.3    Why Learn 64-Bit ARM? 0...
View in text
Excerpt 2
ft Operations 8.2    Operating on Different-Size Operands 8.3    Moving On 8.4    For More Information 9 NUMERIC CONVERSION 9.1    Converting Numeric Strings...
View in text
Excerpt 3
ME 1. Copyright © 2025 by Randall Hyde. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or...
View in text
Excerpt 4
system (with over 61 million units sold as of this writing). In addition to the Pi, millions of ARM-based Arduino-compatible and other single-board computers...
View in text

Recommended for You

Loading recommended books...
Failed to load, please try again later

Tip the Site

Scan the WeChat Pay or Alipay code to tip. No login required.

WeChat Pay
Alipay
← Back to List