whatisgithub

What is assembly-and-c?

jwasham/assembly-and-c — explained in plain English

Analysis updated 2026-05-18

188AssemblyAudience · developerComplexity · 4/5Setup · hard

In one sentence

A personal code study log following the book 'Low-Level Programming' by Igor Zhirkov, containing Assembly and C exercises worked through by the creator of Coding Interview University.

Mindmap

mindmap
  root((assembly-and-c))
    What it is
      Study log
      Book exercises
    Source book
      Low-Level Programming
      Igor Zhirkov 2017
    Languages
      Assembly
      C
    Use
      Reference code
      Solution comparison
    Audience
      Developers
      CS students
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Follow along with the book 'Low-Level Programming' by Igor Zhirkov using a real reference implementation

USE CASE 2

Compare your own Assembly and C exercise solutions against a known working version

What is it built with?

AssemblyCNASMGCC

How does it compare?

jwasham/assembly-and-cpret/pokeredjmechner/prince-of-persia-apple-ii
Stars1884,6956,771
LanguageAssemblyAssemblyAssembly
Setup difficultyhardhardhard
Complexity4/55/55/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires NASM or GAS assembler and GCC on Linux, no build system or install instructions provided.

No license information found in the repository.

So what is it?

This repository contains code written by the same developer who created the widely-known Coding Interview University project. It is a personal study companion to the book "Low-Level Programming" by Igor Zhirkov, published by Apress in 2017. The author worked through the book's exercises and examples, saving the code here as a record of their learning journey. "Low-Level Programming" is a book that teaches readers how computers work at a fundamental level, covering both Assembly language and the C programming language. Assembly is the lowest-level language humans commonly write, sitting just one step above the raw binary instructions a processor executes. Learning it gives you a direct understanding of how a CPU reads and carries out instructions, manages memory addresses, and handles data. C is slightly higher-level but still gives programmers direct control over memory, making it the foundation behind most operating systems and embedded systems. The repository itself serves as a study log rather than a finished library or application. If you are working through the same book, you might find these files useful for comparison or reference. If you simply want to understand what low-level programming looks like, browsing through the code shows real Assembly programs: sequences of short instructions that move data between registers, perform arithmetic, and jump between labeled sections of code. Because the material is tied to a specific book, the repository is most useful alongside that text. Without the book, the code exercises may appear cryptic. There are no build system files or installation instructions, so running the examples requires a compatible assembler and compiler setup, typically on a Linux system using tools like NASM or GAS for the Assembly portions and GCC for the C portions. This is a learning artifact rather than a deployable tool. It is best seen as evidence of how one experienced developer chose to approach low-level computing, and as a reference point for others taking the same journey through the same book.

Copy-paste prompts

Prompt 1
Show me how to write a basic Assembly 'Hello World' program using NASM syntax on Linux
Prompt 2
Explain what a CPU register is and how Assembly instructions use them to move and transform data
Prompt 3
What is the difference between Assembly and C in terms of how each handles memory management?
Prompt 4
How do I set up NASM and GCC on Linux to compile and run Assembly programs from the command line?

Frequently asked questions

What is assembly-and-c?

A personal code study log following the book 'Low-Level Programming' by Igor Zhirkov, containing Assembly and C exercises worked through by the creator of Coding Interview University.

What language is assembly-and-c written in?

Mainly Assembly. The stack also includes Assembly, C, NASM.

What license does assembly-and-c use?

No license information found in the repository.

How hard is assembly-and-c to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is assembly-and-c for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.