CMSC 313 Syllabus
Assembly Language and Computer Organization
CMSC 202 and CMSC 203 with a grade of ‘C’ or better.
This course introduces the student to the low-level abstraction of a computer system from a programmer’s point of view, with an emphasis on low-level programming. Topics include data representation, assembly language programming, the process of compiling and linking, low-level memory management, digital logic, and basic processor architecture.
Each student will:
- Gain familiarity with digital logic circuits and their components, including gates, multiplexers, flip-flops, and registers, to understand the building blocks of computer systems.
- Gain an understanding of data representation in computer systems, covering topics such as binary, hexadecimal, two’s complement, floating-point representation.
- Develop an understanding of basic processor architecture, including the organization of registers, instruction execution cycle, and the interaction between the processor and memory.
- Gain proficiency in assembly language programming, including the ability to write, debug, and analyze programs using low-level instructions and addressing modes.
- Gain an understanding of the execution environment of computer processes including interaction with the operating system especially with respect to memory utilization.
|Level Of Emphasis|
|Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.||X|
|Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.||X|
|Communicate effectively in a variety of professional contexts.||X|
|Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.||X|
|Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.||X|
|Apply computer science theory and software development fundamentals to produce computing-based solutions.||X|
Vahid, F. (2010). Digital Design with RTL Design, VHDL, and Verilog. 2nd Edition. Wiley. ISBN-13: 978-0470531082 (Recommended)
- Number Systems
- Binary and Integer Representations
- Signed and Unsigned Numbers
- IEEE Floating Point
- Digital Logic Design
- Combinational Logic
- Sequential Logic
- Boolean Algebra
- Size Optimizations
- Computer Organization
- Arithmetic Logic Units
- Arithmetic Circuits
- Register Files
- Instruction and Data memory
- Assembly Language Programming
- Programming Environment
- Registers and memory
- Conditions and loops
- Functions and the stack discipline
- Interfacing C and Assembly Language
- Programming in C
- Dynamic Memory
- Processor Architecture
|20%||4 – 6 Homework Assignments|
|40%||4 – 6 Programming Assignments|
|15% each||2 Exams|
Updated June 19, 2023 by JD and JK