Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Course Title: Machine Organization and Assembly Language

Course Code: CoSc3025

Credit hour: 2(Lec 1, Lab 2)

Prerequisites: Cosc2041

COURSE DESCRIPTION:

Applications that are not time-critical or only standard input/output devices have minimal direct
need for assembly language programming. Otherwise, assembly language is used to program
time critical tasks. Moreover, some programmers must write the library routines to achieve
standard interfaces and these routines are written in assembly language. Therefore, this course is
highly dealing with assembly language.

COURSE OBJECTIVE:

At the end of the course the student will be able to:

✓ Explain the architecture of 8086/8088 microprocessor

✓ Write efficient assembly programs for an 80x86/8088microprocess

✓ Design and implement user interface using assembly language

✓ Use assembly language inside C programming.

Course Content

Chapter 1. Intel Machine Architecture

1.1. Architectural evolution of the 80x86 systems

1.2. Major components

1.3. Programmers’ view

1.3.1. Execution Unit

1.3.2. General purpose Registers

1.3.3. Address Registers

1.3.4. Flags

1.3.5. Internal Buses

1.3.6. Bus Interface Unit


Chapter 2. Basics of Assembly Language Programs

2.1. Components of a line of Assembly Language

2.2. Assembly Language Directives.

2.3. 80x86 Opcodes

2.3.1. Data Transfer

2.3.2. Input and Output Functions.

2.3.3. Data Manipulation.

2.3.4. Arithmetic an Logical Instructions

2.3.5. Program Control Flow Instruction.

2.3.6. Special Operations/ instructions.

▪ String Operations

▪ Flag Manipulation and processor control instructions

2.4. Arrays.

Chapter 3. Addressing Modes.

3.1 Register Addressing Mode.

3.2 Immediate Addressing Mode.

3.3 Indexed Addressing Mode

3.4 Direct Addressing Mode

3.5 Indirect Addressing Mode

3.6 Based Addressing Mode

3.7 Based Indexed Addressing Mode

Chapter 4. Using ALP inside C Programming Language.

4.1 Calling Conventions

4.2 Calling C from Assembly

4.3 Calling Assembly from C


Laboratory outline

Week1 Lab Environment setup

Assembly language instructions

Registers

Compiling and testing assembly codes

Week2 Simple Assignment and Arithmetic Operations

Data storage and Variables

Moving Data

Week3 Simple assignment and Arithmetic Operations

Addition , Subtraction

Register Reference

Multiplication and Division

Week4 Control Statements

Jumps, Labels and Flags

Week5 Conditional Statements

Complex and Compound Conditional Expressions

If then else conditional Expression

Week6 Looping Instructions

Week7 Arrays and Pointers

Week8 Addressing Data in CPU

Simple Addressing Register (Immediate and Direct)

Week9 Subroutine and Stack

Calling and Returning from Subroutine

Pushing and Popping Stack

Week10 Recursion
Delivery Methods

✓ Lecture

✓ Laboratory

✓ Exercises

✓ Assignments

Assessment Methods Weight


Quizzes and tests 20%

Practical Exam 20%

Assignment 10%

Final 50%

References

• Jeff Duntmann, Assembly Language Step-by-Step: Programming with DOS and Linux, 2nd

Ed., John Wiley & Sons, 2000

• Schousek, Theresa, The Art of Assembly Language Programming, 2nd Ed, Elsevier Science

& Technology , Saint Louis, 2019

• Barry B. Brey, “The Intel microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486,

Pentium, Pentium Pro processor, Pentium II, Pentium III, Pentium 4, and Core2

with 64-bit extensions: architecture, programming, and interfacing”, 8th Ed,

Pearson Prentice Hall, Upper Saddle River; N.J, 2019

• Richard C. Detmer, Introduction to 80x86 Assembly Language and Computer Architecture,

You might also like