Exercícios de programação assembly e número de endereços (operandos)

O número de endereços se refere à quantidade de operandos explicitados nas intruções. Para praticar um pouco de programação de baixo nível, com um assembly didático, considere máquinas de zero, um, dois e três endereços, lembrando que a máquina de 0 endereço utiliza pilha e não tem como ser puramente de 0 endereço.

Escreva, para cada uma dessas máquinas, um programa que implemente a função:

X = (A + B x C)

As instruções disponíveis para cada uma das máquinas são:

Resposta (0, 1, 2 e 3 endereços na sequência):

PUSH A ; coloca A no topo da pilha

PUSH B ; coloca B no topo da pilha

PUSH C ; coloca C no topo da pilha

MUL ; B x C no topo da pilha

ADD ; (B x C) + A no topo da pilha

POP X ; retira o resultado do topo da pilha e guarda em X


LOAD B ; AC <- B AC = B

MUL C ; AC <- AC x C AC = B x C

ADD A ; AC <- AC + A AC = A + B x C

STORE X ; X <- AC X = A + B x C


MOVE X,B ; X <- B X = B

MUL X,C ; X <- X x C X = B x C

ADD X,A ; X <- X + A X = A + B x C


MUL X,B,C ; X <- B x C X = B x C

ADD X,X,A ; X <- X + A X = A + B x C


Agora, que tal praticar com a expressão a seguir?

X = (A + B2)

C


Retornar para Arquitetura de Computadores.