1 / 14

Linguagem de Montagem

Linguagem de Montagem. Vetores. Conteúdo. Correção Exercícios Vetores Exercício Prova 03/12. Exercício 1.

wenda
Download Presentation

Linguagem de Montagem

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. Linguagem de Montagem Vetores

  2. Conteúdo • Correção Exercícios • Vetores • Exercício • Prova 03/12

  3. Exercício 1 • Escreva um procedimento chamado MAX que receba três inteiros do programa principal e retorne o máximo dos três em AX. O programa principal deve pedir ao usuário que entre os três inteiros e mostrar na tela o maior deles utilizando para isso o procedimento MAX.

  4. Procedimento MAX segment .bbs x resw 1 y resw 1 z resw 1 segment .text ;ler x,y,z mov AX,x mov BX,y mov CX,z call MAX ;escrever AX MAX: ;entrada AX, BX, CX ;saída maior em AX cmp AX, BX jge prox xchg AX,BX prox: cmp AX,CX jge fim xchg AX,CX fim: ret

  5. Procedimento MAX prox: cmp AX,CX jge fim xchg AX,CX fim: pop EBP ret MAX: push EBP mov EBP, ESP mov AX,[EBP+12] mov BX,[EBP+10] mov CX,[EBP+8] cmp AX, BX jge prox xchg AX,BX segment .bbs x resw 1 y resw 1 z resw 1 segment .text ;ler x,y,z push [x] push [y] push [z] call MAX add ESP,6 ;escrever AX

  6. Vetores • Usamos vetores quando utilizamos a representação de strings. • Matrizes unidimensionais • Vetor em C: int nota[10]; nota[0] ... nota[9]

  7. Vetores • Atributos dos vetores em linguagem de alto nível: • Nome do vetor (nota) • Número de elementos (10) • Tamanho de cada elemento (4 bytes) • Tipo do elemento (inteiro) • Intervalo de índices (0 a 9)

  8. Vetores • Através destas informações a quantidade de espaço de armazenamento necessário para o vetor pode ser calculado da seguinte forma: espaço de armazenamento = número de elementos x tamanho do elemento em bytes = 10 x 4 = 40 bytes

  9. Vetores • Na linguagem assembly vetores são implementados através da alocação do espaço de armazenamento necessário nota resd 10 • Um nome para o vetor pode ser determinado para o espaço de armazenamento, mas isso será tudo que será possível na linguagem Assembly

  10. Vetores • Você precisa saber como o vetor será armazenado para acessar os elementos deste. • Para vetores, sua representação na memória é direta. • Os elementos do vetor são armazenados linearmente. • Para acessar um elemento precisamos saber o valor do deslocamento em bytes desde o inicio do vetor.

  11. Vetores • Sabemos o tamanho em bytes de cada elemento. deslocamento = número do elemento x tamanho do elemento em bytes.

  12. Vetores • Exemplo: • Nota do sexto estudante • Elemento 5 de nota • Deslocamento = 5 x 4 = 20

  13. Exemplo segment .data nota dd 40,50,70,94,81 segment .text mov AX,0 ;soma das notas mov CX,5 ;contador mov ESI,0 ;indice repete: add AX,[nota+ESI*4] inc ESI loop repete

  14. Exercícios • Utilize o programa anterior para mostrar o maior e o menor dos três inteiros reescrevendo o procedimento e renomeando este para MINMAX. • Escreva um programa em Assembly que leia um vetor com 20 números inteiros em uma ordem qualquer e chame um procedimento ORDENA que ordena este vetor em ordem crescente.

More Related