Learn · Foundations to Computer Systems Design
Lecture 33 of 77Week 5
Assembler: Pass 2
Prof. Kamakoti Veezhinathan · IIT Madras
Credits and licence
- From
- Foundations to Computer Systems Design, IIT Madras (at NPTEL)
- Licence
- CC BY-NC-SA, as NPTEL states it. Non-commercial use only.
- Attribution
- NPTEL states: "Distributed under Creative Commons Attribution-ShareAlike / CC BY - NC - SA", beside a BY-NC-SA badge.
- Who can watch
- Tweens profiles and older. How courses are placed
All the lectures
- Module 1.1: Introduction to the Course
- Module 1.2: CMOS Transistors and Gates
- Module 1.3: Basic Gates
- Module 1.4: Building Gates Using Simulator
- Module 1.5: Hierarchical Design and Verification
- Module 1.6: Building Blocks of a Digital Computer
- Module 2.1: Binary Number Systems
- Module 2.2: Signed Number Systems
- Module 2.3: Two's Complement Number System
- Module 2.4: Binary Adder Circuits
- Module 2.5: Building the ALU of HACK
- Module 2.6: HACK ALU Functionality
- Module P1: Tips for Project P01
- Module 3.1: Sequential Logic Design
- Module 3.2: Latches and Flipflops
- Module 3.3: The Memory Hierarchy
- Module 3.4: Design of Program Counter
- Module 3.5: Introduction to Computer Organization: The HACK Instruction Set Architecture (ISA)
- Module 3.6 Memory Mapped I/O
- Module P2: Tips for Projects P02 and P03
- Module P3: Tips for Project 04
- Module P4: Tips for Project 04
- Introduction to Computer Architecture
- The HACK Microarchitecture
- The HACK CPU - A Deep Dive: Part 1
- The HACK CPU - A Deep Dive: Part 2
- The Data Memory
- The HACK Computer
- The Assembler Construction
- Understanding the Working of Assembler
- Assembler: Symbol Table Construction
- Assembler: Pass 1
- Assembler: Pass 2
- Project 06 - Demonstration
- Virtual Machines - What and Why?
- The VM Instruction Set Architecture
- The execution of a VM Program
- How powerful is the VM?
- Project 07: VM ISA to HACK Mnemonic Translation
- Project 07: Demo
- Deep Understanding of VM ISA using VM Emulator
- Virtual Machine II - Program flow commands and Introduction to Function Calls
- Implementation of Function Call
- Working of the Virtual Machine
- Project 08: Translation of Program Flow and Function Call to HACK Mnemonic
- Handling Static Variables
- Project 08: Implementation tips in a Nut Shell
- Introduction to The JACK Programming Language
- Project 09: Basic Steps
- Understanding Syntax of JACK using Examples
- Project 09: More Examples
- The JACK Syntax - Language Specification
- Application Development using JACK
- JACK Compiler: Lexical Analysis - Tokenization
- Project 10: Compiler for JACK - Part-1 Demo
- The JACK Grammar
- Compiler for JACK: Parsing the JACK Program
- The Token Analyzer
- Testing the Correctness
- The Jack Compiler - Back-end Introduction
- The Jack Compiler - Handling Variables
- The Jack Compiler - Handling Expressions
- The Jack Compiler - Handling Flow of Control
- The Jack Compiler - Handling Objects
- The Jack Compiler - Handling Arrays
- The Jack Compiler Backend: An XML guided approach
- The Jack Compiler Backend: Populating the Class and Subroutine Symbol tables.
- The Jack Compiler Backend: Code Generation - 1
- The Jack Compiler Backend: Code Generation - 2
- The Jack Compiler Backend: Code Generation - 3
- The Jack Compiler Backend: Code Generation - 4
- Jack Compiler: Code Generation - 5
- Jack Compiler: Code Generation - 6
- Jack Compiler: Code Generation - 7
- Understand the Operating System - Compiler Interactions
- Project - 12: One sample journey from Jack to Hack
- Concluding Remarks