Everything in linux is a file, as we know. Some files are abstractions over hardware that the drivers handle. Obviously on linux the standard files are stdin, stdout, stderr.

I/O Redirection At the end of the day, everythign is a file. stdout goes to the display by default, usually a terminal window, but there is no reason it has to be that way.

mov instruction is how you copy stuff around mov rax, 1 moves decimal value 1 into rax register

There are three different flavors of data that may be used as operands. These are memory data, register data, and immediate data.

examples:

mov rax, 42h moves immediate 0x42 into rax mov rbx, rdi copies rdi into rbx mov [rbp], rdi copies rdi into the memory location specified in rbp

In assembly, variable names represent addresses not data. So var names are actually pointers, not the data itself.