Buscar

06_ComparacaoDadosESaltos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 1
MATA49
Programação de Software Básico
Leandro Andrade
leandrojsa<at>dcc.ufba.br
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 2
Comparação de Dados
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 3
Comparação de Dados
● CMP
– A comparação é feita através da subtração 
entre os dois operandos, porém o resultado 
não é armazenado em nenhum 
registrador
– Usado para comparação de inteiros e 
caracteres
– Sintaxe: CMP destino, fonte
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 4
Comparação de Dados
● CMP
– Resultado = destino – fonte
– Resultados modificam os bits do registrador 
FLAGS
● Overflow (OF), Sign (SF), Zero (ZF), Carry 
(CF)
– A mudança nos flags variam se estamos 
tratando de números com ou sem sinal
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 5
Comparação de Dados
● CMP
– Comparação de números sem sinal
● Zero Flag e Carry Flag
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 6
Comparação de Dados
● CMP
– Compara de número com sinal
● Altera os flags Sign, Overflow e Zero
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 7
Comparação de Dados
● CMP
– Exemplos:
MOV AX, 5
CMP AX, 10 ; ZF = 0 and CF = 1
MOV AX, 1000
MOV CX, 1000
CMP CX, AX ;ZF = 1 and CF = 0
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 8
Comparação de Dados
● CMP
– Exemplos:
MOV EAX, 30
CMP EAX, -40 ; SF == OF 
MOV EBX, -10
CMP EBX, 10 ; SF != OF
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 9
Saltos Condicionais e Incondicionais
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 10
Saltos Incondicionais
● JMP
– Realiza um salto para uma instrução com um 
nome (label) indicado
– Realiza saltos para instruções após e antes 
do JMP
– Sintaxe:
● JMP <Destino>
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 11
Saltos Incondicionais
● JMP
– Exemplo:
MOV EAX, 0
Incremento:
INC EAX
JMP Incremento ;Loop infinito
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 12
Saltos Condicionais
● Podem condicionar os saltos aos resultados 
valores dos bits do FLAGS
● Podem condicionar os saltos de acordo com 
comparações entre inteiros (CMP)
● Comandos diferentes para avaliação de flags 
diferentes
● Sintaxe Geral:
– J<cond> <destino>
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 13
Saltos Condicionais
● Condicionais Simples
– Análise a partir dos flags:
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 14
Saltos Condicionais
● Condicionais Simples
– Exemplo:
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 15
Saltos Condicionais
● Condicionais Simples:
– Exemplo:
if ( EAX >= 5 )
EBX = 1;
else
EBX = 2;
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 16
Saltos Condicionais
● Exemplo:
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 17
Saltos Condicionais
● Condicionais de comparação
– Avaliação a partir da instrução 
● CMP <vleft>, <vright>
 
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 18
Saltos Condicionais
● Condicionais de comparação
– O Exemplo anterior pode ser expressado 
como:
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 19
Instrução LOOP
● Repete um bloco de instruções um número 
específico de vezes
● O número de vezes é contabilizado pelo 
valor numérico do registrador ECX
– A cada iteração o ECX é decrementado em 1 
 e verifica-se se novo valor de ECX é zero.
– Caso seja diferente de zero é feito um salto 
para início do bloco
● Sintaxe: LOOP <destino>
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 20
Instrução LOOP
● Exemplo:
mov ax,0
mov ecx,5
L1:
inc ax
loop L1
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 21
Instrução LOOPZ e LOOPE
● São idênticas (possuem o mesmo opcode)
● Semelhantes ao LOOP, porém além de 
verificar se ECX > 0, observam se Zero Flag 
(ZF) é igual a 1
● Sintaxe: LOOPZ/LOOPE <destino>
ECX = ECX - 1
if ECX > 0 and ZF = 1, jump to destination
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 22
Instrução LOOPNZ e LOOPNE
● Segue a mesma lógica do LOOPZ/LOOPE, 
só que Zero Flag deve ser 0
ECX = ECX - 1
if ECX > 0 and ZF = 0, jump to destination
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes