University of Bahrain
College of Information Technology
Department of Computer Science
Course Information Form
Code ITCS242 Title
Assembly Language Programming
Pre/co-requisites
ITCE250+ITCS104
Web Page
Course Instructor
Email
Dr. Abdul-Fattah Salman
fsalman@hotmail.com
Credit Hours
3-2-3
http://bb.uob.edu.bh (Blackboard)
Office Hours: S40-2057
UTH: 11:00 12:00
MW: 11:00 12:00
Course Coordinator
Dr. Abdul-Fattah Salman
Course Description
Data representations, Computer Structure and Processor Organization, CPU Registers and Processor
Software model, Memory Organization and Segmentation, Physical & Logical Addresses, Address
Calculation, Assembly Language Fundamentals: Program Structure, Directives and Machine Instructions
Formats, Data Definitions, Addressing Modes, Instruction set, Macros, Stack and Procedures, Input/Output
programming and Interrupts.
Course Learning Outcomes
Mapping to
POs
a
On successful completion of this course, students will be able to:
1) Describe computer organization and data representation.
b,c
2) Analyze, design, implement, and test assembly language programs.
3) Use the interrupts in developing programs to do various file and input/output
operations.
4) Construct assembly language modular programs using procedures and macros.
c
c,k
a
5) Convert high-level language constructs into equivalent assembly language constructs.
6) Apply debugging tools, techniques, and skills to experiment with various instructions,
structures, and programs.
Textbook
th
Assembly Language Programming for X86 Processors by Kip. R. Irvine, Prentice-Hall, 6 edition, 2011.
References
IBM PC Assembly Language and Programming By Peter Abel, 5th edition, PHI, 2006
Assessments
Term Tests
Test #1:
20%
Test #2:
20%
Practical:
10%
Assignments
Lab:
10%
Home:
Tests dates and timings
Test #1
W 27 MARCH 2013 @
15:00-16:30
Quizzes
Test #2
T 21 MAY 2013 @
15:00-16:30
Projects
10%
Final Exam
30%
Practical
U 02 JUNE 2013 @
13:00-14:30
Final Exam
SAT 15 JUN 2013 @
8:30-10:30
Topics
Week
1
2
3
8
9
Topics
Chapter 1.3: Data representations.
Chapter 2.1 2.3:
IA Processor Architecture
Chapter 3.1 3.3: Assembly language Basics.
Chapter 3.3: Assembling, Linking, and Debugging. Quiz #1:
3.4-3.6: Data Definitions, Symbolic Constants and Data representation &
Real-address mode Programming.
Architecture
(Assembly Development System Components)
Chapter 4.1: Data Transfer Instructions and
Operand Types: MOV,XCHG,MOVZX, MOVSX, LEA
4.2: Addition & Subtraction: ADD, SUB, INC, DEC,
4.5: JMP & LOOP Instructions.
Chapter 4.3: Data-related Operators & Directives Quiz #2:
4.4: Indirect Addressing
Assembly basics, Data
Chapter 5.1-5.3: Library IO Procedures.
Definitions, Data Transfers
Chapter 7.4: Multiplication & Division
Quiz #3: Formula
7.5: Extended Addition & Subtraction: ADC, SBB Programming & IO
9.4: Two-dimensional Arrays: base+index+disp
Chapter 5.4: Stack Operations & Instructions.
Test#1: W 27 March 2013
Chapter 5.5-5.7: Procedures Concepts:
@ 15:00-16:30
Definition, invoking, Passing parameters
11
Chapter 6.5: Implementation of HLL Constructs.
(Branch and Loop Conditional Structures)
Chapter 7.1-7.3:
Shift & Rotate Instructions & their applications
Chapter 8.1-8.3, 8.5: Advanced Procedures:
Local Variables, Stack Parameters, Recursion
Chapter 10.2: Macros: Definition, Invocation,
Parameters, Expansion, Local labels, Nesting.
10.3.7: Macro operators.
14
Chapter 13: Interrupts & IO using INT 21H:
Function calls: 1, 2, 5, 8, 9, A
File IO: Handles, Open, Close, Create, Read,
Write, Move File Pointer, rename, delete.
15
Chapter 13: Interrupts & File Operations:
File IO: Handles, Open, Close, Create, Read,
Write, Move File Pointer, rename, delete.
16
Tutorial#3:
Listing Structure
Debugging and
Error Messages
Debugging and
Error Messages
Assignment #1:
Data Transfers
Assignment #2:
IO Programming
Assignment #3:
Formula
Programming
Mid-Semester Break APRIL 14 18, 2013
10
13
Lab Activities
Tutorial #1:
Data Representation
Tutorial#2:
Assembly Language
Development System
Chapter 2.1 2.3:
IA Processor Architecture (Cont.)
Chapter 6.1- 6.4: Boolean and Comparison
Instructions, Conditional & Unconditional
Jumps. Conditional Loop instructions: LOOPZ(E)
LOOPNZ(E)
12
Remarks
Review & Solving problem examples
Real-address mode
Programming
Quiz #4:
Conditional Processing
Quiz #5:
HLL
Assignment #4:
Simple Procedures
Assignment #5:
Converting HLL
code into assembly
Quiz #6:
Assignment #6:
Bit Processing +
Procedures & Bits
Procedures
Quiz #7:
Programming using
Assignment #7:
Macros
Macros
Test#2: T 21 MAY 2013
@ 15:00-16:30
Assignment #8:
Quiz #8:
Real-address mode
IO using Interrupts
Programming
Interrupts
Practical Test
U 2 JUN 2013 @
13:00-14:30