2110250   Computer Organization   Year 2003

Course director:  Sartid Vongpradhip

Part III  Assembly language level

lecturer: Prabhas Chongstitvatana

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

What's new

2 June      S2 ISA  Assembly language   History
5 June      Instruction Set Architecture
9 June      Introduction to computer organization
10 June    Computer arithmetic
17 June    S2 assembly level tools set      Jump and call
            S2 assembler and simulator (executable) with some examples
18 June     Relationships between a high level language and an assembly language
25 June    Code optimisation
2 July      Example of function call
21 July    Multi-media extension instructions
1 September     More examples on function call :  fibonacci
             Self-replicating program
2 September     Control flow : if..then   simple call      Expression
...

Aim

1. Teach the basic components in a computer system
2. Discuss the basic theory and the design practice of a computer system
3. Teach one assembly langauge

Syllabus

Part III  Topics by week

1. Assembly language level
2. Instruction set architecture of S2
3. High level langauge to assembly language
4. Instruction cycle of S2
5. Performance optimisation

Announcement

Quiz   assembly language level  (in S2)    4 September   8:30--9:00 am  in the classroom

Time table

Tuesday, Thursday  8:30am - 10:00am

Starting date
 
 
Section Room Arthit  Prabhas Sartid
1 ENG3305 3 June 14 Aug 8 July
2 ENG3404 8 July 3 June 14 Aug
3 ENG2204 14 Aug 8 July 3 June

Part I  Arthit
Part II Sartid
Part III Prabhas

Assessment

Quiz  30%  (each part 10%)
Final 70%  (note that there is no mid-term) date 16 Sept.
 

Part III   Assembly language level

Scope

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
Performance optimization
3.1  Register Transfer Level of S2
3.2  Peep hole optimisation
3.3  Register allocation and compiler related topics
3.4  Multi-media extension instructions

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
  4. Self-replicating program

Tools

S2 assembly level tools set
RZ compiler tools kit page : include S2 assembly and S2 simulator
S2 assembler and simulator (executable) with some examples

last update  1 September  2003