[vc_row el_class=”inner-body-content” css=”.vc_custom_1667211597674{padding-top: 30px !important;padding-bottom: 20px !important;}”][vc_column][vc_custom_heading text=”Pre-requisite(s)” font_container=”tag:h2|font_size:20px|text_align:left” use_theme_fonts=”yes” css=”.vc_custom_1667211539886{margin-top: 0px !important;}”][vc_column_text]Operating Systems (CS-3413)[/vc_column_text][vc_custom_heading text=”Recommended Book(s)” font_container=”tag:h2|font_size:20px|text_align:left” use_theme_fonts=”yes”][vc_column_text]Computer Organization & Architecture By William Stallings
Using Assembly Language By Allen L. Wyatt[/vc_column_text][vc_custom_heading text=”COURSE OBJECTIVES” use_theme_fonts=”yes”][vc_column_text]
The main objective of this course is to introduce the organization of computer systems and usage of assembly language for optimization and control. Emphasis is 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 able to: Identify the major components of computer architecture, and explain their purposes and interactions. Simulate the internal representation of data, and show how data is stored and accessed in memory. Explain the relationships between hardware architecture and its instruction set, and simulate micro-programs. Explain the Instruction Execution Cycle. Explain the differences and relationships among high-level, assembly, and machine languages. Write well-modularized computer programs in an assembly language, implementing decision, repetition, and procedure structures. Write moderately complex assembly language subroutines and interfacing them to any high l
[/vc_column_text][vc_custom_heading text=”COURSE LEARNING OUTCOMES (CLO)” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Course Objectives[/vc_column_text][vc_custom_heading text=”COURSE CONTENTS” use_theme_fonts=”yes”][vc_custom_heading text=”Introduction to Computer Organization & Assembly Language” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Introduction to computer organization & architecture
General introduction of the course
Assembly and Machine language
Compiler and assembler
Why learn assembly
Comparison of assembly and high level language
Programmer’s view of a computer system ( App. Program, assembly
language, operating system, instruction set architecture, microarchitecture, digital logic)[/vc_column_text][vc_custom_heading text=”Data Representation” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Data representation
Binary numbers
Converting binary to decimal
Hexadecimal integers
Hexadecimal to binary
Decimal to hexadecimal
Integer storage sizes
Binary addition
Hexadecimal addition
Signed Integers(sign-magnitude, Biased representation)
Signed Integers (1’s complement, 2’s complement)
Dis advantages of signed magnitude.
Excess representation
floating point representation
Summary of number representation
2’s complement of hexadecimal ranges of signed integers
carry and overflow
character storage
Printable ASCII Codes
control characters.[/vc_column_text][vc_custom_heading text=”Intel 8088 (IAPX 88) micro-processor” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Introduction to the IAPX88 architecture
Registers (General Purpose, Pointer register, Segment register)
The 88 flag register and interruption of flags ( ZF, CF, SF, OF, AF, PF, IF)
Instruction groups (Data Movement, arithmetic and logic, control, special instructions)[/vc_column_text][vc_custom_heading text=”Implementing assembly code” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]First assembly program
Tools debugger
Linker
Assembler
How to assemble and run the assembly program
Segmented memory model in IAPX88
Using the debugger to explain the segmented memory model
Discussion on the Command file
List file
Relative address and physical address.[/vc_column_text][vc_custom_heading text=”Address calculation, Segmented memory model, Data Declaration” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Offset, segment
physical address calculation
paragraph boundaries
overlapping segments
Exercise questions from the notes
Data declaration
difference between direct and in direct addressing
assembly programs showing different ways to represent data in the memory
Register addressing
memory addressing register to memory
memory to register
register to register
register to constant.
Segments, default segments in direct and indirect modes
[base + offset + index] method to calculate the effective address and using it with the associated segment to calculate the physical address.[/vc_column_text][vc_custom_heading text=”Conditional Jumps, Un conditional Jumps” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Comparisons & Conditions
CMP instructions
working of CMP
Flag table and possible conditions using flags
Conditional Jumps
Interpretation of flags using conditional jumps
Unconditional Jumps
Relative addressing
Short, Near, Far Jumps
Bubble Sort
Questions from exercises[/vc_column_text][vc_custom_heading text=”Bit manipulation” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Bit manipulations
Shifting and rotation
SHR,SHL,SAR,SAL,ROR,ROL,RCL,RCR[/vc_column_text][vc_custom_heading text=”Register operations” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Multiplication Algorithm
limitations in multiplication using MUL instruction
Extended shift operations
Add with carry operation
Subtract with carry
Improvement on the Multiplication algorithm using extended shift and adc operations
Masking operations Selective bit retrieval
selective bit set, selective bit inverse
Selective bit not[/vc_column_text][vc_custom_heading text=”Subroutines” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Subroutines using Stack introduction
Using Call
Ret instruction
Parameter Passing in the stack and stack operations
Writing bubble sort code for generic implementation of the subroutines
Questions from exercises[/vc_column_text][vc_custom_heading text=” Display Memory” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]Display memory concepts of the graphic card and introduction to the graphic memory area
Representing characters and representing numbers[/vc_column_text][vc_custom_heading text=”MAPPING OF CLOs TO ASSESSMENT MODULES” font_container=”tag:h2|font_size:20px|text_align:left” use_theme_fonts=”yes”][vc_column_text css=”.vc_custom_1667211490834{margin-bottom: 0px !important;}”]
Final Exam |
Assignments |
Surprise Tests/Quizzes |
Project |
Midterm Exam |
[/vc_column_text][/vc_column][/vc_row]