X86 Assembly
Quote from Wikipedia article:
x86 assembly language is a family of backward-compatible assembly languages, which provide some level of compatibility all the way back to the Intel 8008 introduced in April 1972. x86 assembly languages are used to produce object code for the x86 class of processors. Like all assembly languages, it uses short mnemonics to represent the fundamental instructions that the CPU in a computer can understand and follow. Compilers sometimes produce assembly code as an intermediate step when translating a high level program into machine code. Regarded as a programming language, assembly coding is machine-specific and low level. Assembly languages are more typically used for detailed and time critical applications such as small real-time embedded systems or operating system kernels and device drivers.
See also
Wikipedia Article: https://en.wikipedia.org/wiki/X86_assembly_language
Intel manuals: https://software.intel.com/en-us/articles/intel-sdm
Brief introduction: http://cs.lmu.edu/~ray/notes/x86assembly/
GNU assembler: https://sourceware.org/binutils/docs/as/
SSE: https://en.wikibooks.org/wiki/X86_Assembly/SSE
64 bit Linux assembly: http://rayseyfarth.com/asm/
Linux system calls: http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
YASM manual: http://www.tortall.net/projects/yasm/manual/html/index.html
NASM manual: http://www.nasm.us/xdoc/2.12.02/html/nasmdoc0.html
8086 assembly: http://www.stevemorse.org/8086/
32 bit: http://pacman128.github.io/pcasm/
64 bit: https://www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf
Linux procedure calls: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r252.pdf
Tasks
- 15 Puzzle Game
- A+B
- Address of a variable
- Arithmetic/Integer
- Arrays
- Babbage problem
- Balanced brackets
- Binary digits
- Bitwise operations
- Caesar cipher
- Conditional structures
- Create a file
- Delete a file
- Dot product
- Dragon curve
- Echo server
- Empty program
- Ethiopian multiplication
- Execute Brainfuck
- Execute HQ9+
- Factorial
- Fibonacci sequence
- Find limit of recursion
- FizzBuzz
- Fork
- Function definition
- Guess the number
- Handle a signal
- Haversine formula
- Hello world!
- Hello world/Graphical
- Hello world/Standard error
- Hello world/Text
- Hofstadter-Conway $10,000 sequence
- Horizontal sundial calculations
- Include a file
- Input loop
- Leap year
- Least common multiple
- Linear congruential generator
- Loops/For
- Loops/Infinite
- Loops/While
- MD5/Implementation
- Main step of GOST 28147-89
- Memory allocation
- Mutual recursion
- Palindrome detection
- Program name
- Quine
- Random number generator (device)
- Rot-13
- Sierpinski carpet
- Sierpinski triangle
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Sleep
- Sockets
- Sorting algorithms/Bubble sort
- Stack
- String length
- Terminal control/Ringing the terminal bell
- Window creation