The Control Unit class is responsible for decoding instructions and generating control signals.
• The decode_instruction method parses the instruction string into individual components.
• The generate_control_signals method, in this simple design, doesn't specify control
signals.
1.3 Register File
class RegisterFile:
def __init__(self, num_registers):
self.registers = [0] * num_registers
def read_register(self, register_number):
return self.registers[register_number]
def write_register(self, register_number, value):
self.registers[register_number] = value
1.4 Memory Unit
class MemoryUnit:
def __init__(self, size):
self.memory = [0] * size
def read_memory(self, address):
return self.memory[address]
def write_memory(self, address, value):
self.memory[address] = value
1.5 Instruction Set Architecture (ISA):
LOAD destination, source STORE source, destination
ADD destination, operand1, operand2
SUBTRACT destination, operand1, operand2
HALT
Assembly Language Implementation:
2.1 Implement Key Instructions:
; Sample program to add two numbers
LOAD R1, 5
; Load value 5 into register R1
LOAD R2, 7
; Load value 7 into register R2
ADD R3, R1, R2 ; Add values in R1 and R2, store result in R3
STORE R3, 0x100 ; Store result in memory address 0x100
HALT
; Halt the processor
2.2 Sample Program:
; Sample program to demonstrate instructions
LOAD R1, 10
; Load value 10 into register R1
LOAD R2, 5
; Load value 5 into register R2
ADD R3, R1, R2 ; Add values in R1 and R2, store result in R3
SUBTRACT R4, R3, 2 ; Subtract 2 from the value in R3, store result in R4
STORE R4, 0x200 ; Store result in memory address 0x200
HALT
; Halt the processor