Convenções

Voltar

Estas convenções referem-se às tabelas de descrição das instruções do PEPE.

As instruções sombreadas são reconhecidas pelo assemblador mas na realidade podem ser sintetizadas com recurso a outras, pelo que não gastam codificações de instruções. São oferecidas apenas como notação alternativa para comodidade do programador de linguagem assembly e maior clareza dos programas.

As linhas marcadas com “Livre” correspondem às codificações possíveis e ainda não ocupadas.

Os campos marcados com “XXXX” não são relevantes e podem ter qualquer valor (são ignorados pelo PEPE).

Na coluna “Acções” indica-se o significado de cada instrução numa linguagem de transferência de registos (RTL), cujos aspectos essenciais são indicados pela tabela seguinte.

Simbologia

Significado

Exemplo

Ri

Registo principal i (R0 a R15, incluindo RL, SP, RE, BTE e TEMP)

R1

PC

Registo Program Counter. Só usado do lado esquerdo da atribuição.

PC ¬ expressão

EIS

Endereço da Instrução Seguinte. Não é um registo, mas apenas uma notação que representa o valor do endereço da instrução seguinte (ou seja, é o endereço da instrução corrente acrescido de 2 unidades).

EIS

RER

Registo do Endereço de Retorno (interno ao processador, não acessível em assembly). Contém o endereço de retorno quando se invoca uma rotina ou excepção.

RER

Mw[end]

Célula de memória de 16 bits que ocupa os endereços end e end+1 (end tem de ser par, senão gera uma excepção). O PEPE usa o esquema Big-Endian, o que significa que o byte de menor peso de Mw[end] está no endereço end+1.

Mw[R1+2]

Se R1=1000H, o byte de menor peso está em 1003H e o de maior peso em 1002H

Mb[end]

Célula de memória de 8 bits cujo endereço é end (que pode ser par ou ímpar)

Mb[R3+R4]

 (i)

Bit i  de um registo ou de uma célula de memória

R2(4)

Mw[R1](0)

Ra(i..j)

Bits i a j (contíguos) do registo Ra (i >= j)

R2(7..3)

bit{n}

Sequência de n bits obtida pela concatenação de n cópias de bit, que é uma  referência de um bit (pode ser 0, 1 ou Ra(i))

0{4} equivale a 0000

R1(15){2} equivale a

 R1(15) || R1(15)

dest ¬ expr

Atribuição do valor de uma expressão (expr) a uma célula de memória ou registo (dest). Um dos operandos da atribuição (expressão ou destino) tem de ser um registo ou um conjunto de bits dentro do processador. O operando da direita é todo calculado primeiro e só depois se destrói o operando da esquerda, colocando lá o resultado de expr. dest e expr têm de ter o mesmo número de bits.

R1 ¬ M[R2]

M[R0] ¬ R4 + R2

R1(7..0) ¬ R2(15..8)

Z, N, C, V, IE, IE0 a IE4, DE, NP

Bits de estado no RE – Registo de Estado

V ¬ 0

Expr : acção

Executa a acção se expr for verdadeira (expr tem de ser uma expressão booleana)

((NÅV)ÚZ)=1 : 

PC ¬ EIS + 2

Ù, Ú, Å

E, OU, OU-exclusivo

R1 ¬ R2 Ù R3

||

Concatenação de bits (os bits do operando da esquerda ficam à esquerda, ou com maior peso)

R1 ¬ R2(15..8) || 00H