/ICS_2019_Labs

Introduction to Computer System

Primary LanguagePython

ICS_2019_Labs

Introduction to Computer Systems

USTC 2019 Fall

Here is the introduction:

This is the first course in computing for students of computer science and engineering. The objective is to provide a strong foundation that a serious student can build on in later courses across the spectrum of computer science and engineering.
The idea is that a more complete understanding of the fundamentals will help a student acquire a deeper understanding of more advanced topics, whether that topic is in computer architecture, operating systems, data base, networks, algorithm design, software engineering, or whatever.
The approach is "motivated" bottom-up.
That is, after providing some overview of why a new concept is important, we attempt to tie that new concept to what the student already understands.
Starting with the transistor as a switch, we build logic gates, then more complex logic structures, then gated latches, culminating in an implementation of memory.
From there, we study the computer’s instruction cycle, and then a particular computer, the LC-3 (for Little Computer 3).
The first programming assignment is in the machine language of the LC-3.
From there, we move up to Assembly Language, and learn how an assembler works.
The remaining programming assignments are in LC-3 Assembly Language. An LC-3 Simulator allows the student to debug his/her own programs.
Input (via the keyboard) and output (via the monitor) both use the physical device registers.
System service routines, written in LC-3 Assembly Language, are used to perform I/O functions.
They are invoked by user programs by the TRAP instruction and corresponding trap vector.
Subroutine calls and returns complete the LC-3 instruction set.