Buscar

UNIVESP - 2020 - Gabarito da Atividade para avaliação - Semana 4_ ORGANIZAÇÃO DE COMPUTADORES - EIC001

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 5 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

Prévia do material em texto

ORGANIZAÇÃO DE COMPUTADORES
Linguagens assembly, compilação e
desempenho4
A resposta correta da questão está identificada com a cor Vermelha.
ATIVIDADE PARA AVALIAÇÃO
(2 pontos)
Suponha a seguinte instrução do ISA do processador ARM: LDRH r11, [r0].
Assumindo que no registrador r0 temos armazenado 0x8000 e que em r11 temos
0x12345678, informe o conteúdo de r11 após a execução dessa instrução, sabendo que na
memória temos os seguintes valores armazenados:
MEMÓRIA
Endereço Conteúdo
0x8000 0xEE
0x8001 0xFF
0x8002 0x90
0x8003 0xA7
JUSTIFICATIVA 
A instrução LDRH do ARM trabalha com meia palavra, ou seja, 16 bits. Portanto, após a
execução, carrega o byte de menor endereço no byte menos significativo de r11, o próximo
no segundo byte, zerando os dois bytes mais significativos, formando, então, a palavra
0x0000FFEE.
1.
0xA790FFEEa.
0XEEFF90A7b.
0x0000FFEEc.
0x0000EEFFd.
0x000090A7e.
0x0000A790f.
(2 pontos)
Seja o seguinte trecho de programa em Assembly x86:
 
2.
 .........
 XOR EAX, EAX 
 
 XOR EBX, EBX 
 
 MOV CX,10 
 
VOLTA: 
 
 ADD EAX, W[EBX] 
 
 ADD EBX,4 
 
 LOOP VOLTA 
 
 ..........
 
Esse trecho executa que função?
JUSTIFICATIVA 
Calcula a somatória de 10 números de 32 bits, pois os registradores são de 32 bits e o
incremento do loop é 4, ou seja, varre o vetor W de 4 em 4 bytes (32 bits). A somatória é
armazenada em EAX.
Ordena um vetor de 10 posições, apontado por W, em que cada posição tem 16 bits.a.
Calcula a média de 10 números de 32 bits, armazenados em um vetor W.b.
Calcula a somatória de 10 números de 16 bits, armazenados em um vetor W.c.
Ordena um vetor de 10 posições, apontado por W, que tem cada posição tem 32 bits.d.
Calcula a média de 10 números de 16 bits, armazenados em um vetor w.e.
Calcula a somatória de 10 números de 32 bits, armazenados em um vetor W.f.
(2 pontos)
Seja a seguinte sequência de código MIPS:
..... 
 
sub $t2, $zero, $t3 
slt $at, $zero, $t3 
beq $at, $zero, fim 
add $t2, $t3, $zero 
 
fim: ...... 
 
Escolha a alternativa que indica o que esse código faz:
3.
Armazena em t2, a raiz quadrada do número armazenado em t3.a.
Verifica se o conteúdo de t3 é zero.b.
JUSTIFICATIVA 
O código armazena em t3 o valor absoluto do número armazenado em t2, portanto, calcula o
valor absoluto de um número que está em t2.
 sub $t2, $zero, $t3 # t2=-t3 
 
 
 slt $at, $zero, $t3 # se t3 for negativo $at = 1, caso contrário $at = 0 
 
 
 beq $at, $zero, fim # se t3 <= zero t2 tem o abs 
 
 
 add $t2, $t3, $zero # se t3 > 0 coloco em t2 
 
 
 fim: 
 
Armazena em t2, o valor absoluto do valor armazenado em t3.c.
Verifica se o conteúdo de t2 é zero.d.
Armazena em t3, o valor absoluto do valor armazenado em t2.e.
Armazena em t3, a raiz quadrada do número armazenado em t2.f.
(2 pontos)
Qual das alternativas completa o texto abaixo de maneira correta?
 
Um arquivo de código __________, criado no processo de compilação, após a montagem, é
formado por um __________ que contém informações sobre o tamanho e a posição das
várias partes dele, como: 1. o segmento de __________ que contém o código em linguagem
de máquina; 2. o segmento de dados __________ (alocados pelo próprio programa) e de
dados __________ (alocados à medida da necessidade do programa); 3. informações sobre
__________, que permitem a alocação do programa em qualquer parte da memória; 4. a
tabela de __________, que contém símbolos não resolvidos (referências externas); e 5. as
informações para __________, que contêm informações de como os módulos foram
compilados para o depurador.
JUSTIFICATIVA 
Um arquivo de código objeto, criado no processo de compilação, após a montagem, é
formado por um cabeçalho, que contém informações sobre o tamanho e a posição das
várias partes dele, como: 1. o segmento de texto que contém o código em linguagem de
4.
executável, cabeçalho, dados, dinâmicos, estáticos, relocação, símbolos, execuçãoa.
objeto, apêndice, texto, dinâmicos, estáticos, montagem, variáveis, compilaçãob.
objeto, cabeçalho, texto, estáticos, dinâmicos, relocação, símbolos, debugc.
alto nível, cabeçalho, texto, estáticos, dinâmicos, relocação, símbolos, debugd.
executável, cabeçalho, texto, estáticos, dinâmicos, relocação, símbolos, debuge.
máquina; 2. o segmento de dados estáticos (alocados pelo próprio programa) e de dados
dinâmicos (alocados à medida da necessidade do programa); 3. informações sobre
relocação, que permitem a alocação do programa em qualquer parte da memória; 4. a tabela
de símbolos, que contém símbolos não resolvidos (referências externas); e 5. as
informações para debug, que contêm informações de como os módulos foram compilados
para o depurador.
(ANULADA)
Supondo a seguinte sequência de código em linguagem de montagem (linguagem
assembly) INTEL x86:
 
........ 
 
MOV EAX, 0x7FFFFFFF 
 
MOV EBX, 0x80000000 
 
CMP EAX, EBX 
 
INST SALTO 
 
 ........
 
Quais afirmativas abaixo são verdadeiras?
 
JUSTIFICATIVA 
II. Se INST for JG (jump if grather than), ele supõe que os números são sinalizados e,
portanto, executa o salto, uma vez que 0x7FFFFFFF é maior que 0x80000000 e os valores
dos FLAGS, após a execução de CMP, serão ZF = 0 e SF = OF. 
III. Se INST for a instrução JA (jump if above), ele supõe que os números são não
sinalizados e, portanto, não executa o salto, uma vez que 0x7FFFFFFF é menor que
5.
Se INST for a instrução JA (jump if above), como os valores dos FLAGS ZF = 0 e CF
= 0, o salto será executado.
1.
Se INST for a instrução JG (jump if grather than), como os valores dos FLAGS ZF =
0 e SF = OF, o salto será executado.
2.
Se INST for a instrução JA (jump if above), como os valores dos FLAGS ZF = 0 e CF
= 1, o salto não será executado. 
3.
Se INST for a instrução JG (jump if grather than), como os valores dos FLAGS ZF =
0 e SF = OF, o salto não será executado.
4.
Afirmativas III e VI.a.
Afirmativas I e IV.b.
Afirmativas I e II.c.
Afirmativas II e III.d.
Nenhuma afirmativa é verdadeira.e.
0x80000000 e os valores dos FLAGS, após a execução de CMP, seriam ZF = 0 e CF = 1, o
salto não será executado.

Outros materiais