Program to create a Register Array
Below is the Implementation of Register arrays :
C++
#include <iostream> using namespace std; class Register { private : int size; int *registers; // Pointer to an array of registers public : // Constructor to initialize registers with 0 Register( int size) { this ->size = size; this ->registers = new int [size]; // Dynamically allocate memory for registers array // Initialize all registers with 0 for ( int i = 0; i < size; ++i) { registers[i] = 0; } } // Destructor to deallocate memory ~Register() { delete [] registers; } // Method to read a register at a given address int readRegister( int address) { if (address >= 0 && address < size) { return registers[address]; } else { cout << "Invalid register address" << endl; return -1; // Return a default value indicating an error } } // Method to write a value to a register at a given address void writeRegister( int address, int value) { if (address >= 0 && address < size) { registers[address] = value; } else { cout << "Invalid register address" << endl; } } }; int main() { // Create a register object with 10 registers Register registerArray(10); // Write values to registers registerArray.writeRegister(0, 45); registerArray.writeRegister(5, 120); // Read values from registers cout << "Register 0: " << registerArray.readRegister(0) << endl; cout << "Register 5: " << registerArray.readRegister(5) << endl; cout << "Register 7: " << registerArray.readRegister(7) << endl; // Attempt to write to an invalid register address registerArray.writeRegister(15, 999); return 0; } |
Java
public class Register { private int size; private int [] registers; // Constructor to initialize registers with 0 public Register( int size) { this .size = size; this .registers = new int [size]; } // Method to read a register at a given address public int readRegister( int address) { if (address >= 0 && address < size) { return registers[address]; } else { System.out.println( "Invalid register address" ); return - 1 ; // Return a default value indicating an error } } // Method to write a value to a register at a given address public void writeRegister( int address, int value) { if (address >= 0 && address < size) { registers[address] = value; } else { System.out.println( "Invalid register address" ); } } public static void main(String[] args) { // Create a register array with 10 registers Register registerArray = new Register( 10 ); // Write values to registers registerArray.writeRegister( 0 , 45 ); registerArray.writeRegister( 5 , 120 ); // Read values from registers System.out.println( "Register 0: " + registerArray.readRegister( 0 )); System.out.println( "Register 5: " + registerArray.readRegister( 5 )); System.out.println( "Register 7: " + registerArray.readRegister( 7 )); // Attempt to write to an invalid register address registerArray.writeRegister( 15 , 999 ); } } // This code is contributed by akshitaguprzj3 |
Python
class Register: def __init__( self , size): self .size = size self .registers = [ 0 ] * size # Initialize all registers with 0 def read_register( self , address): if 0 < = address < self .size: return self .registers[address] else : print ("Invalid register address") return None def write_register( self , address, value): if 0 < = address < self .size: self .registers[address] = value else : print ("Invalid register address") # Create a register array with # 10 registers register_array = Register( 10 ) # Write values to registers register_array.write_register( 0 , 45 ) register_array.write_register( 5 , 120 ) # Read values from registers print ("Register 0 :", register_array.read_register( 0 )) print ("Register 5 :", register_array.read_register( 5 )) print ("Register 7 :", register_array.read_register( 7 )) # Attempt to write to an #invalid register address register_array.write_register( 15 , 999 ) |
C#
using System; public class Register { private int size; private int [] registers; // Constructor to initialize registers with 0 public Register( int size) { this .size = size; this .registers = new int [size]; } // Method to read a register at a given address public int ReadRegister( int address) { if (address >= 0 && address < size) { return registers[address]; } else { Console.WriteLine( "Invalid register address" ); return -1; // Return a default value indicating // an error } } // Method to write a value to a register at a given // address public void WriteRegister( int address, int value) { if (address >= 0 && address < size) { registers[address] = value; } else { Console.WriteLine( "Invalid register address" ); } } public static void Main( string [] args) { // Create a register array with 10 registers Register registerArray = new Register(10); // Write values to registers registerArray.WriteRegister(0, 45); registerArray.WriteRegister(5, 120); // Read values from registers Console.WriteLine( "Register 0: " + registerArray.ReadRegister(0)); Console.WriteLine( "Register 5: " + registerArray.ReadRegister(5)); Console.WriteLine( "Register 7: " + registerArray.ReadRegister(7)); // Attempt to write to an invalid register address registerArray.WriteRegister(15, 999); } } |
Javascript
class Register { // Constructor to initialize registers with 0 constructor(size) { this .size = size; this .registers = new Array(size).fill(0); } // Method to read a register at a given address readRegister(address) { if (address >= 0 && address < this .size) { return this .registers[address]; } else { console.log( "Invalid register address" ); return -1; } } // Method to write a value to a register at a given address writeRegister(address, value) { if (address >= 0 && address < this .size) { this .registers[address] = value; } else { console.log( "Invalid register address" ); } } } // Usage example let registerArray = new Register(10); // Write values to registers registerArray.writeRegister(0, 45); registerArray.writeRegister(5, 120); // Read values from registers console.log( "Register 0: " + registerArray.readRegister(0)); console.log( "Register 5: " + registerArray.readRegister(5)); console.log( "Register 7: " + registerArray.readRegister(7)); // Attempt to write to an invalid register address registerArray.writeRegister(15, 999); |
Output
Register 0: 45 Register 5: 120 Register 7: 0 Invalid register address
Register Array | Introduction, Implementation and Applications
A register array is a collection of contiguous registers in computer programming and digital hardware design. Registers are small and high-speed storage units within the computer’s CPU that store data temporarily for processing. A register array allows for the efficient storage and retrieval of the data elements using index-based addressing.
Contact Us