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

Course Syllabus: click here for the syllabus
Tentative Schedule: click here for the tentative schedule
Lecture: M/W 4:30-5:45pm, In-person @ LMP 353
TA:
  • Sam Gilson
Get Help:  
  • EdStem Discussion Board
    • If you're sharing your code, make sure to keep your posts private!
  • Dr. Batista's Office Hours:
    • Tuesdays, 4-5pm
    • Check EdStem for zoom link
  • Sam's Office Hours:
    • By appointment though EdStem
Final Exam:   Friday, Dec 5, 3:30-6:00pm @ LMP 353

Topics

  1. Introduction to Architecture
  2. Unsigned/Signed Number Systems
  3. Basic Computer Architecture
  4. ARM64 Architecture
  5. ARM64 Environment
  6. C = A + B Program Format, Interrupts, File I/O
  7. Compares, Jumps, Logical operations
  8. Multiply and Divide
  9. Indirect Addressing
  10. ARM64 Machine Code
  11. Subroutines
  12. Linking with High-Level Languages
  13. x86 architecture over time
  14. x86-64 architecture
  15. x86-64 machine code
  16. Microcode, String Instructions
  17. Advanced Topics (Floating Point, Pipelining)
  18. Java Virtual Machine
  19. 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
    • by Stephen Smith

Project Descriptions

Projects will be added throughout the semester.

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.