Computer Organisation  2006

Assembly level programming

Prabhas Chongstitvatana

email me
                 office:  Engineering building 4, floor 18, room 13,  phone 02-218-6982
Aim
Behavioural goals
Lecture note
Assessment
Reading
Tools
etc

What's new

  7 July      S2 ISA  Assembly language   History     Example from the class
...

Aim

1. Discuss the basic components in a computer system
2. Teach one assembly language

Announcement

...

Assessment

Assembly language programming  is 10% of the whole score

  Lecture Note

Introduction to computer organization

2  Abstraction level of assembly language (from an assembly language programmer or compiler point of view)

1.1  S2 ISA :  addressing mode, instruction format
      programmer's view
      machine code (dec notation, hex notation)
      Register vs Memory
      Jump and Call
1.2  Writing an assembly level program
      hand assemble
      meta commands
      symbolic names
1.3  Using simulator and assembler of S2
Relationships between a high level language and an assembly language
2.1  Assignment statements:  Reg to Mem, addressing mode
2.2  Expression:  Reverse Polish Operations
2.3  Control flow:  if...then,  while loop
2.4  Function call:  parameter passing, local variables, call/return
      More examples on function call :  fibonacci
2.5   Example from the class

Behavioural goals

  1. Students can write a short assembly language, for example, solve arithmetic expression, perform simple loop
  2. Students can write an assembly language corresponded to a given simple high level language program.
  3. Students can use tools such as an assembler, a simulator to develop a program in an assembly language.
  4. Students can analyse and improve performance of a code sequence in assembly level.

Reading

P. Chongstitvatana, Computer Architecture: A synthesis, 2001.
  1. Chapter 1  Introduction, performance, history
  2. Chapter 2  Instruction Set Architecture
  3. Chapter 3  Computer arithmetic

Tools

S2 assembly level tools set
S2 assembler and simulator (executable) with some examples
S2 assembler and simulator (source code)

 Homework  to practice your skill

Write S2 assembly language programs for the following tasks:
1     Find maximum value of element in an array
2     Reverse the order of elements in an array
3     A subroutine to square a number
4     Count the occurrence of x in an array
5      Draw a circle by computing x,y that satisfy    x^2 + y^2 = r^2
6      Do GCD by Euclid method
7      Do some decision tree that composed of nested if..then..else

last update  7 July  2006