Workspace

Assembly

machine level thinking registers calling conventions and reverse engineering

Definition first

What Assembly means

Assembly is a programming language for writing exact instructions, often used for machine level thinking registers calling conventions and reverse engineering. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.asmRun nasm -f macho64 main.asm && ld main.oHabit Track registers one instruction at a time
Program

An ordered set of instructions. It reads input, follows rules, and produces output.

Value and variable

A value is data. A variable is the name you use to hold and reuse that data.

Function

A named piece of work. It takes input, does one job, and can return a result.

Runtime

Assembler and linker is the place that actually runs code from main.asm.

First readable code

Program output

entry point output syntax mov
mov rax, 42
Output 42

Language lineage

Assembly family tree

See where Assembly comes from, which languages feel close, and what to learn next.

roots
machine codeCPU instruction sets
currentAssemblyMachine level family
familyMachine level family
best used for

CPU instructions, low level debugging, and understanding what code becomes

Zero base path

1Read one rule2Predict output3Type from memory4Run checklist5Repeat with one change

Question bank

Search before practice

Pick a stage or search across the open programming bank. Jump straight to the matching drill.

18 matching questions
Q 1ChoiceStage 1 definitions

Assembly practice 1

Assembly question 1. Choose the statement that matches printing a value.

Q 2ChoiceStage 1 definitions

Assembly practice 2

Assembly question 2. Choose the statement that matches naming a value.

Q 3ChoiceStage 1 definitions

Assembly practice 3

Assembly question 3. Choose the statement that matches reusable function.

Q 4ChoiceStage 1 definitions

Assembly practice 4

Assembly question 4. Choose the statement that matches basic collection.

Q 5ChoiceStage 1 definitions

Assembly practice 5

Assembly question 5. Choose the statement that matches printing a value.

Q 6ChoiceStage 1 definitions

Assembly practice 6

Assembly question 6. Choose the statement that matches naming a value.

Q 7ChoiceStage 1 definitions

Assembly practice 7

Assembly question 7. Choose the statement that matches reusable function.

Q 8ChoiceStage 1 definitions

Assembly practice 8

Assembly question 8. Choose the statement that matches basic collection.

Q 9ChoiceStage 1 definitions

Assembly practice 9

Assembly question 9. Choose the statement that matches printing a value.

Q 10ChoiceStage 1 definitions

Assembly practice 10

Assembly question 10. Choose the statement that matches naming a value.

Q 11ChoiceStage 1 definitions

Assembly practice 11

Assembly question 11. Choose the statement that matches reusable function.

Q 12ChoiceStage 1 definitions

Assembly practice 12

Assembly question 12. Choose the statement that matches basic collection.

Q 13ChoiceStage 1 definitions

Assembly practice 13

Assembly question 13. Choose the statement that matches printing a value.

Q 14ChoiceStage 1 definitions

Assembly practice 14

Assembly question 14. Choose the statement that matches naming a value.

Q 15ChoiceStage 1 definitions

Assembly practice 15

Assembly question 15. Choose the statement that matches reusable function.

Q 16ChoiceStage 1 definitions

Assembly practice 16

Assembly question 16. Choose the statement that matches basic collection.

Q 17ChoiceStage 1 definitions

Assembly practice 17

Assembly question 17. Choose the statement that matches printing a value.

Q 18ChoiceStage 1 definitions

Assembly practice 18

Assembly question 18. Choose the statement that matches naming a value.

Multiple choice

Assembly practice 1

Q 1Choicenew

Assembly question 1. Choose the statement that matches printing a value.

mov rax, 42

Reference

Patterns for main.asm

Assembler and linkernasm -f macho64 main.asm && ld main.o
Recall from memoryRead a small point then write it back without looking
Trace the codeWrite variable values line by line before you run the answer
Type it yourselfCopy less type more and fix one small error at a time

entry point output syntax mov

Program output

mov rax, 42
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types dq

Values and names

total dq 42
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection Memory table

Functions and collections

add:
  mov rax, rdi
  add rax, rsi
  ret

scores dq 40, 2
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks