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.