Microprocessors
Undergraduate course, Giresun University, Department of Electrical Electronics Engineering, 2024
Microprocessors execute instructions, process data, and coordinate the operations of modern computing systems. The 8086 architecture provides a useful foundation for studying processor organization, registers, memory access, instruction execution, and low-level programming. The 8086 is an early member of the x86 family. Although modern x86-64 processors are substantially more complex, the 8086 remains useful for introducing registers, segmentation, instruction execution, addressing modes, interrupts, and assembly programming.
Ders Öğretim Planı
Announcements
There are currently no announcements.
The Resources
- Emu8086 Microprocessor Emulator
- CPU Emulator adapted from
- 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:
2023-2024
vize (pdf) | final (pdf) | bütünleme (pdf)Soru Cevap
vize (pdf) | final (pdf)
Preliminary Materials:
Chapter 1: Introduction to Microprocessors and the 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 and Pins
Registers are small, high-speed storage locations used during instruction execution. This chapter introduces the general-purpose, segment, pointer, index, and status registers of the 8086. It also examines the processor’s external pins, including address, data, control, interrupt, and timing signals.
Chapter 3: Number Systems and 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. Assembly language provides symbolic representations of machine instructions, registers, memory operands, and control-flow operations. An assembler translates the source code into machine code that the processor can execute.
Chapter 4: Memory access, Variables
Understanding the details of memory access is important, as it dictates how data is stored and retrieved. This chapter examines how the 8086 addresses memory using segment and offset values. It introduces physical address calculation, memory operands, data declarations, variable sizes, and the movement of data between registers and memory.
Chapter 5: Interrupt Fundamentals and the emu8086.inc Library
Interrupts, as a pivotal mechanism, play a crucial role in managing the flow of execution and responding to external events. This chapter explores the concepts and functionalities associated with interrupts, and it covers common functions encapsulated in the emu8086.inc library.
Chapter 6: Arithmetic and Logic Instructions
Arithmetic and logic instructions are essential for performing mathematical operations and logical comparisons. This chapter covers arithmetic, logical, shift, and rotate instructions. It also examines how these operations affect status flags such as Carry, Zero, Sign, Overflow, and Parity, which are later used by conditional jumps.
Chapter 7: Flow Control and Procedures
Flow control mechanisms determine the sequence of execution within a program. This chapter also introduces procedures, which are modular and reusable code blocks that support structured assembly-language programming.
Chapter 8: Stack, Macros
The 8086 stack is addressed through the SS and SP registers. It stores return addresses, saved register values, parameters, and temporary data during procedure calls. This chapter covers PUSH, POP, CALL, RET, and stack discipline. Concurrently, macros encapsulate and reuse code blocks efficiently. Unlike procedures, macros are expanded by the assembler at each point of use. This may reduce call overhead but can increase program size.
Chapter 9: Input/Output and External Device Control
This chapter introduces input/output ports and the IN and OUT instructions. It examines how assembly programs communicate with external devices and how device status, control, and data registers are accessed.
Chapter 10: 8086 Instruction Set Review
The 8086 instruction set defines the operations the microprocessor can execute, covering their classifications, formats, and practical applications.
Chapter 11: BIOS and DOS Interrupt Services
Interrupts enable the system to respond promptly to external events and prioritize tasks. This chapter examines the diverse interrupt functions of the 8086 architecture.