CIS-261 Home: http://www.c-jump.com/bcc/c261c/CIS261syllabus.html
- Welcome! (press F5 to refresh and get the latest version)
- CIS-261 Online -- take tests, submit your homework
- CIS-261 Code Samples -- updated weekly
- ________________________________________________________
- Posted Aug 21 :
- Please be sure to read carefully and understand course policies and formats outlined in CIS-261 syllabus.
- Student Success Tip: For each hour in class, you should expect to study at least 2-3 hours outside of class. Know your limits, avoid over scheduling yourself (whether it be work or class). Set up a schedule that you know will allow you to earn good grades. And, maintain a day planner to help you stay organized.
|
|
Number systems, Bits, Data Types, and Operations.
Presentation: Introduction to Computer Systems ( handout )
Presentation: Bits, Numbers, and Binary Data Representation ( handout )
Assignment A01 : Pages 17-20, Exercises 1.4, 1.9, 1.10, 1.15-17, 1.21 and 1.23
Reading: Textbook Chapters 1 and 2.
Digital Logic Structures
Presentation: Digital Logic ( handout )
Presentation: Arithmetic Operations and Logical Functions ( handout )
Lab L01 : Pages 43-50, Exercises 2.10-11, 2.13-14, 2.17 (interpret bits as signed numbers, use calculator, sign-extend to 8 or 16 bit quantities as necessary), 2.18-19, 2.30, 2.32-35, 2.43 and 2.45-50 (use calculator as necessary), 2.53-54
Reading: Textbook Chapter 3.
Memory and Sequential Logic Circuits
Presentation: Storage Elements ( handout )
Presentation: Sequential Logic Circuits ( handout )
Lab L02: Using Digital Works
Download Digital Works
Assignment A02 : Pages 43-50, Exercises 2.1-3, 2.5, 2.8, 2.12, 2.15, 2.21 (hint: refer to the "Overflow Condition" described in first week's lecture ), 2.23. 2.27-29, and 2.31
Reading: Textbook Chapter 4.
The Von Neumann Model
Presentation: The von Neumann Computer Model ( handout )
Lab L03: Two's Complement Adder/Subtractor
Assignment A03 : Pages 82-91, Exercises 3.1, 3.10, 3.13-14, 3.23 ( Figure_3_38.png ), and 3.32
Reading: Intel Basic Architecture Volume 1 Chapter 2, Introduction to the Intel Architecture.
Introduction to x86 Assembly Language
Presentation: Introduction to x86 Assembly Language ( handout )
Presentation: The Assembly Process ( handout )
Discussion: Overflow Detection Circuits ( handout )
Lab L04: Overflow Detector
Assignment A04 : Pages 111-114, Exercises 4.1-4, 4.5a, 4.5b.1, 4.5b.2, 4.5b.4, and 4.9.
Reading: Intel Basic Architecture Volume 1 Chapter 3, Basic Execution Environment.
Instruction Set Architecture Design
Presentation: Instruction Format Design ( handout )
Presentation: Encoding Real x86 Instructions ( handout)
Presentation: The Instruction Cycle ( handout )
Quick Reference: x86 Instructions by Opcode
Quick Reference: x86 Instructions by Mnemonic
Quick Reference: Brief x86 Instruction Set Reference
See also Lab L05 notes
Assignment A05:
Install Visual Studio.
Use Visual C++ Development Environment ( handout ) to assemble and debug a do-nothing program M1.ASM
Reading: Intel Instruction Set Reference Volume 2 Chapter 2, Instruction Format.
Language Components of MASM
Presentation: Language Components of MASM ( handout )
Registers, EFLAGS, Addressing Modes, Effective Address.
Reading: Intel Instruction Set Reference Volume 2 Appendix B, Instruction formats and encodings.
Data Types and Memory Allocation
Presentation: Data Types and Memory Allocation ( handout )
Endianness, Integer Formats, Copying Data.
Reference: Intel Volume 1, Basic Architecture in HTML format, or download single 1.9 MB ZIP archive.
Reference: Intel Volume 2, Instruction Set Reference in HTML format, or download single 4.2 MB ZIP archive.
Lab M07: Opcode Analysis using OllyDbg
Controlling Program Flow
Presentation: Controlling Program Flow ( handout )
Lab M08: Console Input/Output ( slide version)
Modes of Memory Addressing on x86 and Logical Segments
Presentation: Modes of Memory Addressing on x86 ( handout )
Reading: Intel System Programing Guide Volume 3 Chapter 3, Protected-mode memory management.
Lab M09: Data Arrays, Windows API Calls ( slide version)
CPU Flags and Data Manipulation
Presentation: CPU Flags and Data Manipulation ( handout )
ADD, INC, SUB, DEC, NEG, Carry Flag, Overflow Flag, SHL, SHR, and SAR
Quick Reference: Intel Basic Architecture Volume 1
Appendix A: EFLAGS cross-reference
Appendix B: EFLAGS condition codes
Lab M10: Integer Arithmetic Part 1: High-speed Multiplication by Powers of 2 ( slide version)
Memory Protection, Paging, and Memory Model Directives
Presentation: Memory Protection ( handout )
Presentation: Logical Segments and Memory Model Directives ( handout )
Reading: Intel System Programing Guide Volume 3 Chapter 4, Memory protection.
Lab M11: Integer Arithmetic Part 2: Extended Precision Techniques ( slide version)
Instruction Operand Addressing on x86
Presentation: Instruction Operand Addressing on x86 ( handout )
Reading: Intel Basic Architecture Volume 1 Chapter 5, Data Types and Addressing Modes.
Lab M12: Step-by-step execution analysis ( slide version)
The Program Stack and Procedures
Presentation: The Program Stack ( handout )
Presentation: Procedures ( handout )
Reading: Intel Basic Architecture Volume 1 Chapter 4, Procedure Calls, Interrupts, and Exceptions.
Lab M13: Building Your Own Stack Machine Final Project ( slide version)
Final Project Review
Reference: Intel Volume 1, Basic Architecture in HTML format (or 1.9 MB ZIP )
Reference: Intel Volume 2, Instruction Set Reference in HTML format (or 4.2 MB ZIP )
Quick Reference: x86 Instructions by Opcode
Quick Reference: x86 Instructions by Mnemonic
Quick Reference: Brief x86 Instruction Set Reference
File M00.zip contains DOS batch files that used in class to assemble small ASM programs. To build your program, simply drag and drop your ASM file on top of
_release_build.bat - to build a program
_debug_build.bat - to build a program with debug info.
Same ASM file in M00project.zip is included in MSVC 2005 project, which can be used to to assemble, link, and debug the program.
Another MSVC 2005 project, M08project.zip can be used as a starting point for M08 lab, Console Input/Output.
OllyDbg Debugger for Microsoft Windows: a debugger that emphasizes binary code analysis. Download OllyDbg 1.10 (final version).
This syllabus is based upon work supported by the National Science Foundation under Grant No. 0122636. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).
Note: This syllabus is a suggested course outline and will be generally followed, subject to change according to the instructor's discretion and needs. Academic flexibility is important.