Carregar apresentação
A apresentação está carregando. Por favor, espere
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 MAX: ;entrada AX, BX, CX
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 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 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
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.