1 / 13

Produto Interno entre Arrays

Produto Interno entre Arrays. Bruno Edson Ítalo Sivini Patrícia Roseane Plínio Tadeu. 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. Produto Interno entre Arrays. Problema.

bly
Download Presentation

Produto Interno entre Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Produto Internoentre Arrays Bruno Edson Ítalo Sivini Patrícia Roseane Plínio Tadeu

  2. 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 Produto Interno entre Arrays

  3. 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).

  4. 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

  5. Fluxograma • Fluxo do Programa:

  6. 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

  7. 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-) }

  8. Código em Assembly ... 0000: JUMP M(INI, 0:19); X 0001: A(1) 0002: A(2) ... ... 1000: A(1000) 1001: B(1) ... ... 2000: B(1000) 2001: C(1+) 2002: C(1-) ... 3999: C(1000+) 4000: C(1000-) ...

  9. Código em Assembly (cont.) D1: 0000100001h // Decrementa os arrays A e B D2: 0000200000h // Decrementa 2 do array C D3: STOR C(1-); LOAD INI; // Verifica Fim INI: 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: ...

  10. Memória ...

  11. Memória (cont.)

  12. Código em Hexadecimal e Binário

  13. 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.

More Related