a simple but realistic assembly language for a course in computer organization
Download
Skip this Video
Download Presentation
A Simple but Realistic Assembly Language for a Course in Computer Organization

Loading in 2 Seconds...

play fullscreen
1 / 20

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


  • 193 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'A Simple but Realistic Assembly Language for a Course in Computer Organization' - brigid


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 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.
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]

ad