Description
DisAsm opens a binary and shows you what the code actually does. Every line is annotated, not merely decoded. Alongside the disassembly you get a plain-English account of each instruction's effect, the registers it reads and writes, and what it costs to execute. Select a line and the instructions feeding it are marked, with the dependency depth measured from your selection. WHAT IT SHOWS YOU • Per-instruction effects in concrete terms — which register receives what, which bits move, which memory is touched • Latency, throughput and execution-port pressure from measured tables: Apple M1 Firestorm and Icestorm, Intel Skylake, Ice Lake and Avoton, AMD Zen 4 • Dependency depth and issue cycle relative to any line you select, with a configurable decode width • The register carrying each dependency emboldened on both sides of the edge — the producer's destination, the consumer's source • Branch targets resolved to symbol names; double-click to follow, then swipe or ⌘← to go back the way you came • Every branch that jumps to a given line, so a function's callers and a loop's back edges are one click away • Loops shaded by nesting depth, and a census of each function — loads, stores, integer, floating point, SIMD, control flow — when you select its header • Resolved jump tables on both architectures, and data references shown with their effective address, the string or pointer at it, and what a loader fixup will put there • Data sections rendered beside the code: strings, pointers and hex WHAT IT READS • Mach-O and ELF executables, libraries and object files • ARM64 (AArch64), x86-64 and 32-bit x86 • Fat binaries — pick the slice yourself, or let DisAsm decide • Swift, Rust (v0 and legacy) and C++ (Itanium) symbols demangled in place, through the system runtimes rather than a bundled copy • A dSYM beside the binary, for the names a stripped executable lost, and Objective-C selectors and classes by name FINDING YOUR WAY • A functions list you can filter, exclude from, and sort by address, size or name — comfortable on binaries with hundreds of thousands of functions • Find across the whole program: instruction text, symbol names, addresses, and immediates written in either hex or decimal • Scroll position, selection and filters remembered per file BUILT FOR LARGE BINARIES A 350 MB library with 30 million instructions opens in a second. PRIVATE BY DESIGN DisAsm is sandboxed, works entirely offline and collects nothing. Nothing about the binaries you open ever leaves your Mac.
What’s New
Version 1.10 · 9/25/2026Faster loading. Large binaries open noticeably quicker: the listing appears while the file is still being read, and the analysis passes now use every core. ARM64 disassembly rebuilt from ARM's latest specification (2026-06). Every A64 encoding was checked against llvm-objdump. SVE, SVE2 and SME operands read as the architecture writes them: ZA tiles and slices, multi-vector groups, predicate-as-counter registers, vector-length offsets, and system registers as one operand. Preferred aliases such as mov, mvn, cset and cinc are chosen by ARM's own rules. x86. VEX and EVEX operands are named as objdump names them, and 32-bit code decodes more forms. The register and memory effects account for implicit operands and high-byte registers. Symbols. Better demangling of Rust names (both schemes), Swift and C++. Robustness. Malformed or hostile Mach-O and ELF files are handled more safely. The x86_64h slice is recognised as its own architecture. A failed dSYM merge no longer affects the load. Listing. The selection stays on its row when the listing is rebuilt.
Information
- Seller
- Lincopia Logic AB
- Category
- Developer Tools
- Version
- 1.10
- Requires
- iOS 14.0+
- Size
- 4.8 MB
- Age Rating
- 4+