O endereço efetivo de um dado ou uma instrução é obtido por uma regra de interpretação expresso como um algoritmo. A memória da máquina simples é de 256 palavras; portanto endereços são de 8 bits.
Z\Effective.Address<0:7>
Z é o registrador que guarda o resultado do cálculo do endereço efetivo. O algoritmo para obtenção do endereço efetivo é especificado assim:
Z possui uma estrutura () e um corpo do procedimento. O corpo do
procedimento, compreendido entre Begin e End, consiste de duas
linhas, separadas por ponto-e-vírgula (;). O separador
ponto-e-vírgula é usado para indicar comandos que podem ser
executados em paralelo. No ISPS, o paralelismo ou concorrência é
o padrão, quando comandos devem ser executados em sequência, tal
deve ser especificado explicitamente, pela palavra Next, a ser visto
mais tarde.
A linha
If Ibit Eql 0 => Z <- Adrindica a execução condicional do comando seguido por . No caso, o comando é executado somente se Ibit for igual a 0. Vemos assim que é uma espécie de ``then''.
O operador de atribuição é representado em ISPS por
(flechinha para esquerda). Quando o lado esquerda tem menos bits que
o lado direito, então o valor do lado direito é truncado,
ignorando os bits esquerdos a mais.
O corpo de Z pode também ser expresso de um outro modo, como seguinte:
Aqui ``Decode Ibit '' é usado para indicar um grupo de ações mutuamente exclusivas, dependendo do valor de Ibit. As ações correspondente são expressas dentro do Begin End interno, conforme o valor de Ibit. Vemos que Decode é parecido com o comando ``case''.