Produto Interno
entre Arrays
Bruno Edson
Ítalo Sivini
Patrícia Roseane
Plínio Tadeu
Produto Interno entre Arrays









Problema
Solução
Fluxograma
Código Alto Nível
Código Híbrido
Código em Assembly
Memória
Código em Hexadecimal e Binário
Conclusões
Problema
 Realizar o produto interno entre dois
arrays (A e B – tamanho 1000), ou seja,
elemento a elemento do array.
 Armazenar em outro array (C), da forma
big endian, a parte mais significativa
primeiro e a menos significativa depois.
 Como o produto tem o dobro do tamanho,
o array C ocupará o dobro do espaço
(2000 words).
Solução
 Realizar procedimento repetitivo:
 Laço (quantidade de vezes conhecida 1000)





Leitura dos Dados na Memória
Multiplicação
Escrita do Resultado na Memória
Atualização de Ponteiros
Teste
Fluxograma
 Fluxo do Programa:
Código Alto Nível
 Um comando em um laço:






for (i = 1000, i > 0, i = i - 1){
C(i) = A(i) * B(i);
}
Início => i = 1000
Lê no AC ou MQ => A(i) ... B(i)
Multiplica com MQ => ... * ...
Escreve a partir do AC => C(i) = ...
Atualiza => i = i - 1
Testa => i > 0
Código Híbrido
for(i = 1000, i > 0, i = i – 1){
MQ = A(i); // LOAD MQ, A(i)
[AC MQ] = B(i) * MQ; // MUL B(i)
C(i+) = AC; // STOR C(i+)
AC = MQ; // LOAD MQ
C(i-) = AC; // STOR C(i-)
}
Código em Assembly ...
0000:
0001:
0002:
...
1000:
1001:
...
2000:
2001:
2002:
...
3999:
4000:
...
JUMP M(INI, 0:19); X
A(1)
A(2)
...
A(1000)
B(1)
...
B(1000)
C(1+)
C(1-)
C(1000+)
C(1000-)
Código em Assembly (cont.)
D1:
D2:
D3:
INI:
0000100001h // Decrementa os arrays A e B
0000200000h // Decrementa 2 do array C
STOR C(1-); LOAD INI; // Verifica Fim
LOAD MQ, A(1000); MUL B(1000); //Lê A(i), * B(i)
STOR C(1000+); LOAD MQ; // Escreve C(i+) e
STOR C(1000-); LOAD INI; // C(i-)
SUB D1; STOR INI; // Atualiza A(i), B(i)
LOAD INI+1; SUB D2; // Atualiza C(i+)
STOR INI+1; LOAD INI+2;// e...
SUB D2; STOR INI+2; // C(i-)
SUB D3; JUMP +M(INI, 0:19) // Testa e Repete
FIM: ...
Memória ...
Memória (cont.)
Código em Hexadecimal e Binário
Conclusões
 Conhecer o funcionamento da máquina
IAS
 Aprender a trabalhar com instruções de
mais baixo nível
 Implementar algoritmos simples, como no
caso laços.
Download

Produto Interno entre Arrays