0% found this document useful (0 votes)
173 views

Course Outline - CS-235 Computer Organization and Assembly Language - Fall 2022

This document outlines a course on Computer Organization and Assembly Language taught at the National University of Sciences and Technology. The 3 credit hour course will be taught in the fall 2023 semester. It will cover topics such as computer organization, assembly language programming for Intel x86 processors, memory interfacing, I/O interfacing, and computer buses. Students will learn through lectures, labs, assignments, exams and a project. The goal is for students to understand computer organization and be able to program in assembly language.

Uploaded by

Laiqa Ali
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
173 views

Course Outline - CS-235 Computer Organization and Assembly Language - Fall 2022

This document outlines a course on Computer Organization and Assembly Language taught at the National University of Sciences and Technology. The 3 credit hour course will be taught in the fall 2023 semester. It will cover topics such as computer organization, assembly language programming for Intel x86 processors, memory interfacing, I/O interfacing, and computer buses. Students will learn through lectures, labs, assignments, exams and a project. The goal is for students to understand computer organization and be able to program in assembly language.

Uploaded by

Laiqa Ali
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

National University of Sciences and Technology

School of Electrical Engineering and Computer Science


Department of Electrical Engineering

Computer Organization and Assembly Language – BSCS12(AB)


Course Code: CS-235 Semester: Fall 2023
Credit Hours: 3+1 Prerequisites: Fundamentals of programming,
Digital Logic Design
Instructor: Muhammad Sadiq Amin Discipline: Electrical Engineering
Office: A-217 SEECS Telephone: 03193121007
Lectures: Monday E-mail: [email protected]
Tuesday
Friday
(CR # 21 RIMMS)
Classroom: Classroom # 21 (RIMMS) Consulting Anytime (better confirm
Hours: availability)
Lab Engineer: Ms. Shaiza Lab Engineer’s To be known soon!
Email:
Knowledge Digital Systems and Signal Updates on On requirement basis!
Group: Processing LMS:

Course Description
The course covers the organizational aspects and the assembly language programming of
microprocessors. This course also includes the interfacing part of microprocessors and the knowledge
of some computer busses and basic bus protocol concepts. The skills acquired can be used in the
areas of computer science and software engineering.

Course Objectives
 Understanding of organization of computer and in part Intel’s x86 processors
 Expertise to write and debug applications in assembly language for x86 processors
 Understanding of memory systems, addressing, sizing and interfacing of memories with a
microprocessor
 Understanding of how I/O devices are interfaced with a microprocessor and how
microprocessor communicates with I/O devices
 Understanding of various busses and bus protocols in a computer system
National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

Course Learning Outcomes (CLOs)


At the end of the course the students will be able to: PLO BT* Level
1. Explain how a computer system is organized. 1 C-2
2. Develop applications using Assembly Language for Intel x86 3 C-5
microprocessors.
3. Describe memory system and its interfacing with microprocessor. 2 C-2
4. Illustrate interfacing of I/O devices with microprocessors with or without 1 C-2
using interrupts.
*BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain

Mapping of CLOs to Program Learning Outcomes (PLOs)


PLO CLO1 CLO2 CLO3 CLO4
PLO 1 (Engineering Knowledge) 
PLO 2 (Problem Analysis) 
PLO 3 (Design/Development of Solutions)  
PLO 4 (Investigation)
PLO 5 (Modern tool usage)
PLO 6 (The Engineer and Society)
PLO 7 (Environment and Sustainability)
PLO 8 (Ethics)
PLO 9 (Individual and Team Work)
PLO 10 (Communication)
PLO 11 (Project Management)
PLO 12 (Lifelong Learning)

Mapping of CLOs to Assessment Modules and Weightages


Mapping to CLOs (To be filled at the end of the Course)
Assessment Module Weightage
CLO1 CLO2 CLO3 CLO4
Quizzes 11.25%
Assignments 3.75%
Mid Semester Exam 22. 5%
End Semester Exam 37.5%
Lab Reports 17.5%
Project 7.5%
Total 100%
National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

Books
Textbooks: 1. Assembly Language for x86 processors, 7th Edition
By Kip Irvine
2. The Intel Microprocessors, 8th Edition
By Barry B. Brey
Reference Books: 3. Computer Organization and Design: The Hardware/Software Interface, RISC-V
Edition (1st or 2nd)
By Hennessy and Patterson

Main Topics to be Covered


 Understanding architecture of Microprocessors
o CPU Internal Registers
o Memory Hierarchy
o Memory addressing modes
o Virtual Memory
 Assembly Language for x86 Microprocessors
o Syntax
o Constructs
o Developing small applications in assembly language
o Instructions for data transfer between microprocessor and I/O devices
o Encoding of assembly language instructions in machine language
 Interfacing with Memory and I/O Systems
o Addressing and sizing of memories
o Address decoding techniques
o I/O Interfacing with microprocessor
o Programmable I/O interface
 Computer Buses
o Data, Address and Control Bus in a computer
o Bus protocols for communication

Lectures Breakdown
Week Lecture Topic(s) to be covered
No. No.
1 Introduction, motivation, and history of microprocessors
1 2 From transistors to microprocessors and program execution
3 Components in a general microprocessor
2 4 An introduction to intel x86 Architecture, memory hierarchy and
National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

