Default caption

The Usborne introduction to machine code for beginners was released in 1983. It is a manual for programmers on how to optimize their BASIC programs with machine code subroutines. Programmers were invited to write raw machine code in hexadecimal to optimise the performance of their code (sounds brutal to debug).

A passage from the book I would like to share is this double page illustration. I found it beautiful.

Default caption

This illustration made me realise how, on these machines, programs had to share the same address space as the whole system.

This was useful to make me understand the importance of virtual memory on modern systems. This useful abstraction, illustrated bellow gives every process the illusion that it has all the main memory to itself.

Default caption

illustration from: Computer Systems: A Programmer’s Perspective 3rd edition p.18

Despite its age, I have found this small book to be a very good introduction to computer systems. At the end of it, I was impressed by the amount of concepts covered in only 40 pages:

  • What is machine code
  • Hexadecimal notation
  • Addressing and byte ordering
  • Two’s-Complement encoding
  • The Fetch-Decode-Execute cycle

The book is freely available online. Give it a read if you haven’t.