Computer Org. and Assembly Language
NC State - Fall ‘25 - CSC 116-001
|
Computer architecture topics required by professional software developers, including binary and hexadecimal numbers, hardware component organization, machine instruction sets, assembler language programming, linking assembler language with high-level languages, program testing, computer hardware design issues, computer software design issues, and trends in current computer design.
Basics
Topics
- Introduction to Architecture
- Unsigned/Signed Number Systems
- Basic Computer Architecture
- ARM64 Architecture
- ARM64 Environment
- C = A + B Program Format, Interrupts, File I/O
- Compares, Jumps
- Logical Operations
- Multiply and Divide
- Indirect Addressing
- Subroutines
- ARM64 Machine Code
- Linking with High-Level Languages
- x86 architecture over time
- x86-64 architecture
- x86-64 machine code
- Microcode
- Advanced Topics (Floating Point, Pipelining)
- Java Virtual Machine
- Tradeoffs in Processor Design & Performance Issues in Processor Design
Resources
Main Resources
Optional Textbooks
- The Elements of Computing Systems: Building a Modern Computer from First Principles
- Programming with 64-Bit ARM Assembly Language: Single Board Computer Development for Raspberry Pi and Mobile Devices
Project Descriptions
- SPACES
- TEMP
- BOWLING
- RLC
- Final Report
Commitment to an inclusive learning environment: this class adheres to the philosophy that all community members should enjoy an environment free of any form of harassment, sexual misconduct or discrimination. Please be respectful and kind to one another.
|