Um gate é simplesmente um ponto de entrada especialmente declarado (um ponto de entrada seria chamado de rotina, função ou procedimento no idioma de hoje). O compilador ou montador gerará informações adicionais para pontos de entrada que são portas. Um ponto de entrada de porta pode ser chamado pelo código que está sendo executado em um anel com menos privilégios do que o do gate. Pontos de entrada não-gate não podem ser chamados a partir do código em execução em anéis com números mais altos (menos privilegiados).
Veja a seção 8 do manual do AL-39 e a descrição da instrução call6 para mais detalhes. Aqui está um trecho:
As portas são procedimentos que residem em um determinado anel e destinam-se a fornecer acesso controlado a o anel. Um programa que está no anel R pode entrar em um anel interno apenas chamando um dos procedimentos de porta associados a este anel interno r. As portas devem ser cuidadosamente codificadas e não devem confiar em nenhum dado que tenha sido fabricado ou modificado pelo chamador em um anel menos privilegiado. Em particular, as portas devem validar todos os argumentos passados a eles pelo chamador, de modo a não comprometer a proteção de qualquer segmento que resida no anel interno.