Para ultrapassar as limitações do método anterior usa-se muitas vezes a passagem de parâmetros através de apontadores para posições de memória, apontadores esses contidos em registos.
Para isso carregam-se os registos com os endereços das posições de memória que contém as variáveis que queremos manipular dentro dos procedimentos, por exemplo usando a instrução LEA. Dentro do procedimento usamos os parêntesis rectos para aceder às posições apontadas pelos registos.
Este método é mais versátil que o anterior pois permite que se passe para o procedimento apontadores para quaisquer posições de memória. Além disso tanto é possível passar apontadores para dados simples como para arrays ou strings.