Digital Design & Computer Architecture - Lecture 9b: Assembly Programming (Spring 2026)

Digital Design & Computer Architecture - Lecture 9b: Assembly Programming (Spring 2026)

🎙 Onur Mutlu 👥 64K 📅 March 20, 2026 ⏱ 39 min 👁 920 📄 lecture 🧭 2026-08-16
Available in: English (current) Français

Keywords

assembly programmingLC3MIPSconditional branchesloopsdebuggingtrap instructionsprogramming constructs

Summary

This lecture, part of the Digital Design and Computer Architecture course at ETH Zürich, focuses on assembly programming using LC3 and MIPS ISAs. The instructor, Prof. Onur Mutlu, begins by revisiting the von Neumann model and instruction cycle, then demonstrates how to write a simple LC3 program that sums integers using conditional branches for looping. He emphasizes the importance of translating problems into algorithms and flowcharts before coding. The lecture then introduces the three basic programming constructs: sequential, conditional, and iterative, and shows how they are implemented in assembly. A more complex example counts character occurrences in a file, utilizing trap instructions for I/O. Debugging techniques are discussed, including tracing, breakpoints, and testing corner cases, illustrated with a buggy multiplication program. The latter part of the lecture covers conditional statements and loops in MIPS assembly, including if-else and while/for loops, highlighting the use of conditional and unconditional branches. The lecture concludes with a brief mention of the set-less-than instruction for loop implementation.

162 words

Critical Evaluation

Value of the Information & Strength of the Argument

The lecture provides valuable insights into low-level programming, bridging the gap between high-level language constructs and machine code. The argumentation is solid, as the instructor systematically builds from simple examples to more complex ones, explaining the rationale behind each instruction and construct. The use of flowcharts and step-by-step translation to assembly clarifies the process. The debugging section is particularly valuable, demonstrating common pitfalls and the importance of testing boundary conditions. The comparison between LC3 and MIPS helps reinforce concepts and highlights architectural differences. The lecture is well-structured and pedagogically effective, making it a valuable resource for students learning assembly programming.

Scientific Rigor, Source Quality, Title Accuracy

The lecture is based on the textbook ‘Introduction to Computing Systems: From Bits and Gates to C/C++ & Beyond’ by Patt and Patel, which is a standard reference in the field. The instructor, Prof. Onur Mutlu, is a well-known researcher in computer architecture, adding credibility. The content is accurate and aligns with established knowledge. The title accurately reflects the content, as it is indeed a lecture on assembly programming. The description provides links to slides and recommended readings, which are relevant and from reputable sources (ETH Zürich, arXiv, etc.). The lecture does not cite specific external sources during the talk, but the description includes several papers on memory-centric computing and RowHammer, which are related to the broader course themes but not directly discussed in this lecture. Overall, the sources are reliable and appropriate for the topic.

251 words

Title / Content Match

The title accurately reflects the content: a lecture on assembly programming within a digital design and computer architecture course.

Quality & Reliability

9/10

Lecture by a renowned professor in computer architecture, based on established textbook material (Patt & Patel), with clear explanations and practical examples. The content is well-structured and pedagogically sound, though it is a lecture rather than peer-reviewed research.

Key Moments

Cited Sources

Concurring Sources

  • LC-3 ISA — Provides details on the LC-3 instruction set, consistent with the lecture.
  • MIPS architecture — Provides details on MIPS, consistent with the lecture.

External References

Contribution & Novelties

This lecture provides a clear and systematic introduction to assembly programming, emphasizing the connection between high-level constructs and machine code. It offers practical debugging tips and highlights common pitfalls, such as boundary conditions. The comparison between LC3 and MIPS helps solidify understanding. The lecture is part of a well-structured course, and the instructor’s expertise adds depth.

Pour aller plus loin :

105 words

Radar Profile

The radar profile shows high scores in information quality and reliability, with slightly lower scores in quantity and technical depth. This indicates a lecture that is well-presented and accurate, but may not cover an extensive amount of material or delve into extremely advanced topics, suitable for an introductory course.

Reliability 9/10