Electronics & Embedded

Report-based engineering study

8086 Assembly Calculator

An 8086 and 8255 calculator design with assembly-language I/O, keypad input and a two-digit display in Proteus.

8086 assemblyProteus8255 PPIEMU8086

Project brief

This project implements a small arithmetic calculator around an 8086 microprocessor and an 8255 programmable peripheral interface. The source combines a Proteus circuit, a program-control flowchart and an assembly listing to explain the path from keypad input to a displayed result. The documented code reads the first operand, checks the selected operation, reads the second operand and branches to addition, subtraction, multiplication or division. Input and display functions use explicitly assigned port addresses, while status bits are inspected as part of the I/O sequence. A lookup table translates keypad positions into digits or operator selections. Results are stored in a byte and the display logic separates one-digit and two-digit cases, illustrating the connection between arithmetic instructions and peripheral control. The circuit brings together the processor, support logic, keypad interface and two seven-segment displays. The report also discusses single-step debugging with EMU8086 and register inspection as a way to diagnose the program. The evidence supports an educational microprocessor and assembly-integration case, with two single-digit operands as the stated implementation scope. Several prose descriptions go beyond the supplied listing, and some screenshot captions contain arithmetic mistakes. Accordingly, advanced scientific functions, comprehensive error handling and benchmark accuracy are not treated as demonstrated outcomes. The public visuals preserve the actual circuit and source-code structure without repeating those unsupported claims.

The engineering challenge

Coordinate keypad entry, operator selection, arithmetic execution and display output using low-level register and port operations.

Engineering approach

  1. Connect the 8086, interface devices, keypad and seven-segment displays in a Proteus schematic.
  2. Define the data variables, keypad lookup table and 8255 port addresses in assembly.
  3. Poll status bits and read the operand–operator–operand sequence.
  4. Dispatch arithmetic operations and format one-digit or two-digit display output.
  5. Use the report’s flowchart and described single-step debugging process to trace program behavior.

Results & observations

2 single-digit integersOperand scope

The implementation description and byte-based operand variables establish this bounded calculator scope.

4 operationsArithmetic branches

ADD, SUB, MUL and DIV branches are present in the supplied assembly listing.

200h–206hPort map

PORTA, PORTB, PORTC and the control-word register are assigned 200h, 202h, 204h and 206h respectively.

1 or 2 digitsDisplay format

The listing selects separate output routines according to the stored result’s size.

Features & capabilities

  • Assembly-language arithmetic
  • 8255 peripheral interfacing
  • Keypad lookup table
  • Status-bit polling
  • Seven-segment display control
  • Instruction-level debugging discussion

Software & engineering tools

8086 assembly, Proteus, 8255 PPI, EMU8086