public String dump(int enderecoInicial, int enderecoFinal)
			throws MVNException{
		
		if(!isValidAddress(enderecoInicial)){
			throw new MVNException(ERR_INVALID_ADDRESS, enderecoInicial);
		}
		
		if(!isValidAddress(enderecoFinal)){
			throw new MVNException(ERR_INVALID_ADDRESS, enderecoFinal);
		}
		
		// Inverte os endereços de memória caso necessário
		if(enderecoInicial > enderecoFinal){
			int swap = enderecoInicial;
			enderecoInicial = enderecoFinal;
			enderecoFinal = swap;
		}
		
		StringBuilder out = new StringBuilder();
		
		int inicio = enderecoInicial - (enderecoInicial % DUMP_BYTES_PER_LINE);
		for(int i = inicio; i <= enderecoFinal; i++){
			if(i % DUMP_BYTES_PER_LINE == 0){
				if(i > enderecoInicial){
					out.append(System.getProperty("line.separator"));
				}
				out.append(String.format("[%2h]:", i));
			}
			out.append(' ');
			if(i < enderecoInicial){
				out.append("  ");
				// out.append(String.format("%2s",Bits8.HEXBYTE_SIZE));
			}else{
				out.append(store[i - minAddress].toHexString(Bits8.HEXBYTE_SIZE));
			}
		}
		out.append(System.getProperty("line.separator"));
		out.append("Final do dump.");
		
		return out.toString();
	}