13
Produto Interno Produto Interno entre Arrays entre Arrays Bruno Edson Bruno Edson Ítalo Sivini Ítalo Sivini Patrícia Roseane Patrícia Roseane Plínio Tadeu Plínio Tadeu

Produto Interno entre Arrays

  • Upload
    bly

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Produto Interno entre Arrays

Produto InternoProduto Internoentre Arraysentre Arrays

Bruno EdsonBruno EdsonÍtalo SiviniÍtalo Sivini

Patrícia RoseanePatrícia RoseanePlínio TadeuPlínio Tadeu

Page 2: Produto Interno entre Arrays

Produto Interno entre ArraysProduto Interno entre Arrays ProblemaProblema SoluçãoSolução FluxogramaFluxograma Código Alto NívelCódigo Alto Nível Código HíbridoCódigo Híbrido Código em AssemblyCódigo em Assembly MemóriaMemória Código em Hexadecimal e BinárioCódigo em Hexadecimal e Binário ConclusõesConclusões

Page 3: Produto Interno entre Arrays

ProblemaProblema

Realizar o produto interno entre dois Realizar o produto interno entre dois arrays (A e B – tamanho 1000), ou seja, arrays (A e B – tamanho 1000), ou seja, elemento a elemento do array.elemento a elemento do array.

Armazenar em outro array (C), da forma Armazenar em outro array (C), da forma big endian, a parte mais significativa big endian, a parte mais significativa primeiro e a menos significativa depois.primeiro e a menos significativa depois.

Como o produto tem o dobro do tamanho, Como o produto tem o dobro do tamanho, o array C ocupará o dobro do espaço o array C ocupará o dobro do espaço (2000 words).(2000 words).

Page 4: Produto Interno entre Arrays

SoluçãoSolução

Realizar procedimento repetitivo:Realizar procedimento repetitivo: Laço (quantidade de vezes conhecida - Laço (quantidade de vezes conhecida -

1000)1000) Leitura dos Dados na MemóriaLeitura dos Dados na Memória MultiplicaçãoMultiplicação Escrita do Resultado na MemóriaEscrita do Resultado na Memória Atualização de PonteirosAtualização de Ponteiros TesteTeste

Page 5: Produto Interno entre Arrays

FluxogramaFluxograma

Fluxo do Programa:Fluxo do Programa:

Page 6: Produto Interno entre Arrays

Código Alto NívelCódigo Alto Nível

Um comando em um laço:Um comando em um laço:for (i = 1000, i > 0, i = i - 1){for (i = 1000, i > 0, i = i - 1){

C(i) = A(i) * B(i);C(i) = A(i) * B(i);}}

Início => i = 1000Início => i = 1000 Lê no AC ou MQ => A(i) ... B(i)Lê no AC ou MQ => A(i) ... B(i) Multiplica com MQ => ... * ...Multiplica com MQ => ... * ... Escreve a partir do AC => C(i) = ...Escreve a partir do AC => C(i) = ... Atualiza => i = i - 1Atualiza => i = i - 1 Testa => i > 0Testa => i > 0

Page 7: Produto Interno entre Arrays

Código HíbridoCódigo Híbrido

for(i = 1000, i > 0, i = i – 1){for(i = 1000, i > 0, i = i – 1){

MQ = A(i); MQ = A(i); // LOAD MQ, A(i)// LOAD MQ, A(i)

[AC MQ] = B(i) * MQ; [AC MQ] = B(i) * MQ; // MUL B(i)// MUL B(i)

C(iC(i++) = AC; ) = AC; // STOR C(i+)// STOR C(i+)

AC = MQ; AC = MQ; // LOAD MQ// LOAD MQ

C(iC(i--) = AC; ) = AC; // STOR C(i// STOR C(i--))

}}

Page 8: Produto Interno entre Arrays

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

Page 9: Produto Interno entre Arrays

Código em Assembly (cont.)Código em Assembly (cont.)

D1:D1: 0000100001h 0000100001h // Decrementa os arrays A e B// Decrementa os arrays A e BD2:D2: 0000200000h 0000200000h // Decrementa 2 do array C// Decrementa 2 do array CD3: D3: STOR C(1-); LOAD INI; STOR C(1-); LOAD INI; // Verifica Fim// Verifica FimINI: INI: LOAD MQ, A(1000); MUL B(1000); LOAD MQ, A(1000); MUL B(1000); //Lê A(i), * B(i)//Lê A(i), * B(i)

STOR C(1000+); LOAD MQ; STOR C(1000+); LOAD MQ; // Escreve C(i+) e// Escreve C(i+) eSTOR C(1000-); LOAD INI; STOR C(1000-); LOAD INI; // C(i-)// C(i-)SUB D1; STOR INI; SUB D1; STOR INI; // Atualiza A(i), B(i)// Atualiza A(i), B(i)LOAD INI+1; SUB D2; LOAD INI+1; SUB D2; // Atualiza C(i+)// Atualiza C(i+)STOR INI+1; LOAD INI+2;STOR INI+1; LOAD INI+2;// e...// e...SUB D2; STOR INI+2; SUB D2; STOR INI+2; // C(i-)// C(i-)SUB D3; JUMP +M(INI, 0:19) SUB D3; JUMP +M(INI, 0:19) // Testa e Repete// Testa e Repete

FIM:FIM: ......

Page 10: Produto Interno entre Arrays

Memória ...Memória ...

Page 11: Produto Interno entre Arrays

Memória (cont.)Memória (cont.)

Page 12: Produto Interno entre Arrays

Código em Hexadecimal e BinárioCódigo em Hexadecimal e Binário

Page 13: Produto Interno entre Arrays

ConclusõesConclusões

Conhecer o funcionamento da máquina Conhecer o funcionamento da máquina IASIAS

Aprender a trabalhar com instruções de Aprender a trabalhar com instruções de mais baixo nívelmais baixo nível

Implementar algoritmos simples, como no Implementar algoritmos simples, como no caso laços.caso laços.