Skip to content

Instantly share code, notes, and snippets.

View timsu-98's full-sized avatar

Tim Su timsu-98

  • Munich
View GitHub Profile

A primer on x86 assembly with GNU assembler

When it comes to assembly language, it isn't as hard as many people think. Fundamentally, you write short, human-readable commands for the processor to execute (your assembly code) and then use a tool (the actual assembler) to translate your code into machine-readable binary instructions. Unlike high-level languages, assembly language is very simple and doesn't have that many features. The difficulty is to deal with memory and build more complex flows (e.g. loops or I/O) from the simple primitives that the assembly language gives you.

Registers and instructions

CPUs usually have small, very fast storage available for the data that is used in its instructions. This kind of storage is much smaller but also much faster than the RAM and is called registers. An x86 processor has a bunch of them to store generic data, manage the stack, keep track of the current instruction and other administrative inform

@lnksz
lnksz / tumcolors.md
Last active July 25, 2024 11:52
INOFFICIAL RGB and HEX color codes of TUM colors

INOFFICIAL Colors for Presentation (from 2017)

Name HEX RGB
Main colors
#0065bd TUMBlue #0065bd 0,101,189
#000000 Black #000000 0,0,0
#ffffff White #ffffff 255,255,255
Secondaries
#005293 DarkBlue #005293 0,82,147