Buscar

05_IntLinguagemMontagem2

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 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

Você também pode ser Premium ajudando estudantes

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
Instruções para operações aritméticas
Parte 2
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 3
Operações Aritméticas
● MUL:
– Multiplicação de inteiros sem sinal
– O operando pode ser um registrador ou 
variável
● Não pode ser um operador imediato
– Sintaxe: MUL <operando>
● O resultado é armazenado AL, AX, EAX 
(dependendo do tamanho do operando)
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 4
Operações Aritméticas
● MUL:
– Exemplos:
MUL reg8/mem8 ;AL = AL * reg8/mem8
MUL reg16/mem16 ;AX = AX * reg16/mem16
MUL reg32/mem32 ;EAX = EAX * reg32/mem32
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 5
Operações Aritméticas
● MUL
– Quando o produto gera um valor maior que o 
registrador, o resultado é dividido com 
outro registrador
● Carry Flag (CF) é marcado um 1 quando isso 
ocorre
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 6
Operações Aritméticas
● MUL
– Exemplos:
MOV AL,5h
MOV BL,l0h
MUL BL ;AL = 50h AH=0 CF=0
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 7
Operações Aritméticas
● MUL
– Exemplos:
val1 DW 2000h
val2 DW 0100h
MOV AX, val1
MUL val2 ;DX:AX=00200000h CF=1
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 8
Operações Aritméticas
● MUL
– Exemplos:
MOV EAX ,12345h
MOV EBX , l000h
MUL EBX
;EAX=0000000012345000h CF = 0
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 9
Operações Aritméticas
● IMUL:
– Usada para multiplicação de números com 
sinal
– Pode-se utilizar operadores imediatos, 
variáveis e registradores
– Sintaxe:
IMUL <destino>, <fonte1>, <fonte2>
● Número de operando pode variar
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 10
Operações Aritméticas
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 11
Operações Aritméticas
● IMUL
– Exemplos:
IMUL ECX ;EAX = EAX * ECX
IMUL BX, Bla ;BX = BX * Bla
IMUL BX, 10 ;BX = BX * 10
IMUL DX, 10, -2 ;DX = 10 * -2
IMUL BX, CX, Bla ;BX = CX * Bla
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 12
Operações Aritméticas
● IMUL
– Quando os bits superiores do resultado são 
uma extensão do sinal o Flag OverFlow 
(OF) é 0. Do contrário é 1
● Em outras palavras: Quando não necessita-se 
dos bits da metade superior do resultado 
para representação do sinal o OF=0
– Exemplos:
MOV AL, 48
MOV BL, 4
IMUL BL ; AX =+192 = 00C0h OF=1
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 13
Operações Aritméticas
● IMUL
– Exemplos:
MOV AL, -4
MOV BL, 4
IMUL BL ; AX = -16 = FFF0h OF=0
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 14
Operações Aritméticas
● IMUL
– Exemplos:
MOV AX, 48
MOV BX, 4
IMUL BX ;DX:AX=000000C0h, OF=0
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 15
Operações Aritméticas
● DIV
– Divisão de inteiros sem sinal
– O operando pode ser um registrador ou 
variável
● Não pode ser um operador imediato
– Sintaxe: DIV <operando>
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 16
Operações Aritméticas
● DIV
– Exemplos
MOV AX, 0083h
MOV BL, 2
DIV BL ;AL=41h AH=01h
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 17
Operações Aritméticas
● DIV
– Exemplos
MOV DX, 0 ;É preciso limpar o 
registrador de resto
MOV AX, 8003h
MOV CX, 10h
DIV CX ;AX = 008Oh, DX = 0003h
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 18
Operações Aritméticas
● IDIV
– Divisão de inteiros com sinal
● Preserva o sinal resultante da operação
– Mesma estrutura de operandos que o DIV
● Sintaxe: IDIV <operando>
– Necessita de instruções para estender o 
sinal (CBW, CWD, CDQ)
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 19
(CBW, CWD, CDQ...
● São instruções para estender o sinal de 
números inteiros
– CBW (convert byte to word)
● Estende o sinal do AL para o AH
● Exemplo:
MOV AL, 9Bh ; -101
CBW ;AX = FF9Bh = -101
– CWD (convert word to double word)
● Estende o sinal de AX para DX
● Exemplo: MOV AX, FF9Bh 
 CWD ;DX:AX = FFFFFF9Bh
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 20
CBW, CWD, CDQ...)
– CDQ (convert doubleword to quadword)
● Estende o sinal do EAX para o EDX
● Exemplo:
MOV EAX, FFFFFF9Bh
CDQ ;EDX:EAX = FFFFFFFFFFFFFF9Bh
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 21
Operações Aritméticas
● IDIV
– Para execução do IDIV é necessário 
estender o sinal do dividendo para 
conservar o sinal no resto
● Usaremos CBW, CWD, ou CDQ
– Exemplo:
MOV AL, -48
CBW ;Sinal estendido em AH
MOV BL, 5
IDIV BL ; AL = - 9 , AH = -3
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 22
Operações Aritméticas
● IDIV
– Exemplo:
MOV AX, -5000
CWD ;estende o sinal para DX
MOV BX, 256
IDIV BX ;AX= -19 DX=-136
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 23
Operações Aritméticas
● DIV e IDIV
– Se o resultado da divisão for maior o que 
espaço destinado ou for aplicada uma 
divisão por zero isso gerará uma 
interrupção que finalizará o programa
MOV AX, 1000h
MOV BL, 10h
DIV BL ; AL não comporta 100h!
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 24
Operações Aritméticas
● Execícios...”O poder é de vocês...”
a) var4 = (var1 * 5 ) / (var2 - 3 );
b) var4 = (var1 * -5) / (-var2 % var3);
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 25
Operações Aritméticas
a) var4 = (var1 * 5 ) / (var2 - 3 );
MOV EAX, var1
MOV EBX, 5
MUL EBX
MOV EBX, var2
SUB EBX, 3
DIV EBX
MOV var4, EAX
CIÊNCIA DA COMPUTAÇÃO - UFBA
PROF. LEANDRO ANDRADE 26
Operações Aritméticas
b) var4 = (var1 * -5) / (-var2 % var3);
MOV EAX, var2
NEG EAX
CDQ
IDIV var3
MOV EBX, EDX
MOV EAX, -5 
IMUL var1
IDIV EBX
MOV var4, EAX
	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
	Slide 23
	Slide 24
	Slide 25
	Slide 26

Outros materiais