A simple but realistic assembly language for a course in computer organization
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

A Simple but Realistic Assembly Language for a Course in Computer Organization PowerPoint PPT Presentation


  • 150 Views
  • Uploaded on
  • Presentation posted in: General

A Simple but Realistic Assembly Language for a Course in Computer Organization. Eric Larson Moon Ok Kim Seattle University October 25, 2008. Problem. A few years ago we had two computer hardware courses: Assembly Language Programming Computer Organization

Download Presentation

A Simple but Realistic Assembly Language for a Course in Computer Organization

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


A simple but realistic assembly language for a course in computer organization

A Simple but Realistic Assembly Language for a Course in Computer Organization

Eric Larson

Moon Ok Kim

Seattle University

October 25, 2008


Problem

Problem

  • A few years ago we had two computer hardware courses:

    • Assembly Language Programming

    • Computer Organization

  • Now we only have one course that combines the two courses.

  • Result: Too much material to cover in one course.


Solution

Solution

  • Use a simple, yet realistic, assembly language (ANNA) throughout the course.

  • Focus on key concepts of assembly language programming.

  • Does not burden students with the complexities of large instruction sets.

  • ANNA can be used in illustrating the datapath and pipelining units.


Outline

Outline

  • Background about the course

  • ANNA assembly language and tools

  • How ANNA was used in the course

  • Feedback and Observations


Computer organization course

Computer Organization Course

  • 5 credit (quarter) sophomore level class

    • requirement for CS majors

  • Main topics:

    • Data representation

    • Digital logic

    • Assembly language programming

    • Datapath and control

    • Memory hierarchy

  • Material from other classes:

    • OS: virtual memory, some I/O

    • Discrete math: Boolean algebra

  • Taught using ANNA three times


Assembly language concepts

Assembly Language Concepts

Key concepts in assembly language in our course:

  • Registers and memory

  • Conditional branches and jumps

  • Translating high-level languages constructs into assembly:

    • if-else statements

    • loops

    • procedure calls

    • arrays and pointers

  • Most importantly – experience actually writing assembly programs


Anna assembly language v1

ANNA Assembly Language v1

  • Memory is word addressable, words are 16 bits.

  • Memory is shared by instructions or data.

  • Data in memory / registers is either an integer or an address.

    • Can actually store anything – no instruction support for other data types.

  • Load / store architecture

  • 16 general purpose registers, register r0 is 0.

    • Wise to introduce a calling convention that reserves a register for the stack pointer.

  • 16 instructions (next slide).


Anna instruction set v1

ANNA Instruction Set v1


Anna instruction set v2

ANNA Instruction Set v2

  • Added a new add immediate “addi” instruction.

    • Stack pointer updates

    • Loop control variables

  • Removed halt: made it a special case of the output instruction (out r0).

    • Input / output / halt already greatly simplified

  • Reduced the number of registers from 16 to 8.

    • Restricts register usage (function calls in particular).

    • Increases immediate sizes in the machine code format.


Tools

Tools

  • Assembler: translates assembly language files (.ac) into machine language files (.mc).

  • Simulator: loads and runs machine language files.

    • Debugging support: breakpoints, stepping, etc.

  • First two quarters: used command-line tools on Linux.

    • Worked fine – students already know Linux and familiar with command line tools.

  • Last quarter: students could use Windows GUI-based tools or the Linux command line tools.

    • Most, but not all, chose to use the Windows tools.


Assembler

Assembler


Simulator

Simulator


Computer organization outline

Computer Organization: Outline

I did not require the students to purchase a textbook.


Computer organization outline1

Computer Organization: Outline

I did not require the students to purchase a textbook.


Course information lectures

Course Information: Lectures

  • Assembly Language

    • Introduction to assembly

    • Converting C/C++ into assembly

    • Comparing ANNA to IA-32 instruction set

    • Overview of the compilation / linking process

  • Datapath / control

    • Single cycle datapath (omits I/O instructions)

    • Control ROM implementation

    • Pipelining

    • We no longer cover multiple cycle datapath


Course information assignments

Course Information: Assignments

  • Assembly Language Programming

    • Find the highest number entered by a user.

    • Compute the log2 of a number.

    • Find the mode of a set of numbers entered by the user.

    • Implement linked list functions.

  • Control & Datapath

    • Add instruction X to the datapath and control ROM.

    • Create a control ROM for a different datapath / instruction set.

    • Trace the execution of a program in a pipelined implementation.


Students feedback

Students Feedback

  • Most students felt…

    • they learned a lot when completing the ANNA programming assignments.

    • the ANNA tools were easy to use.

    • there was adequate documentation.

  • There were several suggestions for improving the Windows tools:

    • line numbers in the assembler

    • knowing what addresses labels map to in the simulator


Course outcomes

Course Outcomes

  • Students were asked to judge how well a particular topic was covered.

  • Scale: 1(not covered) to 5 (very well covered)

  • Most topics received a 4.

  • No topic received a 2 or lower.


My observations

My Observations

  • Using the ANNA assembly language helped students learn the important concepts.

  • No differences between the classes that use the Windows tools and Linux tools except for implementing function calls.

    • Could be due to improvements in lecture

  • ANNA, a simple toy assembly language, did not dampen student motivation.

  • The datapath and design went fairly well.

    • Some “hand-waving” at times (pun intended)

  • Some students would benefit from having a textbook.

    • Most textbooks are tied to particular language.


Questions

Questions?

More info? Contact me:

Eric Larson

[email protected]


  • Login