You are on page 1of 4

FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY

HIET, Hamdard University


Computer Organization and Assembly Language (3+1 CH), Fall 2015
Instructor:

Iqbal Uddin khan


iqbaluddin.khan@hamdard.edu.pk

Pre-Requisite:

CS 211: Digital Logic Design

Office Hours: 08:20Hrs 16:00Hrs


Tel: 021- 36440113

Introduction:
This course is intended as a first introduction to the ideas of computer architecture-both hardware and software. Assembly
language programming is the central theme of the course. The attributes and operations of a macro assembler are discussed in
some detail.
Course Objectives:
The main objective of this course is to introduce the organization of computer systems and usage of assembly language for
optimization and control. Emphasis should be given to expose the low-level logic employed for problem solving while using
assembly language as a tool. At the end of the course the students should be capable of writing moderately complex assembly
language subroutines and interfacing them to any high level language.
Mapping of CLOs and PLOs
Sr. No

Course Learning Outcomes

PLOs

Blooms Taxonomy

CLO_1

Be able to solve basic binary math operations using the


computer. Students should be able to demonstrate
programming proficiency using the various addressing
modes and data transfer instructions of the target
computer.

PLO_2, PLO_3,
PLO_4

C4 and C5 (analyzing and


evaluating)

PLO_1, PLO_3

C3 and C5 (Applying and


evaluating)

PLO_1

C3 (Applying)

CLO_2

CLO_3

Be able to program using the capabilities of the stack, the


program counter, and the status register and show how
these are used to execute a machine code program.
Students should be able to apply knowledge of the
processors internal registers and operations by use of a
PC based microprocessor simulator.

Students should be able to design electrical circuitry to the


processor I/O ports in order to interface the processor to
external devices. Students should be able to write
assembly language programs and download the machine
code that will provide solutions real-world control
problems.

CLO Assessment Mechanism


Assessment tools

CLO_1

CLO_2

CLO_3

Quizzes

10%

20%

30%

Assignments

20%

10%

10%

Midterm Exam

30%

40%

10%

Final Exam

40%

30%

50%

FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY


Overall Grading Policy
Assessment Items

Percentage

Class Performance (Quizzes, Assignments)

20%

Midterm Exam

30%

Final Exam

50%

LAB (if applicable)

50 Marks

Essential topics to be covered:


Microprocessor Bus Structure: Addressing, Data and Control, Memory Organization and Structure (Segmented and Linear
Models), Introduction to Registers and Flags, Data Movement, Arithmetic and Logic, Program Control, Subroutines, Stack and
its operation, Peripheral Control Interrupts, Interfacing with high level languages, Real-time application.
Objectives and Perspectives of Assembly Language, Addressing Modes, Introduction to the Assembler and Debugger,
Manipulate and translate machine and assembly code, Describe actions inside the processing chip, Discuss operations performed
by an instruction set, Write a fully documented program, Using an assembler of choice.
Recommended Book:
Assembly Language For x86 Processors
6th Edition by Kip R. Irvine, ISBN-13: 978-0136022121, Publisher: Prentice Hall
Reference Books:
Computer Organization and Architecture
9th Edition by William Stallings, ISBN-10: 013293633X, Publisher: Prentice Hall
Assembly Language Programming and Organization of the IBM PC
By Ytha Y. Yu, Charles Marut, and Publisher: McGraw-Hill
Course Contents:
Lecture

Topic

General Concepts
x86
Architecture
Memory management
Components and I/O System
Basic Elements of Assembly language

Assembling and Linking

ADD and SUB for Integers

Defining DATA and Data Types

Relevant Operators and Directives

Label and Pointers

Transfer Instructions JMP

10

Transfer Instructions - LOOP

11

Memory STACK

12

PUSH Instruction

13

POP Instruction

14

Procedures PROC

15

CALL and RET Instructions

1
2

FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY


Lecture

Topic

16

Flow charting of Loops and Calls

17

Number System Revision

18

Conditional Processing

19

Boolean and Comparison Instructions

20

Conditional LOOP JMP Structures

21

FSM Intro and Application over Conditions

22

Shit and Rotate Instructions

23

Shit and Rotate Examples

24

MUL IMUL Instruction and its execution time

25

DIV Instruction

26

Packed Decimal Arithmetic 32 Bits DAA AAS

27

Unpacked Decimal Arithmetic 32 Bits AAA AAS

28

Stack Frames

29

Recursion

30

INVOKE Directive and ADDR Operator

31

PROC and PROTO Directives

32

Debugging of Advanced Procedure

33

String Primitive Instructions

34

String - Procedure

35

Two Dimensional Arrays

36

Arrays Searching and Sorting

37

Structure

38

Structure Variable Declaration

39

Structure Referencing Variable

40

Macros

41

Defining and Invoking Macros

42

Conditional Assembly Directives IF, ELSE and ENDIF

43

45

Repeat Blocks REPEAT, WHILE and FOR


x86 Instruction Encoding
Single Byte Instructions
Register Mode Instructions
Linking Assembly code to C

46

Inline Assembly Code

47

Calling C Functions

48

Calling C Library Functions

44

FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY


Lab Practical
S. No

Objective

Installation of Assembler for the Intel x86 architecture

To write first Assembly Language code

Basic I/O Operation in Assembly Language

Addressing Modes and Segments

Indexing and Data Manipulation

Arithmetic and Logical Instructions

Shift Rotate and Jump Instructions

Stacks and Subroutines

Bios Level Programming and Screen Buffer

Serial Communications

10

Parallel Port Interfacing Applications

11

Macros

12

Interrupts

13

Calling C Functions

You might also like