Digital circuits, with their ability to manipulate binary data, form the foundation of modern electronic devices. On the other hand, assembly language, operating as a low-level programming language, provides nuanced control over a computer's hardware. The seamless convergence of these two realms empowers students with a deep comprehension of the interface between hardware and software, unlocking pathways for adept and streamlined code development at more advanced levels.
A course with the title of “Computer Systems and Assembly Language” is designed for undergraduate students majoring in Computer Science. The first half of the semester focuses on introducing combinational and sequential logic circuits. A free web-based circuit simulator allows students to design a basic CPU, which facilitates the formulation of an instruction set, empowering students to execute machine codes for fundamental operations. In the second half of the semester, the curriculum delves into assembly language. Through an online simulator, students explore the fetch-decode-execute cycle and gain insights into implementing essential structures such as the for-loop and if-else, commonly used in high-level computer languages.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.