Microprocessors are the main part of all digital systems, and solve design problems. Microprocessors combine software and hardware in order to provide a framework for operation. Microprocessors are the basic programmable component, and where the other components of digital systems can be applied.

Digital computer
The digital computer is a set of logic devices that perform an algorithm on data calculation and a wide range of other functions. The digital computer consists of a microprocessor, memory and input/output devices. A microprocessor (MPU or CPU) contains a program, and the logic to a step through algorithm that uses data stored in the digital computer’s memory.
Memory is the data storage organised as the linear sequence of individually accessible locations. Microprocessors access the individual memory element by providing a specific location in the memory array. The input/output elements allow the microprocessor to communicate with the other devices or obtain new data.
Programs that are running within microprocessors are composed of multiple individual instructions, that explain how microprocessors can perform an algorithm.
Memory is a very important part of a digital computer, the latter constantly accesses the memory in order to use data for algorithm performance. There are various types of memory.
Random access memory (RAM), is the memory resource that can be in a random order, where the data can be read or written. The read process extracts data from the memory in order to use it during the algorithm performance by the microprocessor. The write process is the process of delivering data to the memory unit. The other important process is reading the boot code of the microprocessor.
This code is always stored in (ROM) read only memory. ROM usually stores the data that should be immediately accessed. A microprocessor can communicate with other parts of the computer via data buses. A data bus is a set of wires that transfer data between the microprocessor and other devices. The main characteristics are the amount of bits it can transfer at any moment in time.
Figure 1. Microprocessor communicating with other devices.
How does a microprocessor work? Every microprocessor operates using a set of standard operations:
• arithmetic (performing operations with data)
• logic (performing operations with data)
• transfer (writing data to the memory or extracting data from the memory)
• branch operations (processing operations in a specific order).
The microprocessor works by executing the opcode (operational code),  a unique single instruction represented in a binary way. Each opcode executes per one clock cycle. However, some more complex opcodes can be executed during a few clock cycles. When microprocessors fetch the opcode, the process of instruction decoding begins – when the microprocessor scans the opcode to realise what operations should be performed.
The accumulator temporarily stores the opcode data while it is processed. The size of the accumulator is equal to the largest amount of data that the microprocessor can perform during one operation. The program counter keeps the position of another instruction in the memory so the microprocessor can reach it.
Normally the microprocessor is incremented after executing one more operation, and the program counter should fetch the next operation. This microprocessor operation is linear. However, if the microprocessor’s opeartions are branch type the microprocessor operates in a non-linear way.
Programs are normally organised as subroutines, or blocks of instructions.  A microprocessor’s operation usually follows a standard order, however two events may interrupt the standard order of the microproccessor operation – reset and interrupt. Reset operation involves the boot operation.