Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Segmentation in the 8086 Processor

Interactive Arabic educational page explaining memory segmentation in the Intel 8086 processor.

This project helps students understand how the 8086 processor calculates physical memory addresses using the Segment:Offset addressing method.


Live Demo

https://bilalzamilahmed.page/Segmentation-in-the-8086-processor/

If the project is hosted under the original GitHub Pages domain, use:

https://bilalcodes1.github.io/Segmentation-in-the-8086-processor/

Project Overview

Segmentation in the 8086 Processor is a simple interactive web page created to explain how memory segmentation works in the Intel 8086 microprocessor.

The page allows users to enter a 16-bit Segment value and a 16-bit Offset value in hexadecimal format, then calculates the final physical address.

The project also includes visual memory representation, example buttons, and Arabic explanations to make the concept easier for students.


Main Formula

Physical Address = (Segment × 16) + Offset

In the 8086 processor, both Segment and Offset are 16-bit values. The segment value is shifted left by 4 bits, which is the same as multiplying it by 16. Then the offset is added to produce a 20-bit physical address.

This allows the 8086 processor to access up to 1 MB of memory.


Features

  • Arabic RTL educational interface
  • Interactive Segment and Offset input fields
  • Hexadecimal input validation
  • Physical address calculation
  • Decimal and hexadecimal result display
  • Visual representation of 1 MB physical memory
  • Segment highlight inside the memory bar
  • Physical address marker
  • Ready-made demo examples
  • Explanation cards for Segment, Offset, and memory addressing
  • Overlapping segment visualization
  • Responsive layout for desktop and mobile
  • Footer with developer information and social links
  • Built using pure HTML, CSS, and JavaScript

Educational Concepts Covered

This project explains:

  • Intel 8086 memory segmentation
  • Segment registers concept
  • Offset addressing
  • Physical address calculation
  • 20-bit memory addressing
  • Why the 8086 uses Segment × 16
  • 1 MB memory addressing range
  • Segment overlap
  • 64 KB segment size
  • Relationship between logical and physical addresses

How the Calculation Works

Example:

Segment = 1000h
Offset  = 0010h

Calculation:

Physical Address = (1000h × 10h) + 0010h
Physical Address = 10000h + 0010h
Physical Address = 10010h

So the final physical address is:

10010h

Page Sections

Input Section

Allows the user to enter:

  • Segment value
  • Offset value

Both values are entered as hexadecimal numbers.

Results Section

Displays:

  • Segment value in hex and decimal
  • Offset value in hex and decimal
  • Calculation formula
  • Final physical address
  • Memory location percentage

Memory Visualization

Shows a simplified visual representation of the 1 MB memory space.

It highlights:

  • Segment start location
  • Segment range
  • Final physical address marker

Formula Section

Displays the main formula used by the 8086 processor:

Physical Address = (Segment × 16) + Offset

Segment Overlap Section

Explains how nearby segments can overlap because each segment starts every 16 bytes.

Explanation Cards

Includes short Arabic explanations about:

  • What is a Segment?
  • What is an Offset?
  • Why multiply by 16?
  • Benefits of segmentation

Tech Stack

Category Technology
Structure HTML5
Styling CSS3
Logic JavaScript
Direction Arabic RTL
Hosting GitHub Pages

Project Structure

Segmentation-in-the-8086-processor/
├── index.html
└── README.md

The current version is built as a single-page static website.


How to Run Locally

  1. Clone the repository:
git clone https://github.com/bilalcodes1/Segmentation-in-the-8086-processor.git
  1. Open the project folder:
cd Segmentation-in-the-8086-processor
  1. Open index.html in your browser.

No installation, backend, or build step is required.


Example Inputs

You can try these examples inside the page:

Segment Offset Physical Address
1000 0010 10010h
A000 1234 A1234h
FFFF FFFF 10FFEFh

Note: In real 8086 addressing, physical addresses are 20-bit. Some high calculations may exceed the 1 MB range and wrap around depending on real-mode behavior.


Suggested Repository Topics

html
css
javascript
8086
microprocessor
memory-segmentation
physical-address
computer-architecture
arabic-website
university-project
github-pages

Purpose

The purpose of this project is to help Computer Science students understand 8086 memory segmentation through an interactive visual example instead of only reading the formula.

It can be used for:

  • Computer architecture study
  • Microprocessor course revision
  • Understanding Segment:Offset addressing
  • University presentations
  • Practical explanation of physical address calculation

Author

Bilal Zamil Ahmed Computer Science Student University of Anbar

GitHub: @bilalcodes1 YouTube: Bilal Codes


License

Educational project — All rights reserved © 2026 Bilal Zamil Ahmed.

About

Interactive Arabic educational page explaining 8086 memory segmentation and physical address calculation using HTML, CSS, and JavaScript.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages