YSC4230: Programming Language Design and Implementation
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. OCaml Style Guide
  • 1. HW1: Hellocaml
  • 2. HW2: X86lite
    • 2.1. X86lite Specification
    • 2.2. Project Task
  • 3. HW3: LLVMlite compilation
  • 4. HW4: Compiling Oat v.1
  • 5. HW5: Compiling Full Oat
  • 6. HW6: Data Flow Analysis and Optimizations
  • 7. Reading Project
YSC4230: Programming Language Design and Implementation
  • »
  • 2. HW2: X86lite

2. HW2: X86lite

To complete this project’s task you will have to start by reading the x86lite specification, which defines the meaning of its state components and operations. Make sure to understand each of its components and reach out for help if you’re feeling confused.

  • 2.1. X86lite Specification
    • 2.1.1. Overview
    • 2.1.2. X86lite Machine State
      • 2.1.2.1. Register file
      • 2.1.2.2. Condition flags
      • 2.1.2.3. Memory, addresses, and the stack
    • 2.1.3. X86lite Operands and Condition Codes
      • 2.1.3.1. Operands
      • 2.1.3.2. Condition codes
    • 2.1.4. X86lite Instructions
      • 2.1.4.1. Arithmetic Instructions
      • 2.1.4.2. Logic Instructions
      • 2.1.4.3. Bit-manipulation Instructions
      • 2.1.4.4. Data-movement Instructions
      • 2.1.4.5. Control-flow and condition Instructions
  • 2.2. Project Task
    • 2.2.1. Overview
    • 2.2.2. Part I: The Simulator
    • 2.2.3. Part II: X86lite Assembler
    • 2.2.4. Part III: X86lite Assembly Programming
    • 2.2.5. Grading
Previous Next

© Copyright 2021, Steve Zdancewic, Ilya Sergey.

Built with Sphinx using a theme provided by Read the Docs.