Microprocessors
Undergraduate course, University of Giresun, Department of Electrical Electronics Engineering, 2024
Microprocessors act as the heartbeat of modern computing systems, executing numerous tasks with remarkable speed and precision. The x86 architecture, renowned for its adaptability and extensive use in personal computers and servers, provides a foundation for understanding the inner workings of contemporary processors. Microprocessor architecture is the driving force behind computation, makes these small but powerful devices. The complexity of the x86 instruction set and the fundamentals of assembly language programming are essential to directly communicating with the microprocessor. This includes covering the binary world and using the symbolic language of assembly to manipulate registers, control flow, and interact with memory.
- Ders Öğretim Planı [pdf]
Announcements:
The resources:
- Emu8086 Microprocessor Emulator [website]
- CPU Emulator [website]
- Barry B. Brey, The Intel Microprocessors, Pearson.
- Topaloğlu, Nurettin, “X86 Tabanlı Mikroişlemci Mimarisi ve Assembly Dili”, Seçkin Yayınevi.
- Mikroişlemcilere Giriş Assembler ile Yazılım ve Arayüz Mehmet Bodur [pdf]
- Intel 8086 ile Mikroişlemci Programlamaya Giriş Şadi Çağatay Öztürk [pdf]
Past Exams:
- Soru-Cevap [vize][final]
- 2023-2024 [vize][final][bütünleme]
Chapter 1: Introduction, 8086 Architecture
This chapter provides a foundational overview of microprocessor basics. It introduces the fundamental concepts of microprocessors and explores the significance of the 8086 architecture in computer systems. The content focuses on essential principles, helping students grasp the core workings of microprocessors.
Chapter 2: 8086 Registers, Pins
Registers, acting as small, fast storage locations, play a crucial role in executing instructions and temporarily storing data. This chapter also covers the essential pins that facilitate communication and data transfer within the microprocessor. Understanding the interplay between registers and pins is foundational for understanding the complex operations of the 8086 architecture.
Chapter 3: Numbering systems, What is assembly language?
Understanding numbering systems, which include binary and hexadecimal, is crucial for effectively handling data in microprocessor contexts. At the same time, the section examines the characteristics and importance of assembly language, explaining its role as the bridge between human-readable code and machine-executable instructions. This detailed approach prepares the groundwork for a thorough exploration of microprocessor architecture and the complex interaction between hardware and software that shapes the field of computing.
Chapter 4: Memory access, Variables
Understanding the details of memory access is important, as it dictates how data is stored and retrieved. This chapter will systematically examine the mechanisms and principles controlling the memory operations in microprocessors. At the same time, this section covers the idea of variables, explaining how they work in storing and handling data.
Chapter 5: Interrupts, Common functions - emu8086.inc
Interrupts, as a pivotal mechanism, play a crucial role in managing the flow of execution and responding to external events. This chapter systematically explores the concepts and functionalities associated with interrupts, providing insights into their significance in microprocessor programming. Additionally, this section covers common functions encapsulated in the emu8086.inc library, express the essential features of their utility and integration within the broader context of assembly language programming.
Chapter 6: Arithmetic and logic instructions
As the building blocks of computational processes, arithmetic and logic instructions are essential for performing mathematical operations and logical comparisons within the microprocessor architecture. This chapter systematically examines the complexity of arithmetic and logic instructions, providing a detailed analysis of their operational mechanisms and practical applications in assembly language programming.
- Sunum-Aritmetik ve Mantıksal İşlemler [pdf]
Chapter 7: Flow control, Procedures
Flow control mechanisms determine the sequence of execution within a program, enabling efficient decision-making and iterative processes. This chapter systematically examines the various forms of flow control instructions and their applications in assembly language programming. Additionally, this chapter covers procedures, modular and reusable code blocks, fundamental for structured programming.
Chapter 8: Stack, Macros
The stack, a dynamic data structure, plays a fundamental role in facilitating subroutine calls, parameter passing, and local variable storage. This chapter systematically dissects the mechanisms and functionalities associated with stack operations, shedding light on its significance in the context of assembly language programming. Concurrently, this chapter covers macros, which offer a means of encapsulating and reusing code blocks.
Chapter 9: Controlling external devices
This chapter navigates through the critical aspect of controlling external devices, explains the methods and protocols for interfacing with peripheral hardware.
- Sunum-Aygıt Kontrolü [pdf]
Chapter 10: 8086 Instruction Set
As the foundation of x86 architecture, the 8086 instruction set defines the repertoire of operations that the microprocessor can execute. This chapter systematically dissects the instructions available, covering their classifications, formats, and practical applications in assembly language programming.
- Sunum-Komut Kümesi [pdf]
Chapter 11: 8086 Interrupt Functions
Interrupts, fundamental to microprocessor operations, enable the system to respond promptly to external events and prioritize certain tasks. This chapter systematically examines the diverse interrupt functions of the 8086 architecture, examining their classifications, vectors, and practical implementations in assembly language programming.
- Sunum-Kesme Fonksiyonları [pdf]