MEDGAR EVERS COLLEGE of CUNY
Department of Physical Sciences and Computer Science
Department Office, Carroll 417 - Phone 718-270-6453
Course Syllabus
Assembly Language and Architecture - CS 252
Required Text: Assembly Language for Intel-Based Computers by Kip Irvine (Publisher: Prentice-Hall) 5th Ed/© 2007 * ISBN-10: 0132383101 * ISBN-13: 9780132383103
(Available in Medgar Evers College Bookstore)
Course Description: In assembly language and architecture, students are exposed to the register level architecture of a modern processor and gain experience programming in the assembly language for that processor. ALU, memories, and interfaces are covered. Emphasis is placed on machine language, instruction formats and executions, addressing and indexing, computation and control instructions, and digital representation of data. Program segmentation, linkage, subroutine calling conventions, and floating-point operations are also discussed are also discussed.
3 class hours, 1 laboratory hours, 3 credits
Prerequisites:CS 244, MTH 151
Course Requirements: All students have the responsibility to arrive on time, attend class regularly, and to participate fully in the work of the course. Additionally, students are not to work on other materials in class. Assigned readings, problems and programs should be completed before class. Several computer programs (MASM, TASM, NASM) will be assigned to reinforce the concepts presented in class. Unless you own or have access to equivalent hardware and software, plan on spending a lot of time on campus.
Presentations: A programming project/presentation in the area of Computer Organization using Assembly Language Programming is also required and must be presented to the class -- both oral and written. The oral presentation should be no less than ten minutes in length. Topics for the presentation, along with an outline, must be approved by the instructor prior to the midterm examination. Absolutely no computer project will be accepted after the last day of class!
Grading Procedure: The final grade will be determined objectively by using a weighted average along with the following weighted areas: computer programs, presentation, chapter examinations, midterm examination, and final examination. Check with the college catalog for information regarding the official grading policy.
Academic Requirements and Regulations: Students who officially withdraw from a course between the 4th through the 8th week receive a grade of W, which is not counted in computing the grade point average. Courses officially dropped after the 8th week of class will appear as a WF and count as an F grade. INC (Incomplete) or ABS (absent) grades will only be given to students who are passing the course.
Honor Code: Students are required to sign and adhere to the departmental honor pledge. Check with the department for a copy of the pledge.
Final Examination Date: TBA
CUNY Proficiency Examination (CPE)
The CPE is a graduation requirement. All students between 45-60 credits are required to sit for and pass the CPE. You have only three chances to pass this examination. Each missed scheduled examination after the 45 credit mark counts as a failure. For more information about this requirement, contact the Medgar Evers College CPE Liaison.
MEDGAR EVERS COLLEGE / CUNY
Department of Physical Sciences and Computer Science
Department Office, Carroll 417 - Phone 718-270-6453
ASSEMBLY LANGUAGE and ARCHITECTURE - CS 252
CHAPTERTOPICS WEEK
- BASIC CONCEPTS: 1.1 Welcome to Assembly Language, 1.2 Virtual Machine Concepts
1.3 Data Representation, 1.4 Boolean Operations - IA-32 Processor Architecture: 2.1 General Concepts, 2.2 IA-32 Processor Architecture
2.3 IA-32 Memory Management, 2.4 Components of an IA-32 Microcomputer, 2.5 I-O System - Assembly Language Fundamentals: 3.1 Basic Elements, 3.2 Example: Adding 3 Integers
,3.3 Assembling, Linking, and Running Programs, 3.4 Defining Data, 3.5 Symbolic Constants - Data Transfers, Addressing, and Arithmetic: 4.1 Data Transfer Instructions, 4.2
Addition and Subtraction, 4.3 Data-Related Operators and Directives, 4.4 Indirect Addressing, 4.5 JMP and LOOP - Procedures: 5.1 Introduction, 5.2 Linking to an External Library, 5.3 The Book’s Link Library
5.4 Stack Operations, 5.5 Defining & Using Procedures, 5.6 Program Design Using Procedures - Conditional Processing: 6.1 Introduction, 6.2 Boolean and Comparison Instructions, 6.3 Conditional, Jumps, 6.4 Conditional Loop Instructions, 6.5 Conditional Structures, 6.6 Application: Finite-State Machines, 6.7 Decision Directives
- Integer Arithmetic: 7.1 Introduction, 7.2 Shift and Rotate Instructions, 7.3 Shift and Rotate Applications, 7.4 Multiplication and Division Operations, 7.5 Extended Addition and Subtraction 7.6 ASCII and Unpacked Decimal Arithmetic, 7.7 Packed Decimal Arithmetic
1-7MID-TERM EXAMINATION
- Advanced Procedures: 8.1 Introduction, 8.2 Stack Frames, 8.3 Recursion, 8.4 .MODEL Directive, 8.6 Creating Multimodule Programs
- Strings and Arrays: 9.1 Introduction, 9.2 String Primitive Instructions, 9.3 Selected String Procedures, 9.4 Two-Dimensional Arrays, 9.5 Searching and Sorting Integer Arrays
- Structures and Macros: 10.1 Structures, 10.2 Macros, 10.3 Conditional-Assembly Directives 10.4 Defining Repeat Blocks
- MS-Windows Programming: 11.1 Win32 Console Programming, 11.2 Writing a Graphical 12 Windows Application, 11.3 Dynamic Memory Allocation, 11.4 IA-32 Memory Management
- High-Level Language Interface: 12.1 Introduction, 12.2 Inline Assembly Code 12.3 Linking to C/C++ in Protected Mode, 12.4 Linking to C/C++ in Real-Address Mode
- 16-Bit MS-DOS Programming: 13.1 MS-DOS and the IBM-PC, 13.2 MS-DOS Function Calls 14 (INT 21h), 13.3 Standard MS-DOS File I/O Services.
- Disk Fundamentals: 14.1 Disk Storage Systems, 14.2 File Systems, 14.3 Disk Directory 14.4 Reading and Writing Disk Sectors (7305h), 14.5 System-Level File Functions
FINAL EXAMINATION