Curso Organização Arquitetura Computadores Prof Evandro Parte1
Curso Organização Arquitetura Computadores Prof Evandro Parte1
Curso Organização Arquitetura Computadores Prof Evandro Parte1
Evandro)
Caixa Econômica Federal - CEF (Técnico
Bancário - TI) Arquitetura de
Computadores - 2024 (Pós-Edital)
Autor:
Evandro Dalla Vecchia Pereira
01 de Março de 2024
Índice
1) Apresentação do Curso - Evandro
..............................................................................................................................................................................................3
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 2
www.estrategiaconcursos.com.br 97
APRESENTAÇÃO DO CURSO
Iniciamos nosso Curso Regular de Sistemas Operacionais e Arquitetura de Computadores em teoria e
questões, voltado para provas objetivas e discursivas de concurso público. Tais assuntos são cobrados em
diversos concursos em que há vagas específicas para a área de TI.
As aulas em PDF possuem por característica essencial a didática. Ao contrário do que encontramos em
alguns livros, o curso todo se desenvolverá com uma leitura de fácil compreensão e assimilação.
Além disso, teremos videoaulas! Essas aulas destinam-se a complementar a preparação. Quando estiver
cansado do estudo ativo (leitura e resolução de questões) ou até mesmo para a revisão, abordaremos alguns
pontos da matéria por intermédio dos vídeos. Com outra didática, você disporá de um conteúdo
complementar para a sua preparação. Ao contrário do PDF, evidentemente, AS VIDEOAULAS NÃO
ATENDEM A TODOS OS PONTOS QUE VAMOS ANALISAR NOS PDFS, NOSSOS MANUAIS
ELETRÔNICOS. Por vezes, haverá aulas com vários vídeos; outras que terão videoaulas apenas em parte do
conteúdo. Nosso foco é sempre o estudo ativo!
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 3
www.estrategiaconcursos.com.br 97
APRESENTAÇÃO PESSOAL
Meu nome é Evandro Dalla Vecchia Pereira, sou autor do livro "Perícia Digital - Da investigação à análise
forense", Mestre em Ciência da Computação (UFRGS), Bacharel em Ciência da Computação (PUCRS),
Técnico em Redes de Computadores (Etcom/UFRGS) e em Processamento de Dados (Urcamp). Perito
Criminal na área de Perícia Digital desde 2004 no Instituto-Geral de Perícias/RS. Professor de pós-graduação
em diversas instituições, nas áreas de Perícia Digital, Perícia Criminal e Auditoria de Sistemas. Lecionei em
cursos de graduação de 2006 a 2017, nas instituições PUCRS, Unisinos, entre outras e sou professor em
cursos de formação e aperfeiçoamento de Peritos Criminais, Delegados, Inspetores, Escrivães e Policiais
Militares.
No Estratégia Concursos leciono desde o começo de 2018, inicialmente na área de Computação Forense e,
na sequência, também assumi as áreas de Arquitetura de Computadores e Sistemas Operacionais, tanto na
elaboração de materiais escritos como na gravação das videoaulas.
==66540==
Deixarei abaixo meus contatos para quaisquer dúvidas ou sugestões. Terei o prazer em orientá-los da
melhor forma possível nessa caminhada que estamos iniciando.
Instagram: @profevandrodallavecchia
Facebook: https://www.facebook.com/profevandrodallavecchia
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 4
www.estrategiaconcursos.com.br 97
Nosso podcast alternativo ... livre, descontraído e com dicas rápidas que
todo CANETA PRETA raiz deve ouvir. Já temos alguns episódios
disponíveis e vários outros serão gravados nas próximas semanas ...
acompanhe em:
http://anchor.fm/estrategia-tech
http://t.me/estrategia_ti
http://instagram.com/estrategiaconcursosti
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 5
www.estrategiaconcursos.com.br 97
Considerações Iniciais
Na aula de hoje vamos estudar assuntos iniciais, que vão desde a diferença entre organização e
arquitetura de computadores, as arquiteturas clássicas de computadores e as arquiteturas clássicas
de processadores. Na sequência veremos o que são os conjuntos e os ciclos de instruções, e
começaremos a "subir" o nível, ou seja, veremos onde "entra" o software, os algoritmos e
linguagens de programação e as linguagens de máquina e de montagem. Por fim, veremos as
diferenças entre tradução, compilação e interpretação. Boa aula!
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 6
www.estrategiaconcursos.com.br 97
• Frequência do relógio;
• Sinais de controle para iniciar as micro-operações em diversas unidades do computador.
Para deixar mais claro, vamos falar da “família” de processadores x86. A Intel (fabricante) definiu
elementos característicos dessa arquitetura (x86), sendo que cada modelo de processador possui
sua organização. Dessa forma, se um programa foi feito para ser executado em um antigo 80386
(fui longe agora, né? ), o mesmo pode ser executado em processadores sucessores (80486,
Pentium e posteriores), sem precisar de alterações! Isso ocorre porque são processadores da
mesma “família”, logo possuem a mesma arquitetura (e isso interessa aos programadores!).
Arquiteturas Clássicas
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 7
www.estrategiaconcursos.com.br 97
==66540==
Obviamente que podem existir outras arquiteturas, mas essas duas são as mais utilizadas até hoje
e, o mais importante, são cobradas em provas de concurso!
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 8
www.estrategiaconcursos.com.br 97
Processamento
Funções
Controle Armazenamento
Básicas
Transferência
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 9
www.estrategiaconcursos.com.br 97
B) utilizar memória cache entre o processador e a memória principal com caminhos separados para
dados e instruções.
Comentários:
Como o processador é mais rápido que a memória, uma solução adotada há um bom tempo é o
uso de memórias cache, as quais mantêm as instruções e dados mais acessados, evitando ter que
buscar da memória RAM (o que seria mais lento). E, para melhorar ainda mais, as memórias cache
começaram a separar os dados das instruções, aplicando o conceito da Arquitetura de Harvard
(que é um melhoramento da Arquitetura de von Neumann). Portanto, a alternativa B está correta
e é o gabarito da questão.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 10
www.estrategiaconcursos.com.br 97
Gabarito: Letra B
Comentários:
CPU = Central Processing Unit (Unidade Central de Processamento). Portanto, a alternativa C está
correta e é o gabarito da questão.
Gabarito: Letra C
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 11
www.estrategiaconcursos.com.br 97
A) dispositivos de hardware como teclado e mouse são responsáveis pela saída de dados, uma
vez que escrevem ou apontam o resultado esperado em uma operação realizada pelo
computador.
B) acessórios modernos como webcams, bluetooth e leitores biométricos são dispositivos de saída
de dados incorporados a alguns computadores como acessórios de fábrica.
E) a entrada de dados é tarefa realizada pela pessoa (ou por um programa de computador)
responsável por alimentar o sistema com dados necessários para atingir o resultado esperado.
Comentários:
(A) Teclado e mouse são dispositivos de entrada de dados (do ponto de vista do computador,
recebem dados); (B) Webcams e leitores biométricos também são dispositivos de entrada e
bluetooh é um padrão de rede sem fio com curta distância; (C) O monitor é um dispositivo de
saída, pois mostra dados (imagem) e não recebe; (D) São dispositivos de E/S (a função de scanner
é de entrada, a função de impressora é de saída), não há processamento em memória interna –
processamento é realizado por processador! (E) A entrada de dados pode ser realizada por uma
pessoa, através de um dispositivo de entrada (ex.: teclado). Esses dados alimentam o sistema, que
são processados e resultados são gerados (mostrados no monitor, por exemplo). Portanto, a
alternativa E está correta.
Gabarito: Letra E
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 12
www.estrategiaconcursos.com.br 97
B) Memória Principal.
C) Memória Secundária.
Comentários:
“Quem” realiza o processamento dos dados, bem como o devido controle dos dados a serem
carregados em memória, buscados para o processador, entre outras atividades, é o processador
(também conhecido por CPU – Unidade Central de Processamento). Portanto, a alternativa D está
correta e é o gabarito da questão.
Gabarito: Letra D
Comentários:
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 13
www.estrategiaconcursos.com.br 97
Comentários:
CPU = Central Processing Unit (Unidade Central de Processamento). Portanto, a alternativa C está
correta e é o gabarito da questão.
Gabarito: Letra C
A) Entrada de dados.
B) Processamento de Dados.
C) Saída de Informações.
D) Capacidade de Unidade.
Comentários:
Gabarito: Letra D
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 14
www.estrategiaconcursos.com.br 97
Comentários:
Gabarito: Letra E
D) cujo empacotamento de módulos de memória cache foi colocado fora do chip, reduzindo o
custo de produção e aumentando a quantidade de memória disponível.
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 15
www.estrategiaconcursos.com.br 97
B) utilizar memória cache entre o processador e a memória principal com caminhos separados para
dados e instruções.
Comentários:
Como o processador é mais rápido que a memória, uma solução adotada há um bom tempo é o
uso de memórias cache, as quais mantêm as instruções e dados mais acessados, evitando ter que
buscar da memória RAM (o que seria mais lento). E, para melhorar ainda mais, as memórias cache
começaram a separar os dados das instruções, aplicando o conceito da Arquitetura de Harvard
(que é um melhoramento da Arquitetura de von Neumann). Portanto, a alternativa B está correta
e é o gabarito da questão.
Gabarito: Letra B
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 16
www.estrategiaconcursos.com.br 97
A figura que utilizamos na aula é mais abrangente, mas de uma forma mais simples poderíamos
visualizar assim (esquecendo a memória secundária):
Embora seja necessário para a comunicação entre os componentes, os barramentos não são
considerados como um subsistema básico, então sobraram os três: processador, memória e
dispositivos de E/S. Portanto, a alternativa A está correta e é o gabarito da questão.
Gabarito: Letra A
Comentários:
Podemos ver na figura mostrada na questão anterior que a CPU é o elemento central, então o
barramento faz a ligação dela com a memória e dela com os dispositivos de E/S. Portanto, a
questão está errada.
Gabarito: Errada
11. (COPESE-UFT/UFT - 2018) Em 1952 John von Neumann desenvolveu um protótipo de um novo
computador de programa armazenado. Esse projeto ficou conhecido como arquitetura de Von
Neumann e ainda hoje influencia o projeto de computadores modernos. Os componentes
abaixo fazem parte da arquitetura de Von Neumann, EXCETO:
A) Memória Principal.
C) Barramento.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 17
www.estrategiaconcursos.com.br 97
Comentários:
Mais uma vez uma questão que deixa o barramento de fora, como se aquelas “caixinhas” se
comunicassem através do ar. Mas é assim mesmo, temos que pensar que os 3 componentes da
Arquitetura de von Neumann são: processador, memória e dispositivos de E/S. Na questão
aparece a ULA (Unidade Lógica e Aritmética), que é um componente de um processador, então
consideramos como processador na questão. Portanto, a alternativa C está correta e é o gabarito
da questão.
Gabarito: Letra C
Comentários:
Está certo que a questão fala em fases do “processamento” e o correto seria algo como “funções
básicas de um computador”, mas tudo bem... a alternativa B está correta e é o gabarito da
questão.
Gabarito: Letra B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 18
www.estrategiaconcursos.com.br 97
A) dispositivos de hardware como teclado e mouse são responsáveis pela saída de dados, uma
vez que escrevem ou apontam o resultado esperado em uma operação realizada pelo
computador.
B) acessórios modernos como webcams, bluetooth e leitores biométricos são dispositivos de saída
de dados incorporados a alguns computadores como acessórios de fábrica.
E) a entrada de dados é tarefa realizada pela pessoa (ou por um programa de computador)
responsável por alimentar o sistema com dados necessários para atingir o resultado esperado.
B) Memória Principal.
C) Memória Secundária.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 19
www.estrategiaconcursos.com.br 97
A) Entrada de dados.
B) Processamento de Dados.
C) Saída de Informações.
D) Capacidade de Unidade.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 20
www.estrategiaconcursos.com.br 97
D) cujo empacotamento de módulos de memória cache foi colocado fora do chip, reduzindo o
custo de produção e aumentando a quantidade de memória disponível.
B) utilizar memória cache entre o processador e a memória principal com caminhos separados para
dados e instruções.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 21
www.estrategiaconcursos.com.br 97
11. (COPESE-UFT/UFT - 2018) Em 1952 John von Neumann desenvolveu um protótipo de um novo
computador de programa armazenado. Esse projeto ficou conhecido como arquitetura de Von
Neumann e ainda hoje influencia o projeto de computadores modernos. Os componentes
abaixo fazem parte da arquitetura de Von Neumann, EXCETO:
A) Memória Principal.
C) Barramento.
GABARITO
1- E 5- D 9- A
2- D 6- E 10- Errada
3- Correta 7- C 11- C
4- C 8- B 12- B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 22
www.estrategiaconcursos.com.br 97
Quando o assunto é saber qual a melhor arquitetura de processador, sempre há polêmica. Muitos
defendem que os “Macs” são mais rápidos por terem chips RISC, por exemplo. Mas o que é RISC?
E CISC? Quais vantagens e desvantagens? Vamos lá...
Alguns fabricantes decidiram seguir o caminho contrário, criando o padrão RISC (Reduced
Instruction Set Computer - Computador com um Conjunto Reduzido de Instruções). Os
processadores RISC são capazes de executar apenas algumas poucas instruções simples.
Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos.
Outra vantagem dos processadores RISC, é que, por terem um menor número de circuitos
internos, podem trabalhar a frequências mais altas. Alguns exemplos de processadores RISC são
Sparc (Sun), Mips (Silicon Graphics), Power (IBM) e Alpha (DEC).
Aí surge a dúvida...como um chip que é capaz de executar algumas poucas instruções pode ser
considerado por muitos, mais rápido do que outro que executa centenas delas? A grande questão
é que um processador RISC é capaz de executar suas poucas instruções muito mais rapidamente.
A ideia principal é que apesar de um processador CISC ser capaz de executar centenas de
instruções diferentes, apenas algumas são usadas frequentemente, o que parece ser um
desperdício, não?
Mas, uma coisa é garantida: em instruções complexas os processadores CISC se saem melhor! O
que podemos concluir, então? O ideal é fazer um mix das duas tecnologias, e é por isso que
atualmente temos processadores híbridos, que são essencialmente processadores CISC, mas
incorporam muitas características dos processadores RISC (ou vice-versa). Tanto os processadores
da família x86, como o Pentium II, Pentium III e AMD Athlon, quanto processadores supostamente
RISC, como o MIPS R10000 e o HP PA-8000 misturam características das duas arquiteturas, por
simples questão de desempenho.
Uma coisa é o mundo real, outra é o mundo dos concursos, onde é importante saber diferenciar
bem as características RISC e CISC.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 23
www.estrategiaconcursos.com.br 97
Algumas características:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 24
www.estrategiaconcursos.com.br 97
Modos de endereçamento 1 4 22 11
Quantidade de registradores 32 32 16 8
de uso geral
Olhando pela quantidade de instruções, o que apresenta 94 parece ser RISC (poucas instruções)
e o 303 CISC (muitas instruções), mas os outros dois são próximos e fica a dúvida.
Analisando os modos de endereçamento, fica evidente que os dois primeiros são RISC (poucos
modos), enquanto os dois últimos possuem bem mais.
Pela largura de instruções fica mais claro ainda que os dois primeiros são RISC, pois possuem uma
largura fixa de instruções (4 bytes), enquanto os outros dois possuem instruções de diversos
tamanhos (2 a 57 bytes um deles e o outro entre 1 e 12 bytes).
E para arrematar nossa análise, os dois que achamos que são RISC possuem mais registradores
(32 cada um deles), enquanto os outros dois processadores possuem menos registradores (um
possui 16 e o outro 8).
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 25
www.estrategiaconcursos.com.br 97
Comentários:
Gabarito: Errada.
A) Dadas as características das instruções das máquinas CISC, o pipeline fica favorecido nessa
arquitetura.
C) Programas para arquiteturas CISC sempre possuem tamanho menor que programas para
arquiteturas RISC, devido à relação um para um de instruções de máquina e instruções de
compilador.
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 26
www.estrategiaconcursos.com.br 97
Gabarito: letra D.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 27
www.estrategiaconcursos.com.br 97
A) há poucos registradores.
Comentários:
Em uma arquitetura RISC existem muitos registradores, há muito uso da técnica pipelining (devido
ao tamanho fixo das instruções), as instruções possuem poucos formatos, não são realizadas por
microcódigo. E por fim, as instruções utilizam poucos ciclos de máquina (um ciclo, na verdade)!
Portanto, a alternativa E está correta e é o gabarito da questão.
Gabarito: Letra E
A) do sistema operacional.
B) de lógica digital.
C) de microprogramação.
D) convencional de máquina.
E) do montador.
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 28
www.estrategiaconcursos.com.br 97
A microprogramação é utilizada pela arquitetura CISC, o que consome espaço no chip (na unidade
de controle do processador), algo que não existe na arquitetura RISC. Portanto, a alternativa C
está correta e é o gabarito da questão.
Gabarito: Letra C
3. (CESPE/Correios - 2011) As instruções CISC são mais simples que as instruções RISC, por isso,
os compiladores para máquinas CISC são mais complexos, visto que precisam compensar a
simplificação presente nas instruções. Entretanto, se for usado pipeline, a complexidade do
compilador CISC é reduzida, pois a arquitetura pipeline evita a necessidade de reordenação
inteligente de instruções.
Comentários:
O nome já deixa claro: “Complex Instruction Set Computer”, portanto são mais complexas. Os
compiladores para máquinas RISC é que são mais complexos, pois devem lidar com instruções
simples. Portanto, a questão está errada.
Gabarito: Errada
Comentários:
Gabarito: Letra B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 29
www.estrategiaconcursos.com.br 97
C) Operações memória-para-memória.
Comentários:
RISC é tudo “simples” e uma instrução por ciclo de relógio. Realiza operações registrador-
registrador, ou seja, tem que buscar da memória os dados antes (através de LOAD). Portanto, a
alternativa C está correta e é o gabarito da questão.
Gabarito: Letra C
Comentários:
Esse “exclusivamente” mata, heim! Para começar os fabricantes têm utilizado uma arquitetura
híbrida, com mais características de uma ou de outra. Portanto, a questão está errada.
Gabarito: Errada
A) Dadas as características das instruções das máquinas CISC, o pipeline fica favorecido nessa
arquitetura.
C) Programas para arquiteturas CISC sempre possuem tamanho menor que programas para
arquiteturas RISC, devido à relação um para um de instruções de máquina e instruções de
compilador.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 30
www.estrategiaconcursos.com.br 97
Comentários:
Gabarito: Letra D
B) Objetivo de criar um hardware mais otimizado, com isso os programas tendem a ocupar menos
espaço em memória.
Comentários:
São mais baratos, pois são mais simples. Ocorrem menos acessos à memória (apenas LOAD e
STORE). Possui um conjunto de instruções simples, ao contrário da CISC (C = Complex). Portanto,
a alternativa A está correta e é o gabarito da questão.
Gabarito: Letra A
Comentários:
Gabarito: Errada
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 31
www.estrategiaconcursos.com.br 97
10. (Quadrix/CRA-PR - 2019) A característica que mais se destaca na arquitetura RISC é que
computadores pertencentes a ela realizam milhares de instruções por ciclo.
Comentários:
Gabarito: Errada
11. (Quadrix/CREA-GO - 2019) Uma máquina RISC, geralmente, usa um conjunto de modos de
endereçamento relativamente simples e direto.
Comentários:
Como existem menos modos de endereçamento e eles possuem menos acesso à memória, temos
um conjunto de modos de endereçamento mais simples e direto. Portanto, a questão está correta.
Gabarito: Correta
12. (CESPE/TJ-PA - 2020) Na tentativa de solucionar o chamado espaço semântico (semantic gap),
fabricantes de computadores de grande porte criaram alternativas para resolver o problema,
como, por exemplo,
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 32
www.estrategiaconcursos.com.br 97
A) apenas o item I.
E) todos os itens.
Comentários:
O tal "espaço semântico" significa a diferença entre os conjuntos de programação de alto nível
em várias linguagens de computador e as instruções simples de computação com as quais os
microprocessadores trabalham na linguagem de máquina. Na verdade, essa parte só serve para
distrair o candidato!
O foco é analisar as características elencadas nos itens I a III e verificar quais delas estão
relacionadas à arquiteturas CISC. Vamos lá...
I. Uma maior densidade do código significa que cada instrução deve "fazer muito", de modo que
o programa completo tenha poucas instruções - Isso é característica da CISC!
III. Como a RISC é uma arquitetura registrador-registrador, ela é quem possui uma execução
otimizada de chamadas de funções via registradores.
Gabarito: Letra A
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 33
www.estrategiaconcursos.com.br 97
A) há poucos registradores.
A) do sistema operacional.
B) de lógica digital.
C) de microprogramação.
D) convencional de máquina.
E) do montador.
3. (CESPE/Correios - 2011) As instruções CISC são mais simples que as instruções RISC, por isso,
os compiladores para máquinas CISC são mais complexos, visto que precisam compensar a
simplificação presente nas instruções. Entretanto, se for usado pipeline, a complexidade do
compilador CISC é reduzida, pois a arquitetura pipeline evita a necessidade de reordenação
inteligente de instruções.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 34
www.estrategiaconcursos.com.br 97
C) Operações memória-para-memória.
A) Dadas as características das instruções das máquinas CISC, o pipeline fica favorecido nessa
arquitetura.
C) Programas para arquiteturas CISC sempre possuem tamanho menor que programas para
arquiteturas RISC, devido à relação um para um de instruções de máquina e instruções de
compilador.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 35
www.estrategiaconcursos.com.br 97
B) Objetivo de criar um hardware mais otimizado, com isso os programas tendem a ocupar menos
espaço em memória.
10. (Quadrix/CRA-PR - 2019) A característica que mais se destaca na arquitetura RISC é que
computadores pertencentes a ela realizam milhares de instruções por ciclo.
11. (Quadrix/CREA-GO - 2019) Uma máquina RISC, geralmente, usa um conjunto de modos de
endereçamento relativamente simples e direto.
12. (CESPE/TJ-PA - 2020) Na tentativa de solucionar o chamado espaço semântico (semantic gap),
fabricantes de computadores de grande porte criaram alternativas para resolver o problema,
como, por exemplo,
I maior densidade de código a ser executado.
A) apenas o item I.
E) todos os itens.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 36
www.estrategiaconcursos.com.br 97
GABARITO
1- E 5- C 9- Errada
2- C 6- Errada 10- Errada
3- Errada 7- D 11- Correta
4- B 8- A 12- A
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 37
www.estrategiaconcursos.com.br 97
HARDWARE X SOFTWARE
Máquina Multinível
• Tradução: Executa um programa escrito em L1 (nível 1), substituindo cada instrução por
uma sequência equivalente de instruções em L0 (nível 0);
Abaixo podemos ver uma estrutura em níveis de máquinas contemporâneas e na sequência uma
breve explicação de cada nível.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 38
www.estrategiaconcursos.com.br 97
Vamos começar "de cima", ou seja, do ser humano, e vamos aos poucos "baixando o nível" (no
bom sentido, é claro), até chegarmos na máquina! Então vamos lá...sabemos que o computador
serve para resolver problemas, desde cálculos, edição de textos até jogos de entretenimento, por
exemplo. Antes de colocar a mão na massa (programar em alguma linguagem), é importante
definir o passo a passo de como resolver o tal problema. Comecemos pelo conceito de algoritmo,
a seguir.
Na matemática, um algoritmo pode ser definido como uma sequência finita de regras, raciocínios
ou operações que, aplicada a um número finito de dados, permite solucionar classes semelhantes
de problemas.
Na informática, um algoritmo pode ser definido como um conjunto das regras e procedimentos
lógicos perfeitamente definidos que levam à solução de um problema em um número finito de
etapas.
Um exemplo clássico de algoritmo não-computacional é uma receita de bolo, pois você tem todos
os ingredientes e a sequência de passos para resolver o "problema" (preparar o bolo). Para fazer
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 39
www.estrategiaconcursos.com.br 97
um bolo de laranja pode existir uma infinidade de receitas (algoritmos), tendo como resultado um
bolo de laranja! Claro que um pode ficar mais ou menos saboroso, dependendo do paladar de
cada um!
Todas as tarefas executadas pelo computador são baseadas em algoritmos. Um algoritmo deve
ser bem definido, pois é uma máquina que o executará, não haverá "alguém" para decidir o que
fazer quando houver alguma ação ambígua a ser executada! Uma calculadora por exemplo, para
executar a operação de multiplicação, executa um algoritmo que calcula somas até um
determinado número de vezes, porque a operação de multiplicação geralmente não está presente
nas instruções conhecidas pela arquitetura (hardware).
No exemplo acima, a execução no monitor seria assim (em vermelho o que você teria digitado):
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 40
www.estrategiaconcursos.com.br 97
No exemplo acima, a execução no monitor seria assim (em vermelho o que você teria digitado):
Digite um numero: 9
Numero impar!
Existem algumas classificações quanto à maneira pelos quais foram implementados, mas duas
delas merecem destaque, os algoritmos recursivos e os iterativos.
Uma forma bem resumida de explicar é dizer que recursão é autorreferência. Recursão ocorre
quando algo é definido em termos de si mesmo ou de suas variações, ou seja, recursão envolve
estruturas aninhadas. Uma figura que retrata a recursão é a seguinte (criada por Paul Noth, para o
The New Yorker):
n! = n × (n−1)!
A definição acima é incompleta porque não dos diz como calcular o fatorial de nenhum número
específico. Se tentarmos aplicá-la ao cálculo do fatorial de algum número, nunca seremos capazes
de parar. Continuaremos calculando indefinidamente.
Agora vamos para uma definição completa: O fatorial de um número n, denotado por n!, é
calculado como a seguir:
0! = 1
n! = n × (n−1)!
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 41
www.estrategiaconcursos.com.br 97
Com a adição de mais uma regra, sabemos que, ao chegar no zero, conseguiremos calcular o
fatorial e poderemos usar esse resultado no cálculo do fatorial dos demais números, até
chegarmos ao fatorial do número desejado inicialmente. O procedimento não executará
indefinidamente, ou seja, temos uma "condição de parada", uma regra que define até onde
calculamos.
Para calcular o fatorial de 10, por exemplo, basta saber como calcular o fatorial de 9, pegar esse
resultado, e multiplicá-lo por 10. Só isso! E para calcular o fatorial de 9? Basta calcular o fatorial
de 8 e multiplicar o resultado por 9. E assim por diante... até chegar no cálculo do fatorial de 0,
que sabemos que é 1. Agora, é só pegar esse resultado e ir multiplicando… até chegar ao ponto
em que consegue calcular o fatorial de 10.
fatorial(5) = 5 × fatorial(4) =
5 × (4 × fatorial(3)) =
5 × (4 × (3 × fatorial(2))) =
5 × (4 × (3 × (2 × fatorial(1)))) =
5 × (4 × (3 × (2 × (1 × fatorial(0)))))
=
5 × (4 × (3 × (2 × (1 × 1)))) =
5 × (4 × (3 × (2 × 1))) =
5 × (4 × (3 × 2)) =
5 × (4 × 6) = 5 × 24 = 120
Note que temos uma chamada recursiva de uma "função" fatorial, conforme podemos ver na
figura abaixo.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 42
www.estrategiaconcursos.com.br 97
def fatorial(n):
if n == 0:
return 1
return n * fatorial(n - 1)
No código acima, foi fácil traduzir para uma linguagem de programação as duas partes da
definição recursiva do fatorial de um número. É possível ler o código e identificar facilmente o que
ele está fazendo.
Outra vantagem de algoritmos recursivos é que eles são, em geral, fáceis de serem lidos. A
correspondência entre a definição e a implementação é óbvia. Por outro lado, algoritmos
recursivos não são muito eficientes em alguns casos, pois pode ser que eles realizem grandes
quantidades de trabalho repetido.
Agora vamos focar nos algoritmos iterativos. Vimos há pouco que o fatorial de um número inteiro
positivo n nada mais é do que o produto de todos os inteiros positivos menores ou iguais a n. Por
exemplo:
5! = 5 × 4 × 3 × 2 × 1 = 120
Comparando este exemplo com o exemplo do fatorial recursivo, vemos que a principal diferença
entre o procedimento recursivo e o iterativo é que o procedimento iterativo contém instruções
completas de como realizar uma tarefa, ao passo que o procedimento recursivo contém instruções
de como realizar uma tarefa tendo como base instâncias menores da mesma tarefa. Um exemplo
tornará essa explicação mais clara.
0!=1
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 43
www.estrategiaconcursos.com.br 97
n!=n×(n−1)!
n! = n × (n−1) × (n−2) × ⋯ × 2 × 1
Como dissemos acima, o procedimento iterativo nos diz cada passo do cálculo do fatorial de um
número, enquanto o procedimento recursivo nos diz como calcular o fatorial de um número n
baseado no fatorial de um número menor, (n−1, neste caso).
def fatorial_iterativo(n):
resultado_fatorial = 1
resultado_fatorial =
resultado_fatorial * i
return resultado_fatorial
No código acima, a chamada à função range(1, n + 1) gera uma lista de números no intervalo [1,n],
ou seja, indo de 1 até n. Uma outra forma de calcular o fatorial com um algoritmo iterativo:
resultado_fatorial = 1
while (n):
resultado_fatorial *= n
n -= 1
return
resultado_fatorial
Note que nesses dois exemplos não há chamada à "fatorial_iterativo" em nenhum momento.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 44
www.estrategiaconcursos.com.br 97
Dos símbolos mostrados acima, os cinco primeiros são os mais utilizados. Vamos colocar o nosso
segundo algoritmo (aquele que mostra se é número par ou ímpar) em um fluxograma para
entender como funciona (vamos assumir que não é necessário declarar as variáveis previamente):
Depois de pronto o algoritmo e/ou o fluxograma é hora de programar! Claro que é possível
programar sem ter que fazer qualquer algoritmo antes, mas não é o recomendado. É possível
programar em Assembly direto? Claro que sim! Mas é muito complexo e demorado! Por isso, o
mais comum é programar em alguma linguagem de alto nível e deixar que o compilador faça o
trabalho de transformar o código de alto nível para o executável (se considerarmos aquele
compilador que faz tudo, incluindo também o papel de montador e ligador).
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 45
www.estrategiaconcursos.com.br 97
O conjunto de palavras (lexemas classificados em tokens), compostos de acordo com essas regras,
constituem o código fonte de um software. Tal código é traduzido para código de máquina, o
qual é executado pelo processador.
A ideia principal das linguagens de programação é que programadores tenham uma maior
produtividade, permitindo expressar seus algoritmos mais facilmente do que quando comparado
com o código de máquina. Por isso, linguagens de programação são projetadas para adotar uma
sintaxe de nível mais alto (mais próxima do ser humano).
Programação estruturada: é uma forma de programação que preconiza que todos os programas
possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e repetição. A
programação estruturada orienta os programadores para a criação de estruturas simples em seus
programas, usando as sub-rotinas e as funções.
Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem
para abordar a sua sintaxe e semântica. Os paradigmas se dividem em dois grandes grupos:
imperativo e declarativo. Os paradigmas imperativos são aqueles que facilitam a computação por
meio de mudanças de estado e são divididos em:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 46
www.estrategiaconcursos.com.br 97
• Paradigma da computação distribuída: suporta que mais de uma rotina possa ser executada
independentemente. Exemplo: Ada.
Os paradigmas declarativos são aqueles nos quais um programa especifica uma relação ou função.
Dividem-se em:
• Paradigma funcional: linguagens que não incluem qualquer provisão para atribuição ou
dados mutáveis. O mapeamento entre os valores de entrada e saída são alcançados mais
diretamente. Um programa é uma função (ou grupo de funções), tipicamente constituída
de outras funções mais simples. Exemplo: Lisp;
Quanto a estrutura de tipos, as linguagens de programação podem ser definidas de duas formas:
• Fortemente tipada: quando o tipo da variável se mantém o mesmo até ser descartada da
memória, ou seja, se uma variável foi declarada como inteiro, ela não pode receber outro
tipo de dado. Exemplos: Java e Python.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 47
www.estrategiaconcursos.com.br 97
Teste de Mesa
Teste de mesa é uma simulação da execução de um programa de forma manual, geralmente feita
no papel (geralmente em cima de uma mesa, por isso o nome!). Não há regras rígidas para criar
um teste de mesa, mas geralmente ele é feito do jeito que veremos na sequência. Considere o
pseudocódigo abaixo:
leia(a, b)
soma = a + b
diferenca = a - b
Esse algoritmo simplesmente calcula a soma e a diferença entre dois números e imprime ambas.
Baseado nele, vamos criar uma tabela onde faremos um teste de mesa. O teste de mesa
geralmente é feito de duas formas. Primeiramente, vamos fazer um teste seguindo a primeira
forma. Nessa primeira forma, coloca-se as variáveis que se deseja acompanhar o valor em colunas
de uma tabela. Então, preenche-se os valores das variáveis para simular a execução do programa.
Cada linha corresponde a uma execução.
a b soma diferenca
4 3 7 1
20 10 30 10
10 15 25 -5
Vamos ver agora a segunda forma. Ela também tem uma coluna para cada variável, mas inclui o
número da linha na primeira coluna e o valor que cada variável tem após a execução dela. Como
cada linha corresponde a uma linha do programa, a tabela inteira corresponde a uma execução.
Vamos à tabela:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 48
www.estrategiaconcursos.com.br 97
5 20 10 30 10
A primeira forma deve ser utilizada quando se deseja simular mais de 1 execução ou quando se
acha desnecessário expressar os valores das variáveis em diferentes pontos do algoritmo.
Testes de mesa são mais usados para propósitos didáticos, ou quando não se dispõe de um
computador enquanto se está criando um algoritmo e deseja-se testar o algoritmo, geralmente
com valores de entrada diferentes. São utilizados também quando se tem dificuldade para
entender o funcionamento de um algoritmo. Então, fazendo o teste de mesa, fica mais fácil
entender o que o algoritmo faz.
Comentários:
Os algoritmos são uma sequência de instruções com o objetivo de resolver um problema. Claro
que não pode ser infinito, senão não resolveria o problema em vida! Logo, a questão está correta.
Gabarito: Correta
A) Algoritmos
B) Arquivos
C) Cases
D) Polinômio
Comentários:
Na matemática, um algoritmo pode ser definido como uma sequência finita de regras, raciocínios
ou operações que, aplicada a um número finito de dados, permite solucionar classes semelhantes
de problemas.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 49
www.estrategiaconcursos.com.br 97
Na informática, um algoritmo pode ser definido como um conjunto das regras e procedimentos
lógicos perfeitamente definidos que levam à solução de um problema em um número finito de
etapas.
Gabarito: Letra A
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 50
www.estrategiaconcursos.com.br 97
Comentários:
Quanto a estrutura de tipos, as linguagens de programação podem ser definidas de duas formas:
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 51
www.estrategiaconcursos.com.br 97
Comentários:
Escopo global é quando uma variável não é declarada dentro de nenhum procedimento, ou seja,
ela pode ser utilizada em todo o algoritmo. Escopo local é quando uma variável é declarada dentro
de um procedimento e só pode ser utilizada neste procedimento. Logo, a questão está correta.
Gabarito: Correta
A) Algoritmos
B) Arquivos
C) Cases
D) Polinômio
Comentários:
Na matemática, um algoritmo pode ser definido como uma sequência finita de regras, raciocínios
ou operações que, aplicada a um número finito de dados, permite solucionar classes semelhantes
de problemas.
Na informática, um algoritmo pode ser definido como um conjunto das regras e procedimentos
lógicos perfeitamente definidos que levam à solução de um problema em um número finito de
etapas.
Gabarito: Letra A
4. (CESPE/TRE-TO - 2017) Assinale a opção que apresenta o resultado final após a execução do
algoritmo precedente.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 52
www.estrategiaconcursos.com.br 97
A) B
B) A
C) AC
D) C
E) BC
Comentários:
O algoritmo começa com a atribuição do valor 12 à variável numero. A seleção "se (numero mod
2 = 0)" resulta em verdadeiro, é executado escreva("A"). O teste seguinte (numero > 12) resulta
em falso, então nada é executado. Portanto, apenas "A" é escrito.
Gabarito: Letra B
Comentários:
Uma caixa de decisão é muito clara, pois tem uma condição e, caso seja verdadeira "vai para um
lado", senão "vai para outro":
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 53
www.estrategiaconcursos.com.br 97
Gabarito: Errada
Comentários:
Os algoritmos são uma sequência de instruções com o objetivo de resolver um problema. Claro
que não pode ser infinito, senão não resolveria o problema em vida! Logo, a questão está correta.
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 54
www.estrategiaconcursos.com.br 97
==66540==
A) Algoritmos
B) Arquivos
C) Cases
D) Polinômio
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 55
www.estrategiaconcursos.com.br 97
4. (CESPE/TRE-TO - 2017) Assinale a opção que apresenta o resultado final após a execução do
algoritmo precedente.
A) B
B) A
C) AC
D) C
E) BC
GABARITO
1- Correta 3- A 5- Errada
2- Correta 4- B 6- Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 56
www.estrategiaconcursos.com.br 97
A maioria dos programadores lida com linguagens de alto nível (Pascal, Java, entre outras). Dessa
forma, muito pouco da arquitetura da máquina básica fica visível. Um limite onde o projetista de
computador e o programador podem ver a mesma máquina é o conjunto de instruções de
máquina.
Instrução de Máquina
Cada instrução de máquina deve conter as informações exigidas pelo processador para a
execução. Os elementos de uma instrução de máquina são:
• Código de operação: especifica a operação a ser realizada (ex.: ADD, E/S). A operação é
especificada por um código binário conhecido como código da operação (opcode);
• Referência a operando fonte: a operação pode envolver um ou mais operandos fontes, isto
é, operandos que são entradas para a operação;
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 57
www.estrategiaconcursos.com.br 97
Código de operação
Os elementos são
Na maioria dos casos, a próxima instrução a ser buscada vem imediatamente após a instrução
corrente. Nesses casos, não há uma referência explícita à próxima instrução. Quando necessária
uma referência explícita, o endereço da memória principal ou da memória virtual deve ser
fornecido.
Os operandos fonte e resultado podem estar em uma das quatro áreas mostradas a seguir:
Representação da Instrução
Cada instrução é representada por uma sequência de bits. A instrução é dividida em campos que
correspondem aos elementos que constituem a instrução. Um exemplo de instrução simples de
16 bits é:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 58
www.estrategiaconcursos.com.br 97
Durante a execução da instrução, uma instrução é lida para um registrador de instrução (IR) no
processador. O processador deve ser capaz de extrair os dados dos diversos campos da instrução
para realizar a operação exigida.
Como é difícil para o ser humano lidar com representações binárias das instruções de máquina,
uma prática comum adotada foi a de utilizar uma representação simbólica das instruções. Um
exemplo dessa prática foi utilizado para o conjunto de instruções do IAS1, o primeiro computador
eletrônico construído pelo Instituto de Estudos Avançados de Princeton.
Os opcodes são representados por abreviações, conhecidas por mnemônicos, os quais indicam a
operação. Alguns exemplos comuns são:
• ADD - Adição;
• SUB - Subtração; ==66540==
• MUL - Multiplicação;
• DIV - Divisão;
• LOAD - Carrega dados da memória;
• STOR - Armazena dados na memória.
Operandos também são representados simbolicamente, como por exemplo a instrução ADD R, X,
que pode significar a soma do valor contido na localização X com o conteúdo do registrador R.
Modos de Endereçamento
O(s) campo(s) de endereço são relativamente pequenos. Para tornar possível referenciar um
grande intervalo de locais da memória principal (ou memória virtual, em alguns sistemas), uma
variedade de técnicas de endereçamento foi empregada. Vamos analisar as técnicas ou modos de
endereçamento mais comuns. Vamos adotar a seguinte notação:
1
O artigo que descreve o projeto do computador IAS foi editado por nada menos que John von Neumann (nome
conhecido, não?), um professor de matemática da Universidade de Princeton e do Instituto de Estudos Avançados.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 59
www.estrategiaconcursos.com.br 97
Operando = VALOR
Esse modo pode ser utilizado para definir e utilizar constantes ou definir valores iniciais das
variáveis. A vantagem é que nenhuma referência de memória (além de obter a instrução em si) é
necessária para obter o operando. Isso economiza um ciclo de memória ou de cache dentro do
ciclo de instrução. A desvantagem é que o tamanho do número é limitado ao tamanho do campo
de endereço (geralmente pequeno, se comparado ao tamanho da palavra, que é o tamanho
utilizado quando se busca um dado da memória).
Um exemplo que utiliza o modo de endereçamento imediato para mover o valor 2016 para o
registrador B: MOV B, #20H
EA = A
Essa técnica era comum nas primeiras gerações de computadores, requer apenas uma referência
à memória e nenhum cálculo especial. A limitação é que ela oferece um espaço de endereçamento
limitado.
EA = (A)
Como definido lá nas notações, os parênteses são interpretados como "conteúdo de". A
vantagem principal é que, para um tamanho N de uma palavra, um espaço de endereçamento de
2N ficará disponível. A desvantagem é que a execução da instrução requer duas referências à
memória para obter o operando, uma para obter apenas o endereço e a outra para obter o
operando (valor) em si.
EA = R
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 60
www.estrategiaconcursos.com.br 97
um pequeno campo de endereço é necessário e nenhuma referência é feita à memória para buscar
o operando. A desvantagem é o espaço de endereçamento muito limitado, afinal não existem
tantos registradores, se comparado à memória principal.
EA = (R)
EA = A + (R)
Esse modo de endereçamento requer que a instrução tenha dois campos de endereço, dos quais
ao menos um seja explícito. O valor contido em um campo de endereço (valor = A) é utilizado
diretamente e o outro campo de endereço refere-se a um registrador cujos conteúdos são
adicionados a A para produzir um endereço efetivo. Vamos ver três dos usos mais comuns a seguir.
Endereçamento de pilha: itens são adicionados e retirados do topo da pilha, sendo que há um
ponteiro cujo valor é o endereço do topo. O ponteiro da pilha é mantido em um registrador. O
modo de endereçamento de pilha é uma forma de endereçamento implícito, sendo que as
instruções de máquina não necessitam incluir uma referência de memória, devem apenas operar
no topo da pilha.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 61
www.estrategiaconcursos.com.br 97
Linguagem de Montagem
Para melhorar um pouco a vida do programador (não muito, pois aí seria o caso de linguagens de
alto nível), nomes simbólicos (mnemônicos) podem ser utilizados no lugar de cada instrução
binária, mas ainda há o problema de utilizar endereços absolutos, afinal de contas quem sabe os
endereços fixos que pode carregar os dados? E depois, para alterar alguma coisa, seria algo bem
trabalhoso! Melhorando um pouco mais, há um sistema que utiliza endereços simbólicos, onde
nós queremos chegar...a linguagem de montagem (Assembly), aquela que pode ser traduzidas
para linguagem de máquina através de um montador (assembler).
Comentário (opcional): pode ser colocado no lado direito de um comando ou pode ocupar uma
linha inteira. Em geral, o caractere especial que especifica que a partir dali rata-se de um
comentário é o ponto e vírgula (;).
Rótulo (opcional): se estiver presente, o montador define o rótulo como equivalente ao endereço
no qual o primeiro byte do código objeto gerado para essa instrução será carregado. O
programador pode usar o rótulo como um endereço ou como dado no campo de endereço de
outra instrução. Os rótulos são utilizados com mais frequência em instruções de desvio. Abaixo
podemos ver um exemplo (rótulo foi denominado L1 e os comentários são colocados após o ponto
e vírgula).
L1: SUB EAX, EDX ; subtrai conteúdo do reg EDX do conteúdo de EAX e armazena o result
em EAX
Operando(s): uma sentença de linguagem de montagem inclui zero ou mais operandos. Cada
operando identifica um valor imediato, um registrador ou uma posição de memória. Para
endereçamento por registrador, o nome do registrador é usado, ex.: MOV ECX, EBX. O
endereçamento imediato indica que o valor é codificado dentro da instrução, ex.: MOV EAX,
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 62
www.estrategiaconcursos.com.br 97
Esses oito registradores possuem tamanho de 32 bits são "estendidos". Os 16 bits de ordem mais
baixa de cada um dos registradores podem ser acessados através das versões não estendidas. As
versões de 16 bits possuem os mesmos nomes que versões de 32 bits, com exceção de a letra E
ser retirada (ex: EAX → AX). As versões estendidas dos registradores não existem em gerações
anteriores à 80386 (primeira geração de processadores 32 bits da arquitetura x86).
As versões não estendidas dos quatro primeiros registradores de uso geral dividem-se ainda em
dois grupos de 8 bits cada um. O octeto (byte) de ordem mais alta é acessado trocando o X por
um H (exemplo: AX → AH), e o octeto de ordem mais baixa trocando o X por um L (ex.: AX →
AL). Fica fácil lembrar quando sabemos que H = High (Alta) e L = Low (Baixa).
Agora vamos ver alguns dos mnemônicos mais conhecidos e seus significados:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 63
www.estrategiaconcursos.com.br 97
Por fim, vamos ver um exemplo de programa completo em Assembly, o clássico "Hello World!":
section .data
msg db "Hello World!",0x0a ; string "Hello world!"
len equ $-msg ; calcula o tamanho da string msg
section .text ; início da seção de texto
global _start ; onde deve começar a execução (assim como a main da
ling. C)
; exit
mov eax, 1 ; move o valor 1 para o registo eax
mov ebx, 0 ; move o valor 0 para o registo ebx
int 0x80 ; chamada de sistema para o kernel
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 64
www.estrategiaconcursos.com.br 97
Comentários:
EA = A
Essa técnica era comum nas primeiras gerações de computadores, requer apenas uma referência
à memória e nenhum cálculo especial. A limitação é que ela oferece um espaço de endereçamento
limitado.
Gabarito: Correta
Comentários:
Gabarito: Letra D
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 65
www.estrategiaconcursos.com.br 97
ADD A,(R1), 8
D) O resultado da soma do valor 8 com o dado que está na memória em um endereço apontado
por R1 é armazenado no acumulador.
E) O resultado da soma do valor que está armazenado em R1 com o dado que está na memória
de endereço 8 é armazenado no acumulador.
Comentários:
Quando há dois operandos, o resultado da soma (ADD) dos dois é colocado no primeiro
operando. Mas a questão nos traz três, então a soma do segundo e do terceiro é colocada no
primeiro (A).
Como R1 está entre parênteses (ou poderia ser colchetes também, dependendo do processador),
indica que utiliza endereçamento indireto, ou seja, faz referência ao endereço de uma palavra na
memória, a qual possui o endereço completo do operando.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 66
www.estrategiaconcursos.com.br 97
De tudo isso, podemos ler da seguinte forma a instrução ADD A,(R1), 8: o valor 8 é somado com
o dado que está na memória em um endereço apontado por R1. O resultado é armazenado no
acumulador (denominado A, pela questão).
Gabarito: Letra D
A) imediato.
B) direto.
D) indireto.
E) indexado.
Comentários:
Operando = VALOR
Esse modo pode ser utilizado para definir e utilizar constantes ou definir valores iniciais das
variáveis. A vantagem é que nenhuma referência de memória (além de obter a instrução em si) é
necessária para obter o operando. Isso economiza um ciclo de memória ou de cache dentro do
ciclo de instrução. A desvantagem é que o tamanho do número é limitado ao tamanho do campo
de endereço (geralmente pequeno, se comparado ao tamanho da palavra, que é o tamanho
utilizado quando se busca um dado da memória).
Um exemplo que utiliza o modo de endereçamento imediato para mover o valor 20 16 para o
registrador B: MOV B, #20H
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 67
www.estrategiaconcursos.com.br 97
Gabarito: Letra A
Comentários:
EA = A
Essa técnica era comum nas primeiras gerações de computadores, requer apenas uma referência
à memória e nenhum cálculo especial. A limitação é que ela oferece um espaço de endereçamento
limitado.
Gabarito: Correta
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 68
www.estrategiaconcursos.com.br 97
Gabarito: Letra D
Qual das alternativas abaixo NÃO representa uma linguagem de programação de alto nível:
A) C
B) C++
C) Assembly
D) JAVA
E) Visual Basic
Comentários:
Questão light, né? C, C++, Java e Visual Basic possuem comandos bem mais próximos do ser
humano, são comandos em inglês em que um programador tem ideia do que ele faz e é mais
tranquilo programar. São linguagens de alto nível. A linguagem de montagem (Assembly) possui
mnemônicos para os opcodes da linguagem de máquina, lida diretamente com os registradores
do processador, então podemos ver que não tem nada de alto nível! Logo, a alternativa C está
correta e é o gabarito da questão.
Gabarito: Letra C
B) campo operando da instrução está indicado o endereço de memória, onde se localiza o dado.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 69
www.estrategiaconcursos.com.br 97
Comentários:
Essa técnica era comum nas primeiras gerações de computadores, requer apenas uma referência
à memória e nenhum cálculo especial. A limitação é que ela oferece um espaço de endereçamento
limitado.
Gabarito: Letra B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 70
www.estrategiaconcursos.com.br 97
ADD A,(R1), 8
D) O resultado da soma do valor 8 com o dado que está na memória em um endereço apontado
por R1 é armazenado no acumulador.
E) O resultado da soma do valor que está armazenado em R1 com o dado que está na memória
de endereço 8 é armazenado no acumulador.
A) imediato.
B) direto.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 71
www.estrategiaconcursos.com.br 97
D) indireto.
E) indexado.
Qual das alternativas abaixo NÃO representa uma linguagem de programação de alto nível:
A) C
B) C++
C) Assembly
D) JAVA
E) Visual Basic
B) campo operando da instrução está indicado o endereço de memória, onde se localiza o dado.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 72
www.estrategiaconcursos.com.br 97
GABARITO
1- D 3- Correta 5- C
2- A 4- D 6- B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 73
www.estrategiaconcursos.com.br 97
Relembrando...as linguagens de programação de alto nível são aquelas mais próximas do ser
humano. Alguns exemplos são ASP, C, Pascal, Visual Basic etc. A proporção entre as instruções
de alto nível e as de baixo nível (linguagem de montagem) é 1:n, ou seja, um simples printf("ola");
da linguagem C gera mais de uma instrução Assembly.
As linguagens de programação de baixo nível são próximas ao hardware, sendo que a linguagem
de montagem (Assembly) possui uma relação 1:1 com o código objeto (binário). Se for necessária
a união de mais de um código objeto (programa objeto), deve-se utilizar o ligador (linkeditor),
sendo que a carga ocorre em tempo de compilação. Quando utilizadas as DLLs (Dynamic Link
Library), a carga ocorre em tempo de execução. Ou seja, se for a união de algo "fixo" (códigos
objeto), há uma ligação deles, e no caso de DLLs, os programas fazem a chamada delas somente
quando são executados, deixando os executáveis menores.
Compilador
De uma forma mais abrangente, um compilador serve para traduzir o código fonte de uma
linguagem de programação de alto nível (C, Pascal etc.) para uma linguagem de programação de
baixo nível (Assembly ou código de máquina). O candidato tem que pescar da banca como ela
quer cobrar, se quer o entendimento alto nível → Assembly ou alto nível → código objeto. Abaixo
vamos ver as etapas da forma mais completa, mas pode ser que o examinador nem cobre todas.
Importante saber que existem as fases de análise (análise do código fonte) e de síntese. Coloquei
em vermelho e verde, de acordo com a figura apresentada abaixo. Dentro de cada fase existem
algumas etapas, que veremos a seguir.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 74
www.estrategiaconcursos.com.br 97
Otimizador de código: é uma etapa opcional que dificulta a engenharia reversa. A ideia principal
é a otimização de:
• Tempo;
• Espaço;
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 75
www.estrategiaconcursos.com.br 97
• Consumo energético.
Alguns termos interessantes que já foram cobrados em provas de concurso são mostrados a
seguir.
Compilador cruzado (cross compiler): produz código executável para uma plataforma diferente da
qual o compilador está sendo executado. Ex.: compilador no Linux que gera código para o
Windows.
Compilação JIT (Just In Time): tradução dinâmica (o próprio termo já deixa claro: "na hora").
Transforma um sistema híbrido em um sistema de compilação adiada (compilação de um programa
em tempo de execução). Segundo a IBM, “o JIT é um componente do ambiente de tempo de
execução que melhora o desempenho de aplicativos Java compilando bytecodes para o código
de máquina nativo em tempo de execução”.
Montador e Ligador
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 76
www.estrategiaconcursos.com.br 97
O linker não combina as DLLs (bibliotecas dinâmicas - códigos objeto utilizados por vários
programas), pois estas são carregadas em tempo de execução.
Como já vimos anteriormente, um compilador pode assumir o papel do assembler também, sendo
um "2 em 1", mas isso você tem que "pescar" da questão. Tudo depende do examinador que a
elaborou!
Vemos também na figura que, o código objeto, junto com bibliotecas (menos as bibliotecas
dinâmicas - DLLs), são ligados através do linker, para gerar o código executável. Na prática, um
compilador também já faz esse papel hoje em dia, mas lembre-se mais uma vez...estamos focando
em concurso, e pode haver a cobrança de todos os elementos que vimos de forma separada!
Interpretador
Até há pouco estávamos falando de tradução em que tínhamos uma entrada e era gerada uma
saída, ex.: código C compilado com o compilador gcc (que também "faz a parte do montador" e
do ligador), gerando um programa executável.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 77
www.estrategiaconcursos.com.br 97
Comentários:
Gabarito: Letra D
Comentários:
Enquanto um compilador traduz o código fonte em um código binário (o montador também faz
isso), o interpretador traduz instrução por instrução "online", sem gerar nenhum código
executável. Portanto, a questão está correta.
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 78
www.estrategiaconcursos.com.br 97
Comentários:
Tendo em consideração aquele conceito mais simples, está ok. Por exemplo, se você pegar o gcc,
que é um compilador bastante conhecido, é só passar como entrada um programa feito em C que
ele entrega o executável pronto para ser utilizado. Portanto, a questão está correta.
Gabarito: Correta
Comentários:
Uma biblioteca compartilhada (ex.: DLL, no Windows) não é compilada junto com o código fonte.
O executável faz chamadas à DLL, inclusive se a DLL for atualizada, as chamadas serão feitas para
a nova DLL sem haver a necessidade de nova compilação! Portanto, a questão está errada.
Gabarito: Errada
Comentários:
Enquanto um compilador traduz o código fonte em um código binário (o montador também faz
isso), o interpretador traduz instrução por instrução "online", sem gerar nenhum código
executável. Portanto, a questão está correta.
Gabarito: Correta
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 79
www.estrategiaconcursos.com.br 97
Gabarito: Errada
5. (CESPE/ABIN - 2018) Chama-se cruzado o compilador que gera um programa que seja
executável em pelo menos um sistema operacional diferente daquele onde o compilador tenha
sido executado.
==66540==
Comentários:
Compilador cruzado (cross compiler): produz código executável para uma plataforma diferente da
qual o compilador está sendo executado. Ex.: compilador no Linux que gera código para o
Windows.
Gabarito: Correta
Comentários:
Analisador léxico: tem como principal função a fragmentação do programa fonte em trechos
elementares completos e com identidade própria (tokens). São eliminados os delimitadores e
comentários, há a identificação de palavras reservada etc.
Há uma varredura no programa fonte da esquerda para a direita, agrupando os símbolos de cada
item léxico e determinando a sua classe. Os tokens são representados por três propriedades:
classe, valor e posição. Classe é uma palavra reservada, um operador aritmético, delimitadores,
identificadores etc. Alguns exemplos de token, entre aspas: "if", "else", "(", ")", "+", "-".
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 80
www.estrategiaconcursos.com.br 97
Comentários:
Analisador semântico: tem como principal objetivo captar o significado das ações a serem
tomadas no código fonte. Sua principal função é criar uma interpretação do texto, gerando uma
linguagem intermediária. Algumas ações típicas são:
Gabarito: Correta
Comentários:
Agora apareceu uma questão que cobra o conceito mais "detalhista", ou seja, que o compilador
traduz de uma linguagem de alto nível (ex.: C) em uma linguagem de baixo nível (linguagem de
montagem - Assembly). A partir daqui quem assume é o assembler e o linker. Portanto, a questão
está correta.
Gabarito: Correta
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 81
www.estrategiaconcursos.com.br 97
A) debugger.
B) compilador.
C) montador.
D) fortran.
E) otimizador.
Comentários:
Podemos ver que a banca optou pelo conceito mais abrangente, aquele que define que o
compilador traduz do código fonte de alto nível para o Assembly (baixo nível). Depois deveria ser
utilizado o montador para transformar o Assembly em código objeto e, se fosse necessário fazer
alguma ligação com bibliotecas ou outros códigos objeto, deveria ser utilizado um ligador (linker).
Portanto, a alternativa B está correta e é o gabarito da questão.
Gabarito: Letra B
A) programas objeto.
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 82
www.estrategiaconcursos.com.br 97
O ligador (linker) está lá no fim, depois do código fonte ter sido compilado e montado. Ele gera
o código binário pronto para ser executado. Portanto, a alternativa D está correta e é o gabarito
da questão.
Gabarito: Letra D
A) tradutor capaz de gerar código para uma máquina virtual que executará o programa.
Comentários:
Nessa questão o examinador utilizou o conceito mais simplificado de compilador, pois ele "pega"
o código fonte e já entrega o executável pronto para ser executado no sistema operacional o qual
o compilador funciona (ex.: compilador no Windows gerando um software para o Windows).
Notamos que esse compilador é aquele que tem "embutidas" as funcionalidades do montador e
do ligador também. Portanto, a alternativa E está correta e é o gabarito da questão.
Gabarito: Letra E
A) Montagem.
B) Compilação.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 83
www.estrategiaconcursos.com.br 97
C) Linkedição.
D) Interpretação.
E) Carregador.
Comentários:
Percebemos que essa questão é detalhista, ou seja, o compilador não gera direto o executável.
Então vamos ver a sequência: código fonte → compilador → montador → ligador (link-editor) →
executável.
Gabarito: Letra C
III. Verificação das estruturas quanto ao sentido, ou seja, se o programa não possui erros de
significado. Por exemplo, verifica se um identificador declarado como variável é utilizado como
tal, se existe compatibilidade entre operandos e operadores em expressões etc.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 84
www.estrategiaconcursos.com.br 97
Comentários:
I. Quando o foco é em tokens, estamos falando da análise léxica. II. Quando o foco é em varredura
(parsing) para a produção de uma estrutura em árvore (árvore de derivação), estamos falando da
análise sintática. III. Quando há uma busca pelo sentido/significado, trata-se da análise semântica.
Portanto, a alternativa A está correta e é o gabarito da questão.
Gabarito: Letra A
II. recebe como entrada um conjunto de arquivos objetos e bibliotecas, e produz como
resultado um arquivo objeto de saída;
III. traduz um programa descrito em uma linguagem de alto nível para um programa em
linguagem simbólica ou linguagem de máquina;
IV. recebe uma instrução do programa fonte, converte-a em linguagem de máquina e ordena
ao computador que execute esta instrução.
Comentários:
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 85
www.estrategiaconcursos.com.br 97
Em relação ao interpretador, é aquele programa que não gera um executável, ele simplesmente
vai traduzindo e executando instrução por instrução na medida em que vai lendo o código fonte.
Gabarito: Letra D
B) do tipo JIT- Just in Time tem sido utilizado em linguagens como Java e C#. Na prática, JIT
transforma um sistema híbrido em um sistema de compilação adiada.
C) que utiliza implementação híbrida traduz o programa para um código de formato intermediário
e este código é compilado.
D) separa a tarefa de analisar a semântica do código em 2 partes: análise léxica e análise sintática.
Este processo é realizado por uma máquina virtual.
E) de uma linguagem de programação traduz código de baixo nível para linguagem de máquina.
Comentários:
Compilação JIT (Just In Time): tradução dinâmica (o próprio termo já deixa claro: "na hora").
Transforma um sistema híbrido em um sistema de compilação adiada (compilação de um programa
em tempo de execução). Segundo a IBM, “o JIT é um componente do ambiente de tempo de
execução que melhora o desempenho de aplicativos Java compilando bytecodes para o código
de máquina nativo em tempo de execução”.
Gabarito: Letra B
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 86
www.estrategiaconcursos.com.br 97
Comentários:
Gabarito: Letra B
Comentários:
Gabarito: Letra D
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 87
www.estrategiaconcursos.com.br 97
Comentários:
O ligador (link-editor) é aquele "lá no final", que une códigos objeto em um único arquivo
executável. Daí o nome ligador! Portanto, a alternativa D está correta e é o gabarito da questão.
Gabarito: Letra D
11. (SUGEP-UFRPE/UFRPE - 2018) Abaixo, estão enumeradas as fases que integram o front-end
de um compilador:
1) Análise Semântica
2) Análise Léxica
3) Análise Sintática
A) 1, 3, 2 e 4.
B) 3, 1, 4 e 2.
C) 2, 3, 1 e 4.
D) 1, 4, 2 e 3.
E) 4, 1, 2 e 3.
Comentários:
2, 3, 1 e 4
Verifica os tokens (análise léxica) → Realiza a varredura (parsing) para montar a árvore de derivação
(análise sintática) → verifica o significado (tipo de dados, fluxo) (análise semântica) → gera o
código intermediário. Portanto, a alternativa C está correta e é o gabarito da questão.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 88
www.estrategiaconcursos.com.br 97
Gabarito: Letra C
12. (IBADE/Câmara de Porto Velho-RO - 2018) Algumas linguagens exigem que o código fonte
seja previamente traduzido para linguagem de máquina antes de ser executado. Chama-se
esta fase de:
A) Linkedição.
B) Interpretação.
C) Tradução.
D) Compilação.
E) Edição.
Comentários:
O examinador usou o conceito mais simples, aquele em que o compilador possui "embutidos" o
assembler e o link-editor, tendo como entrada o código fonte e como saída o arquivo executável.
Portanto, a alternativa D está correta e é o gabarito da questão.
Gabarito: Letra D
D) a quantidade de estágios de pipeline que a arquitetura deve ter para executar o programa.
Comentários:
O conjunto de instruções de uma arquitetura (ISA) define as instruções e os seus formatos. Não
tem nada a ver com compilador! Só coloquei aqui como pegadinha mesmo! Portanto, a alternativa
C está correta e é o gabarito da questão.
Gabarito: Letra C
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 89
www.estrategiaconcursos.com.br 97
2. (CESPE/TCE-PA - 2016) Na compilação de um programa que chama uma biblioteca compartilhada, todo
o código da biblioteca é copiado e inserido dentro do binário final.
5. (CESPE/ABIN - 2018) Chama-se cruzado o compilador que gera um programa que seja executável em
pelo menos um sistema operacional diferente daquele onde o compilador tenha sido executado.
6. (CESPE/ABIN - 2018) Em um compilador, os tokens são identificados na fase de análise léxica e são
representados por três propriedades: classe, valor e posição.
7. (CESPE/ABIN - 2018) A etapa de análise semântica de um compilador tem como objetivo verificar os
inter-relacionamentos de um programa, validando tipologias, fluxos de controle e unicidade na
declaração de variáveis.
8. (CESPE/EBSERH - 2018) Compilador é o programa que traduz o código fonte de uma linguagem de
programação de alto nível para uma linguagem de programação de baixo nível.
GABARITO
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 90
www.estrategiaconcursos.com.br 97
A) debugger.
B) compilador.
C) montador.
D) fortran.
E) otimizador.
A) programas objeto.
A) tradutor capaz de gerar código para uma máquina virtual que executará o programa.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 91
www.estrategiaconcursos.com.br 97
A) Montagem.
B) Compilação.
C) Linkedição.
D) Interpretação.
E) Carregador.
III. Verificação das estruturas quanto ao sentido, ou seja, se o programa não possui erros de
significado. Por exemplo, verifica se um identificador declarado como variável é utilizado como
tal, se existe compatibilidade entre operandos e operadores em expressões etc.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 92
www.estrategiaconcursos.com.br 97
II. recebe como entrada um conjunto de arquivos objetos e bibliotecas, e produz como
resultado um arquivo objeto de saída;
III. traduz um programa descrito em uma linguagem de alto nível para um programa em
linguagem simbólica ou linguagem de máquina;
IV. recebe uma instrução do programa fonte, converte-a em linguagem de máquina e ordena
ao computador que execute esta instrução.
B) do tipo JIT- Just in Time tem sido utilizado em linguagens como Java e C#. Na prática, JIT
transforma um sistema híbrido em um sistema de compilação adiada.
C) que utiliza implementação híbrida traduz o programa para um código de formato intermediário
e este código é compilado.
D) separa a tarefa de analisar a semântica do código em 2 partes: análise léxica e análise sintática.
Este processo é realizado por uma máquina virtual.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 93
www.estrategiaconcursos.com.br 97
E) de uma linguagem de programação traduz código de baixo nível para linguagem de máquina.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 94
www.estrategiaconcursos.com.br 97
11. (SUGEP-UFRPE/UFRPE - 2018) Abaixo, estão enumeradas as fases que integram o front-end
de um compilador:
1) Análise Semântica
2) Análise Léxica
3) Análise Sintática
A) 1, 3, 2 e 4.
B) 3, 1, 4 e 2.
C) 2, 3, 1 e 4.
D) 1, 4, 2 e 3.
E) 4, 1, 2 e 3.
12. (IBADE/Câmara de Porto Velho-RO - 2018) Algumas linguagens exigem que o código fonte
seja previamente traduzido para linguagem de máquina antes de ser executado. Chama-se
esta fase de:
A) Linkedição.
B) Interpretação.
C) Tradução.
D) Compilação.
E) Edição.
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 95
www.estrategiaconcursos.com.br 97
D) a quantidade de estágios de pipeline que a arquitetura deve ter para executar o programa.
GABARITO
1- B 6- D 11- C
2- D 7- B 12- D
3- E 8- B 13- C
4- C 9- D
5- A 10- D
Caixa Econômica Federal - CEF (Técnico Bancário - TI) Arquitetura de Computadores - 2024 (Pós-Edital) 96
www.estrategiaconcursos.com.br 97