registers
5 x8 Memory models, addressing and management
6 Virtual memory
7 Address translation in virtual memory and TLB
3 8 Assembly language basics
9 Addressing modes
10 Instructions for data transfer MOV, MOVZX
4 11 Instructions for data transfer MOVSX, XCHG
12 Arithmetic instructions ADD, SUB, INC, DEC, NEG
13 Impact of Arithmetic Instructions on Flag Bits
5 14 Data-related directives, array addressing, JMP and LOOP Instructions
15 Runtime stack, PUSH and POP instructions
16 Procedures in Assembly Language
6 17 Boolean instructions and their applications, AND, OR, XOR, etc.
18 TEST and CMP instructions and their applications
19 Conditional jump and loop Instructions
7 20 Applications of conditional jump and loop instructions
21 Finite state machine implementation using conditional instructions
22 Addressing Modes
8 23 Encoding of Assembly Language instructions in Machine Language
24 Encoding of Assembly Language instructions in Machine Language
9 Mid Semester Exam (MSE)
25 Microprocessor hardware specifications – I
10 26 Microprocessor hardware specifications – II
27 Memory architecture and memory sizing
28 Memory interfacing with microprocessor – I
11 29 Memory interfacing with microprocessor – II
30 Interfacing I/O devices with microprocessor
31 Interfacing I/O devices with microprocessor
12 32 Programmable peripheral interface – I
33 Programmable peripheral interface – II
13 34 Examples of using programmable peripheral interface
35 Interrupts and interrupt handling
National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

36 Interrupt Vector Table


37 I/O interfacing using interrupts
14 38 I/O interfacing using interrupts
39 I/O interfacing using interrupts
40 Shift and rotate instructions
15 41 Shift and rotate instructions - examples
42 Multiply and divide instructions
43 Multiply and divide instructions - examples
16 44 String primitive instructions
45 String primitive instructions - examples
46 Floating point numbers
17 47 Floating point processing
48 Floating point instructions
18 End Semester Exam (ESE)

Lab Experiments
Lab 1 Introduction to programming in Assembly Language Using MASM
Lab 2 Introduction to 8086/8088 microprocessor Programming
Lab 3 Programming variables in assembly language
Lab 4 Effects of arithmetic instructions on Flags of CPU
Lab 5 Memory accessing and array's manipulation in assembly language
Lab 6 Procedures and stacks in assembly language
Lab 7 Using loops and conditional statements in assembly language
Lab 8 Arduino Uno for blinking Led using Digital pins on Tinkercad
Lab 9 Use of shift and rotate instructions
Lab 10 Introduction to programming of real numbers using floating point arithmetic
Lab 11 Programming of real numbers using floating point arithmetic
Lab 12 Strings manipulation in assembly language
Lab 13 16-bit programming in assembly language

Grading and Assessment Policies


National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

Quizzes The quizzes are a mandatory component of the overall assessment. The purpose of
quizzes is to keep the students up to date with the lecture material and test basic
understanding of the course concepts. There will be at least 6 quizzes conducted in
the class. Each quiz will consist of questions that target specific topics from the most
recent as well as previous week lectures.
Assignments To give sufficient practice and comprehensive understanding of the subject,
assignments will be given. Upon submission, you must declare that which questions
you have attempted by yourself. The evaluated assignment is an individual effort, and
no hints will be posted on forum. Only declared questions by individual student will
be evaluated. If the declared question done by you is found a copy of other, then you
may lose all the marks in assignments and get zero in assignments category. The
questions in assignments will be challenging to give students the confidence and
enable them to prepare for the exams well. Homework will be submitted at the
beginning of class on the due date. The students are advised to do the assignment
themselves. Copying of assignment is highly discouraged, taken as cheating case and
dealt accordingly. Late submissions will also lose marks.
Labs The labs will be conducted for three/four hours every week. A lab handout will be
given in advance for study and analysis The lab handouts will also be placed on LMS.
The students are to submit their results by giving a lab report at the end of lab for
evaluation. One lab report per group will be required. However, students may also be
evaluated by oral viva or assignments during the lab.
Software / Tools Requirement
 MASM for x86 Assembly Language programming!
 RARS simulator for RISC-V Assembly Language programming!
 Optional Alternative to MASM: Microsoft Visual Studio 2019
Miscellaneous Matters
Academic Honesty Plagiarism is the unacknowledged use of other’s work, including the copying
and Plagiarism of Assignments and laboratory results from the other students. Plagiarism is
considered a serious offence by the university and severe penalties apply.
Therefore, all the students must display originality of efforts and avoid
plagiarism in any form.
Classroom Etiquettes It is the collective responsibility of all the students to make the class
environment conducive for learning. To create and maintain a friendly
atmosphere, the following standards of classroom behavior will be
observed:
1. Students will be punctual for the class. The teacher considers late
comers disrespectful of those who manage to be on time.
2. If a student decides to attend the class, he or she will not disrupt
class by leaving before the lecture has ended.
All the cell phones must be switched OFF prior to entering the classroom.
National University of Sciences and Technology
School of Electrical Engineering and Computer Science
Department of Electrical Engineering

You might also like