Updating search results...

Search Resources

1 Result

View
Selected filters:
  • assembler
A gentle introduction to the Central Processing Unit and Assembly language. Based on (and in support of) the complementary Educational CPU Visual Simulator (CPUVSIM).
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

This e-book aims to illustrate the basics of how a computer works, focusing on how a program written in a high-level language ends up being physically executed on a Central Processing Unit (CPU). The e-book is intended to be used in the context of an introductory computer science course at high school or undergraduate level.

The e-book starts with a concise explanation of the fundamental architecture shared by a wide variety of modern "computers", such as desktop computers, mobile phones, or car control units. This is followed by an explanation of the essential elements of the structure of any CPU, and the machine (assembly) language that it can execute.

This e-book is built around the Educational CPU Visual Simulator (CPUVSIM), another OER available through OER Commons. The e-book is a dynamic document because the simulator is seamlessly integrated with the proposed exercises and explanations: by clicking on the images or the 'Show solution' buttons, the CPUVSIM comes to life, loading the content of the figure or the solution for the specific exercise into memory. This allows users to experiment directly with the programming exercises presented in the book.

The associated CPUVSIM allows users to visualize with detailed animations the execution of assembly language code. Its main goal is to support novices in understanding the behavior of the key components of a CPU, focusing on how code written in high-level languages is actually executed on the hardware of a computer.
It supports a simplified but representative assembly language of 16 (Data Transfer, Control Flow, Arithmetic-Logic) instructions, with immediate and direct addressing modalities. Instructions and numeric data can be inserted and edited directly in RAM. It is possible to define “labels” to be used as parameters in jump instructions, or as variable identifiers. The speed and level of details of the animations can be controlled by the users. At any time, it is possible to switch between symbolic and binary representations.

Subject:
Applied Science
Computer Science
Material Type:
Activity/Lab
Module
Author:
Gabriel Puiu (latest version)
Others (see Authors in the resource)
Renato Cortinovis (Project coordinator)
Date Added:
12/09/2023