Microprocessors

Undergraduate course, University of Giresun, Department of Electrical Electronics Engineering, 2024

microprocessor Microprocessors serve as the heartbeat of modern computing systems, executing a numerous tasks with remarkable speed and precision. The x86 architecture, known for its ability to adapt and widespread usage in personal computers and servers, lays the groundwork for understanding the inner workings of modern processors. Our journey starts with an overview of microprocessor architecture, delving into the core components that make these tiny yet powerful devices the driving force behind computation. As navigating through the complexity of the x86 instruction set, we will explore the fundamentals of assembly language programming – a low-level language that allows us to communicate directly with the microprocessor. Throughout the course, it is covered the binary world, symbolic language of assembly to manipulate registers, control flow, and interact with memory.

Duyurular

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]

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.

  • Sunum-Sayı Sistemleri [pdf]
  • Sunum-Assembly Dili [pdf]

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.

  • Sunum-Bellek Erişimi [pdf]
  • Sunum-Değişkenler [pdf]

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.

  • Sunum-Akış Kontrolü [pdf]
  • Sunum-Prosedürler [pdf]

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]