Arquitetura de Computadores
Engenharia de Computação / Ciência da Computação
Resumo Conjunto de Instruções e Assembly X86
_______________________________________________
Page 8 of 22
4) Qual a quantidade de bits total de cada formato de instrução? Qual formato tem menos bits e, qual formato tem
mais bits?
5) Qual a quantidade de bits total para cada código gerado? Qual formato tem menos bits e, qual formato tem mais
bits?
6) Qual a quantidade total de acessos à memória para cada código gerado? Qual formato tem menos acessos e, qual
formato tem mais acessos?
7) De acordo com os cálculos realizados nas questões anteriores, uma instrução com um operando é mais vantajosa
que uma instrução de três operandos? Explique.
SOLUÇÃO
Primeiro você deve se perguntar qual operação tem prioridade de resolução. Lembram-se das prioridades de
operadores? Precisam também resolver a expressão de dois em dois operandos. Lembrem-se, o processador só manipula
operações com dois operandos, mesmo que o formato da instrução tenha mais de dois operandos. Devemos nos lembrar aqui
da matemática básica:
X = A * ( B + C * D – E / F ) 1.º Fazemos a multiplicação C * D
X = A * ( B + T1 – E / F ) O resultado da multiplicação fica armazenado em uma variável temporária T1
X = A * ( B + T1 – E / F ) 2.º Fazemos da divisão E / F
X = A * ( B + T1 – T2 ) O resultado da divisão fica armazenado em uma variável temporária T2
X = A * ( B + T1 – T2 ) 3.º Fazemos a soma B + T1
X = A * ( T3 – T2 ) O resultado da soma fica armazenado em uma variável temporária T3
X = A * ( T3 – T2 ) 4.º Fazemos a subtração T3 – T2
X = A * ( T4 ) O resultado da subtração fica armazenado em uma variável temporária T4
X = A * ( T4 ) 5.º Fazemos a multiplicação A * T4
X = X O resultado da multiplicação precisa ser armazenado em X
a) MPY T1, C, D, P
DIV T2, E, F, P
ADD T3, B, T1, P
SUB T4, T3, T2, P
MPY X, A, T4, P
b) MPY T1, C, D ; T1 = C * D
DIV T2, E, F ; T2 = E / F
ADD T3, B, T1 ; T3 = B * T1
SUB T4, T3, T2 ; T4 = T3 * T2
MPY X, A, T4 ; X = A * T4