public Address malloc(int size,int howmany){
  int result=nextReservableAddress;
  nextReservableAddress+=size * howmany;
  if (nextReservableAddress > (MEMSIZE + memAddressStart)) {
    addressOutOfRange=true;
    return null;
  }
  return new Address(Op.MEM,size,result);
}

public Address malloc ( int size , int howmany ) { int result = nextReservableAddress ; nextReservableAddress += size * howmany ; if ( nextReservableAddress > ( MEMSIZE + memAddressStart ) ) { addressOutOfRange = true ; return null ; } return new Address ( Op . MEM , size , result ) ; }
allocates / reservates memory : a specified block size in bytes , multiplied by a given number of blocks . currently does not check whether the starting address is a multiple of the requested size , e . g . it is perfectly possible that a 4 - byte block will start at address 3
