Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

x86-64 Assembly

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
x86-64 assembly is the programming language for the 64-bit version of the x86 instruction set. It is based on the original 8086 instruction set from 1978. Assembly language is different from high-level languages like C# and Java. There are no variables, objects, or loops. Instead, you'll have to deal with registers, memory addresses, and jumps.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lasagna
    • Learn about the basics of x86-64 assembly by following a lasagna recipe.
  • Inventory Management
    • Learn about integers by managing transport of products for a local store.
  • Black Jack
    • Learn about comparisons by implementing some Black Jack judging rules.
  • Color Palette
    • Learn about declaring, accessing and modifying initialized data by mixing colors.
  • Bird Watcher
    • Save and update counts for birds in your garden using arrays.
  • Secrets
    • Learn about bit manipulation by writing the software for an encryption device.
  • Mixed Juices
    • Help your friend Li Mei run her juice bar with your knowledge of loops.
  • Poetry Club Door Policy
    • Learn about strings using poems to get into the poetry club.
  • Freelancer Rates
    • Learn about floating-point numbers by helping a freelancer communicate with a project manager about billing.
  • Lost and Found
    • Learn about the call stack by organizing items for a lost-and-found office.
  • Currency Exchange
    • Learn how to interface with C types by solving Chandler's currency exchange conundrums.
  • Need For Speed
    • Learn about how to interface with C structs in x86-64 assembly code by racing remote controlled cars.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Leap
    • Determine whether a given year is a leap year.
  • Reverse String
    • Reverse a given string.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Square Root
    • Given a natural radicand, return its square root.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Two-Fer
    • Create a sentence of the form "One for X, one for me.".
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • High Scores
    • Manage a player's High Score list.
  • Line Up
    • Help lining up customers at YaÊ»qÅ«b's Deli.
  • Pangram
    • Determine if a sentence is a pangram.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Binary Search
    • Implement a binary search algorithm.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Clock
    • Implement a clock that handles times without dates.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Micro Blog
    • Given an input string, truncate it to 5 characters.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Acronym
    • Convert a long phrase to its acronym.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Linked List
    • Implement a doubly linked list.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Robot Name
    • Manage robot factory settings.
  • Robot Simulator
    • Write a robot simulator.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Complex Numbers
    • Implement complex numbers.
  • Custom Set
    • Create a custom set type.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • List Ops
    • Implement basic list operations.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Rational Numbers
    • Implement rational numbers.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Split-Second Stopwatch
    • Keep track of time through a digital stopwatch.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Camicia
    • Simulate the card game and determine whether the match ends or enters an infinite loop.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Intergalactic Transmission
    • Add parity bits to a message for transmission
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Baffling Birthdays
    • Estimate the birthday paradox's probabilities.
  • Flower Field
    • Mark all the flowers in a garden.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • State of Tic-Tac-Toe
    • Determine the game state of a match of Tic-Tac-Toe.
  • Transpose
    • Take input text and output it transposed.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Book Store
    • To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiple-book purchases.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Dominoes
    • Make a chain of dominoes.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Meetup
    • Calculate the date of meetups.

Reviews

Start your review of x86-64 Assembly

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.