Arquitetura de Computadores · Banco de Questões

Exercícios
Propostos

Prof. Clayton J A Silva · Ibmec RJ · organizado por capítulo

AP1 · AP2 · AS 2022.2 – 2024.1 61 exercícios 9 seções

00 / Introdução

Banco de exercícios extraído das avaliações aplicadas na disciplina, organizado pelos capítulos do programa.

Este documento reúne exercícios propostos na disciplina de Arquitetura de Computadores, extraídos das avaliações (AP1, AP2 e AS) aplicadas nas turmas de 2022.2, 2023.2 e 2024.1. As questões foram selecionadas entre as diferentes variantes usadas em cada turma — quando duas provas traziam a mesma questão apenas com valores numéricos distintos, manteve-se uma única versão representativa; quando as variantes eram qualitativamente diferentes (por exemplo, dois circuitos ou dois enunciados de programação distintos), ambas foram mantidas.

Os enunciados foram revisados e, quando necessário, pequenos equívocos de formulação ou de transcrição foram corrigidos — preservando integralmente a forma e o conteúdo de cada questão. As principais correções estão sinalizadas ao longo do texto em caixas de nota. Os circuitos lógicos e o diagrama de temporização que ilustravam algumas questões, originalmente capturas de tela de ferramentas de simulação, foram redesenhados como imagens vetoriais (SVG).

A organização segue os capítulos da disciplina (Arquitetura de Computadores — 2026.2), listados a seguir.

01 / Sumário

02 / Capítulo 1 — Máquina de von Neumann

Elementos e organização da arquitetura, endereçamento, representação de instruções e o conjunto de instruções da máquina IAS.

  1. A máquina de von Neumann possui elementos com funções bem definidas. A arquitetura básica contempla processador, memória e dispositivos de entrada/saída, elementos que são interconectados possibilitando o resultado conjunto. A respeito da arquitetura, avaliar as afirmações:

    1. O processador possui tipicamente duas unidades funcionais: unidade lógica e aritmética e unidade de controle.
    2. O sinal trafegado pelos barramentos de dados e de endereços possui uma abstração que se configura como unidade básica de informação, chamada de bit.
    3. As informações podem ser indicadas em múltiplos de bits, chamados de bytes.

    Assinalar a alternativa correta: (a) I e II corretas; (b) I e III corretas; (c) II e III corretas; (d) todas corretas; (e) todas incorretas.

    Fonte: AS — 2023.2, questão 2.
  2. Um programa armazenado em memória, em uma máquina de von Neumann, ocupa os endereços compreendidos entre as posições de memória 0x01A e 0x1B6. Quantas instruções são executadas, admitindo que o espaço de memória seja plenamente ocupado por instruções? Qual é o espaço em memória ocupado, em bytes?

    Fonte: AP1 — 2022.2, questão 1d.
  3. Seja uma máquina computacional de arquitetura similar à máquina de von Neumann. A máquina possui instruções de modo direto com operandos de 10 bits. Quais são os limites inferior e superior de memória que podem ser usados pelas instruções, em hexadecimal? A máquina possui também instruções de modo imediato com 10 bits, cujo operando é dividido em dois campos. Admitindo binário puro, qual é o valor máximo dos dados operados por essas instruções, em decimal?

    Fonte: AP1 — 2022.2, questão 1e.
  4. Um programa armazenado em uma máquina de von Neumann ocupa as linhas de endereço 0x1AA a 0x200 da memória. Admitindo que 65% das instruções requeiram um acesso para busca ou escrita de dados na memória, cujo tempo de resposta é de 2 nanossegundos, qual seria o tempo aproximado de execução do programa?

    Fonte: AP1 — 2022.2, questão 1f.
  5. Assinalar verdadeiro (V) ou falso (F) nas proposições sobre o registrador de instrução (IR), o registrador temporário de instrução (IBR), o contador de programa (PC) e o endereçamento de memória:

    1. A camada mais primitiva é definida como o nível de lógica digital; o componente básico desse nível é a porta lógica.
    2. Quanto mais alto o nível ou camada, maior será a abstração da sua respectiva linguagem.
    3. O Sistema Operacional é a camada de maior abstração, pois contempla uma linguagem cujas instruções estão diretamente acessíveis ao usuário.
    4. O nível de microarquitetura compreende os circuitos especializados, como circuitos lógicos e aritméticos, que são internos ao processador.
    5. No modelo de níveis, a camada de microarquitetura está imediatamente acima do nível mais primitivo.
    6. Cada um dos circuitos especializados do nível de microarquitetura é responsável pela execução de uma tarefa específica, uma vez selecionado pela Unidade de Controle após a decodificação da instrução binária.
    Fonte: AP2 — 2024.1 (turma 2A), questão 1.1.
  6. Seja a sequência de instruções de um programa em linguagem de montagem para a máquina de von Neumann:

    load  m(x), 0x000
    add   m(x), 0x001
    stor  m(x), 0x003
    sub   m(x), 0x002
    stor  m(x), 0x003

    Responder:

    1. Considerando o modelo de máquina de níveis, a qual nível corresponde o programa?
    2. O referido programa na forma binária corresponde a qual nível do modelo da máquina de níveis?
    3. A máquina de níveis possui uma camada híbrida, com instruções cuja abstração é próxima do nível de hardware e outras, próxima do nível de aplicação — como é chamada essa camada?
    4. O nível de lógica digital contempla o uso de dispositivos chamados de que?
    5. Os elementos internos ao processador definem o nível da máquina designado como que?

    Em seguida, avaliar as afirmações a respeito do mesmo programa: (I) o programa soma dois dados, respectivamente das posições de memória 0x000 e 0x001, subtrai do dado armazenado no endereço 0x002 e armazena o resultado no endereço 0x003; (II) a primeira instrução stor m(x), 0x003 poderia ser excluída sem alterar o resultado final; (III) o programa ocupa no mínimo três linhas de endereço de memória. Assinalar a alternativa correta quanto à veracidade de I, II e III, e apresentar a representação em binário das instruções da primeira linha de endereço do código.

    Fonte: AS — 2023.2, questões 6, 7 e 8.
  7. Elaborar um programa para ler e somar os dados armazenados nos endereços 0x00B a 0x010 da memória de uma máquina IAS. A primeira instrução do programa deve desviar a execução para o endereço 0x100. O programa deve subtrair o resultado encontrado do dado armazenado no endereço 0x011 e multiplicar por 2. O resultado final deve ser armazenado no endereço 0x012. Apresentar o código em assembly e o código convertido para a linguagem de máquina (em hexadecimal) — admitir que os endereços das posições acima de 0x012 podem ser usados para armazenar dados temporários. Usar a tabela de códigos da máquina IAS apresentada a seguir.

    Conjunto de instruções da máquina IAS (tabela corrigida)
    CódigoInstruçãoDescrição
    0000 0001LOAD M(X)Transfere o conteúdo da posição de memória X para o acumulador (ACC)
    0000 0010LOAD −M(X)Transfere o negativo do conteúdo de M(X) para o ACC
    0000 0011LOAD |M(X)|Transfere o valor absoluto de M(X) para o ACC
    0000 0100LOAD −|M(X)|Transfere o negativo do valor absoluto de M(X) para o ACC
    0000 0101ADD M(X)Soma M(X) ao ACC; armazena o resultado no ACC
    0000 0110SUB M(X)Subtrai M(X) do ACC; armazena o resultado no ACC
    0000 0111ADD |M(X)|Soma o módulo de M(X) ao ACC; armazena o resultado no ACC
    0000 1000SUB |M(X)|Subtrai o módulo de M(X) do ACC; armazena o resultado no ACC
    0000 1001LOAD MQ,M(X)Transfere o conteúdo de M(X) para o registrador MQ
    0000 1010LOAD MQTransfere o conteúdo do registrador MQ para o ACC
    0000 1011MUL M(X)Multiplica M(X) por MQ; bits mais significativos em ACC, menos significativos em MQ
    0000 1100DIV M(X)Divide ACC por M(X); quociente em MQ, resto em ACC
    0000 1101JUMP M(X,0:19)A próxima instrução é buscada nos bits 0 a 19 de M(X)
    0000 1110JUMP M(X,20:39)A próxima instrução é buscada nos bits 20 a 39 de M(X)
    0000 1111JUMP+ M(X,0:19)Se ACC ≥ 0, a próxima instrução é buscada nos bits 0 a 19 de M(X)
    0001 0000JUMP+ M(X,20:39)Se ACC ≥ 0, a próxima instrução é buscada nos bits 20 a 39 de M(X)
    0001 0001LSHMultiplica o conteúdo do acumulador por 2 (deslocamento à esquerda)
    0001 0010RSHDivide o conteúdo do acumulador por 2 (deslocamento à direita)
    0001 0011STOR M(X,8:19)Transfere os 12 bits mais à direita do ACC para os bits 8:19 de M(X)
    0001 0100STOR M(X,28:39)Transfere os 12 bits mais à direita do ACC para os bits 28:39 de M(X)
    0010 0001STOR M(X)Transfere o conteúdo do ACC para a posição de memória X
    Correção de transcrição: nas provas originais, JUMP+ M(X,20:39) aparecia com o mesmo código de JUMP M(X,20:39) (0000 1110); SUB M(X) aparecia grafado como 0010 0110 (colidindo com o padrão de STOR M(X)); e, em uma das variantes, a última linha da tabela — que é uma instrução de alteração de endereço — estava rotulada como JUMP M(X,28:39) em vez de STOR M(X,28:39). A tabela acima apresenta os códigos corrigidos e consistentes.
    Fonte: AP1 — 2022.2, questão 2, e tabela anexa às provas AP1/AP2/AS.

03 / Capítulo 2 — Organização e Modelo de Máquina de Níveis

Camadas do modelo de níveis, tradução versus interpretação, e os elementos que realizam a conversão entre camadas.

  1. Explique sucintamente a distinção entre interpretação e tradução no processo de conversão de códigos de uma máquina computacional de um nível para a máquina do nível inferior, considerando o modelo de máquina de níveis ou camadas.

    Fonte: AP1 — 2022.2, questão 1a.
  2. Citar três elementos do nível de microarquitetura na máquina de von Neumann, explicando o seu papel. Segundo o modelo de seis níveis, como se designa o nível imediatamente superior ao nível de microarquitetura e qual é o seu significado?

    Fonte: AP1 — 2022.2, questão 1b.
  3. As portas lógicas executam operações sobre dados na forma elétrica, abstraídos como 0s e 1s. Considerando o modelo da máquina de seis níveis, a qual nível pertencem os circuitos combinacionais construídos com portas lógicas? Cite um exemplo desse tipo de circuito.

    Fonte: AP1 — 2022.2, questão 1c.
  4. Estabelecer a relação entre as funções apresentadas na coluna da esquerda e os respectivos elementos da arquitetura dos sistemas computacionais, na coluna da direita:

    FunçãoElemento
    Realiza a conversão e execução das instruções de um código de uma camada, uma a uma, para instruções da linguagem da(s) camada(s) inferior(es)Tradutor
    Uma das seis camadas estudadas é chamada comumente de camada híbridaInterpretador
    Realiza a conversão de todas as instruções de um código de uma camada para instruções da linguagem da(s) camada(s) inferior(es)Nível de lógica digital
    Realiza especificamente a conversão das instruções em linguagem de montagem para instruções em linguagem de máquinaSistema Operacional
    Contém elementos chamados de portas lógicas; constitui a camada mais primitiva do modelo de níveisMontador
    Fonte: AP2 — 2024.1 (turma 2A), questão 1.2.
  5. Preencher as lacunas das afirmações a seguir com o termo mais adequado:

    1. No modelo de máquina de níveis, a camada mais primitiva é definida como o ____________. O componente básico desse nível é a porta lógica.
    2. O Sistema Operacional é a camada que contempla uma linguagem cujas instruções estão diretamente acessíveis ao usuário e instruções mais próximas do nível de linguagem de máquina — por esse motivo, em termos de abstração, é chamada de camada ____________.
    3. O elemento da arquitetura que realiza a conversão e execução das instruções de um código de uma camada, uma a uma, para instruções da linguagem da(s) camada(s) inferior(es) é chamado de ____________.
    4. Cada um dos circuitos especializados do nível de ____________ é responsável pela execução de uma tarefa específica, uma vez selecionado pela Unidade de Controle após a decodificação da instrução binária.
    5. O programa que converte as instruções do nível de linguagem de montagem para as camadas inferiores é chamado de ____________.
    Fonte: AS — 2024.1, 1ª parte.
  6. Explique sucintamente o que caracteriza o processo de conversão de código de uma camada para sua camada subjacente inferior, distinguindo tradução e interpretação. Em seguida, selecionar, entre as seis camadas do modelo, qual delas recebe a designação de camada híbrida.

    Fonte: AP2-teste — 2024.1, questões 3 e 4.
  7. Preencher as lacunas para construir proposições verdadeiras a respeito do nível ISA e do nível de linguagem de montagem:

    1. A instrução LDI Rd, k carrega o valor k no registrador Rd. O operando é o próprio dado — nesse caso, a instrução é chamada de modo ____________ (imediato/direto).
    2. A instrução LDS Rd, k carrega o dado contido no endereço k no registrador. O operando indica o endereço do dado — nesse caso, a instrução é chamada de modo ____________ (imediato/direto).
    3. Nos códigos em linguagem de montagem (assembly), tipicamente as instruções ocupam linhas ____________ (adjacentes/não adjacentes) de memória, o que inspira o uso do conceito de programa armazenado.
    4. Comparando as instruções LDI e LDS, é intuitivo pensar que a instrução LDI é mais ____________ (rápida/lenta), porque realiza menos acessos à memória para ser executada.
    Fonte: AP2 — 2024.1 (turma 2A), 3ª parte.

04 / Capítulo 3 — Nível de Lógica Digital

Circuitos combinacionais: projeto a partir de especificação, derivação da expressão lógica a partir de um circuito dado, e construção de tabelas-verdade.

Projeto de circuitos a partir de uma especificação

  1. Utilizando portas lógicas AND, OR e inversores, implementar um circuito que receba um número N de 3 bits e o multiplique por 2 (o que equivale a deslocar o número um bit à esquerda).

    Fonte: AP1 — 2022.2, questão 4a.
  2. Utilizando portas lógicas AND, OR e inversores, propor um circuito para implementar a expressão lógica y(A,B,C) = A·B + A·C + A·B·C.

    Fonte: AS — 2022.2, questão 10ii.

Derivação da expressão lógica a partir do circuito

Para cada circuito, apresentar a expressão lógica de S, indicando parcialmente a expressão na saída de cada porta.

  1. Seja o circuito apresentado na figura abaixo.

    A B 1 C 3 D S
    Circuito combinacional — portas 1 (AND), 2 (inversor), 3 (OR) e porta AND de saída
    Fonte: AP1 — 2022.2, questão 4b.
  2. Seja o circuito apresentado na figura abaixo.

    A 1 B 2 C 3 4 5 D 6 7 S
    Circuito combinacional — portas 1, 4 (inversores), 2, 3, 6 (OR), 5 (AND) e 7 (inversor de saída)
    Fonte: AP1 — 2022.2 (variante 2), questão 4b.
  3. Seja o circuito apresentado na figura abaixo.

    A B 1 C D 2 3 4 5 S
    Circuito combinacional — portas 1 (AND), 2, 3, 5 (OR) e 4 (inversor)
    Fonte: AP2 — 2024.1 (turma 2A) / AS — 2024.1 (turma 3A), questão de lógica digital.
  4. Seja o circuito apresentado na figura abaixo.

    A B 1 C D 2 3 4 5 6 7 S
    Circuito combinacional — portas 1, 2, 6, 7 (OR), 3, 5 (inversores) e 4 (AND)
    Fonte: AP2-teste — 2024.1 (turmas 3A/4A), questão de lógica digital.

Tabela-verdade a partir de uma expressão lógica dada

  1. Apresentar a tabela-verdade relativa à expressão lógica do circuito dada por:

    S(A,B,C) = A·B·C + A·C + (A+B)·C

    Fonte: AP2 — 2024.1 (turma 2A), questão de lógica digital.
  2. Seja a proposição X = p + q + (~p·r + s), onde a conjunção é representada por (.), a disjunção por (+) e a negação por (~).

    1. Determine o valor lógico da expressão para V(p) = V(q) = 1 e V(r) = V(s) = 0.
    2. Quantas linhas deve possuir a tabela-verdade completa dessa expressão?
    Fonte: AS — 2023.2, questão 12b–c.

05 / Capítulo 4 — Sistema de Memória

Capacidade, tempo de acesso, hierarquia de memória, cache e mapeamento direto.

  1. Os dispositivos de memória possuem características que impactam o desempenho global do sistema computacional. Citar e explicar com suas palavras duas dessas características.

    Fonte: AP2 — 2022.2, questão 1.
  2. Considere uma memória com 15 linhas de endereço, que armazena em cada linha uma palavra de 12 bits. Determinar a capacidade de armazenamento do dispositivo, em bits e em bytes.

    Fonte: AS — 2022.2, questão 2.
  3. Admitindo que o processador realize 2000 operações de leitura/escrita em um barramento de dados de 16 bits de um dispositivo de memória, no intervalo de 10 milissegundos, qual é a largura de banda (taxa de transmissão) no barramento?

    Fonte: AS — 2022.2, questão 3.
  4. Seja uma memória RAM cujo tempo de acesso é de 150 nseg. (i) Qual será o tempo médio de execução de um programa composto por 200 instruções com acesso à memória? (ii) Se o programa possuir mais 1000 instruções que não acessam à memória, cujo tempo de execução médio seja de 5 nseg por instrução, qual será o novo tempo de execução do programa? Presumir que o tempo de sistema é muito menor do que o tempo de acesso.

    Fonte: AS — 2022.2, questão 4.
  5. A arquitetura dos sistemas computacionais organiza o sistema de memória alocando diversos e diferentes tipos de tecnologias. (i) Explicar com suas palavras o que significa uma memória volátil. (ii) Quais são as tecnologias típicas empregadas na organização da memória secundária?

    Fonte: AP2 — 2022.2, questão 5.
  6. Explicar com suas palavras o conceito de programa armazenado na organização do sistema de memória das arquiteturas de computadores.

    Fonte: AP2 — 2022.2, questão 6.
  7. Seja um programa armazenado em memória constituído por 500 instruções, executado por um determinado processador. As 100 instruções que não acessam memória são executadas, cada uma, em quatro ciclos de clock interno do processador, de 100 MHz. As demais instruções são executadas com acesso à memória, cuja latência é de 200 nseg — admitir a latência aproximadamente igual ao tempo de acesso. (i) Determinar o tempo de execução do programa nessa máquina. (ii) Admitir que o projeto da arquitetura evoluiu e que foi inserida uma cache com latência de 5 nseg. Considerando uma taxa de acerto de 75%, em quanto tempo o programa passará a ser executado?

    Fonte: AS — 2022.2, questão 6.
  8. Seja um sistema de memória de uma arquitetura computacional que utilize mapeamento direto MP–cache. A memória primária possui 128 MB de capacidade de armazenamento; a cache possui 32 kB. Ambas utilizam palavras de 1 byte. (i) Admitindo que cada bloco da cache possua 8 kB, quantos blocos e quantas linhas de cache da MP o sistema possuirá? (ii) Quantas e quais linhas de cache na MP estarão mapeadas em cada bloco? (iii) Explicar, justificando, o que acontecerá se o processador requisitar o endereço 2456d, admitindo que estejam carregadas na cache, respectivamente, as linhas L0, L1, L2 e L3.

    Fonte: AP2 — 2022.2, questão 8.
  9. Explicar, com suas palavras, a política de substituição de dados da cache utilizando a técnica LRU. Ilustrar com um exemplo com base nos dados do exercício anterior (mapeamento direto MP–cache).

    Fonte: AP2 — 2022.2, questão 9.
  10. Assinalar verdadeiro (V) ou falso (F):

    1. O nível mais baixo da hierarquia de memória representa os componentes de armazenamento com tipicamente elevada capacidade e baixa velocidade.
    2. Os registradores são os elementos que possuem menor capacidade de armazenamento e menor latência, estando portanto no topo da pirâmide.
    3. A memória de trabalho, que ocupa as posições intermediárias da pirâmide, é chamada de memória primária.
    4. A medida de custo de elementos de memória é tipicamente definida em unidade monetária por bit.
    5. A tecnologia de memória que requer alimentação elétrica para manter os dados define a memória designada como memória estática.
    6. Quanto ao tipo de acesso aos dados armazenados, a memória pode ser classificada como aleatória ou de acesso sequencial.
    Fonte: AP2 — 2024.1 (turma 2A), 4ª parte.
  11. Completar as lacunas com as respostas corretas:

    1. Dada uma memória com latência de 5 nanossegundos e um barramento de dados de 20 bits, a vazão é de ____________.
    2. Seja um programa com 1000 instruções, em que 90% acessam o sistema de memória, cuja latência é de 20 nanossegundos. Ignorando o tempo de execução das demais instruções e o tempo de busca da instrução em memória, o programa será executado no tempo de ____________.
    3. Seja um programa com 1000 instruções, em que 10% acessam a memória primária, cuja latência é de 20 nanossegundos, e as demais acessam a memória cache, cuja latência é de 3 nanossegundos. Ignorando o tempo de busca da instrução em memória, o programa será executado no tempo de ____________.
    4. A memória cache é fundamental para aumentar a performance do sistema computacional, possuindo tipicamente velocidade maior do que a memória primária. A eficiência do seu uso está condicionada ao princípio ____________.
    Fonte: AP2 — 2024.1 (turma 2A), 4ª parte.
  12. Explique sucintamente o que é o princípio de localidade. Qual é o elemento de memória cujo funcionamento se baseia nesse princípio?

    Fonte: AS — 2024.1, 3ª parte.
  13. Quais são os três parâmetros típicos para avaliação do desempenho de elementos de memória?

    Fonte: AS — 2024.1, 3ª parte.
  14. Como se designa a tecnologia de memória em que o armazenamento do dado depende da alimentação ou não de energia elétrica?

    Fonte: AS — 2024.1, 3ª parte.

06 / Capítulo 5 — Barramento

Sinais, temporização, classificação funcional e vazão.

  1. Sejam os sinais elétricos apresentados na figura abaixo, trafegando em um barramento entre processador e memória. Admitindo um clock de 2,5 MHz:

    ck R endereço dados
    Diagrama de temporização — sinais de clock (ck), pedido de leitura (R), endereço e dados
    1. Em quanto tempo o processador realizará a leitura de dados?
    2. A comunicação estabelecida se classifica como síncrona ou assíncrona? Justificar a resposta.
    Fonte: AP2 — 2022.2, questão 10.
  2. Quanto à funcionalidade, como os barramentos podem ser classificados?

    Fonte: AS — 2023.2, questão 12d.
  3. Seja uma memória endereçável por um barramento de 16 bits, com palavra de 1 byte. Qual é a capacidade de armazenamento da memória em kbits? Se o tempo de resposta da memória é de 5 milissegundos, qual será a taxa ou vazão em um barramento de 8 bits?

    Fonte: AS — 2023.2, questão 4.

07 / Capítulo 6 — Processadores

Unidades funcionais e desempenho.

  1. Cite duas estratégias de aumento de performance dos processadores.

    Fonte: AS — 2023.2, questão 12e.
  2. O processador possui tipicamente duas unidades funcionais. Quais são elas e qual é o papel de cada uma?

    Fonte: AS — 2023.2, questão 2 (item I).
  3. A unidade de controle de um sistema computacional é alimentada por um sinal de clock de 8 GHz. O sistema executa 5 instruções sem acesso à memória em um ciclo de clock. Avaliar as afirmações: (I) o período de clock é de 0,125 nanossegundos; (II) o sistema executa as instruções a uma taxa de 40G instruções/seg; (III) um programa que contém 1000 instruções sem acesso à memória será executado em 25 nanossegundos. Assinalar a alternativa correta quanto à veracidade de I, II e III.

    Fonte: AS — 2023.2, questão 10.

08 / Capítulo 7 — Sistemas Operacionais

Tipos de instrução e elementos típicos.

  1. Os sistemas operacionais utilizam instruções de dois tipos. (i) Quais são esses tipos? (ii) Apresentar dois elementos típicos dos sistemas operacionais, explicando a respectiva função.

    Fonte: AP2 — 2022.2, questão 11.

09 / Capítulo 8 — Microcontroladores — Atmel ATmega2560

Programação em linguagem de montagem (assembly) para o microcontrolador AVR ATmega2560.

  1. Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que armazene os números pares de 2 a 10 (inclusive) nos endereços de memória a partir de 0x200.

    Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 1.
  2. Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que: (i) armazene dois números em memória, nos endereços 0x200 e 0x201 (definidos arbitrariamente); (ii) armazene a soma dos números no endereço 0x202 se forem iguais, ou a diferença no endereço 0x203 se forem diferentes.

    Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 2.
  3. Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que implemente um loop para somar os números armazenados entre os endereços 0x200 e 0x2FF, armazenando o resultado no endereço 0x300.

    Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 3.
  4. Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que armazene os números de 1 a 5 (inclusive) nos endereços de memória a partir de 0x20F.

    Fonte: AS — 2024.1, 5ª parte, questão 1.
Instruções do ATmega2560 e sintaxe do assembler (referência)
InstruçãoSintaxe / operação
LDICarrega operando no registrador. LDI Rd,K, 16≤d≤31, 0≤K≤255; Rd ← K
INCIncrementa registrador. INC Rd, 0≤d≤31; Rd ← Rd + 1
ADDSoma dois registradores (similar ao SUB). ADD Rd,Rr; Rd ← Rd + Rr
STSArmazena registrador diretamente em memória. STS k,Rr, 0≤k≤65535; DS(k) ← Rr
LDSCarrega dado da memória diretamente no registrador. LDS Rd,k; Rd ← DS(k)
EOROu-exclusivo entre registradores. EOR Rd,Rr; Rd ← Rd ⊕ Rr
JMPDesvio incondicional. JMP k, 0≤k<4M; PC ← k
CPCompara dois registradores. CP Rd,Rr: Rd − Rr; se 0x00, seta o bit 1 do registrador de status
BREQDesvia se iguais. BREQ k, −64≤k≤+63
BRNEDesvia se diferentes. BRNE k, −64≤k≤+63
STArmazena indiretamente em memória. ST X,Rr; grava Rr no endereço X (r27,r26)
LDCarrega indiretamente registrador. LD Rr,Y; carrega de Y (r29,r28) em Rr
DECDecrementa registrador. DEC Rr; Rr ← Rr − 1
BRLODesvia se menor. BRLO k, −64≤k≤+63
BRMIDesvia se negativo. BRMI k, −64≤k≤+63

Diretivas do assembler: comentários com ;; .def define um nome simbólico para um registrador (ex.: .def flag=r16); .set atribui um valor a um rótulo, usável em expressões posteriores (ex.: .set cont=1); constantes inteiras podem ser fornecidas em decimal (padrão) ou hexadecimal (ex.: 0xff).

10 / Anexo — Representação Numérica e Aritmética Binária

Bases numéricas, complemento, ponto flutuante e características fundamentais da máquina de von Neumann.

  1. A máquina de von Neumann possui elementos com funções bem definidas — processador, memória e dispositivos de entrada/saída. Responder: (i) quais são os dois elementos internos ao processador? (ii) o que é um bit? (iii) uma palavra de memória de 4 bytes corresponde a quantos bits? (iv) o que representa a frequência de clock de um processador? (v) o que é o tempo de resposta de uma memória?

    Fonte: Arquitetura Form 1 (questionário).
  2. Seja um barramento de dados que transmite 1000 bits em 2 microssegundos. Qual é a taxa de transmissão (bit-rate) desse barramento? Se o clock que rege essa transmissão tem período de 1 nanossegundo, quantos bits são transmitidos por ciclo?

    Fonte: Arquitetura Form 1 (questionário).
  3. Quantas linhas de endereço são necessárias para endereçar uma memória de N bytes? E para endereçar uma memória organizada em palavras de N bits? Converter o número decimal indicado em cada caso para binário e determinar a quantidade de linhas necessárias.

    Fonte: Arquitetura Form 1 (questionário).
  4. Converter o binário 100111 para a base 10. Converter o número 0x24A para a base 10.

    Fonte: AS — 2024.1, 6ª parte, questão 1a–b.
  5. Apresentar as parcelas da operação binária 1010011 + 11101.

    Fonte: AS — 2024.1, 6ª parte, questão 1c.
  6. Seja uma máquina cuja palavra é de 8 bits, com representação em binário puro. Dado o número A = 11001, qual seria o valor do número B que resultaria em overflow em uma operação de adição A + B?

    Fonte: AS — 2024.1, 6ª parte, questão 1d.
  7. Uma máquina com barramento de endereços de 11 bits pode endereçar no máximo quantas posições de memória?

    Fonte: AS — 2024.1, 6ª parte, questão 1e.
  8. Seja uma arquitetura que utiliza 7 bits para representar dados numéricos. Qual seria a faixa de representação (em hexadecimal) para números inteiros em excesso 64?

    Fonte: AP1 — 2022.2, questão 3a.
  9. Seja uma arquitetura que utiliza 12 bits para representar dados numéricos. Dada a grandeza numérica, em hexadecimal, 0x37A, na representação em complemento de 2, qual seria o correspondente valor no sistema decimal? Qual seria o seu simétrico, em hexadecimal?

    Fonte: AP1 — 2022.2, questão 3b.
  10. Seja uma arquitetura que utiliza 9 bits para representar dados numéricos, usando 4 bits para o expoente de ponto flutuante. Admitindo bit de sinal para a mantissa e excesso para o expoente, qual seria a faixa de representação numérica do sistema?

    Fonte: AP1 — 2022.2, questão 3c.
  11. Seja uma máquina que utiliza 12 bits para representação de dados numéricos. Qual será o resultado, em binário e hexadecimal, da operação 374 − 277, em complemento de 2? Apresentar a operação passo a passo, de acordo com a notação usada.

    Fonte: AP1 — 2022.2, questão 3d.
  12. Seja uma arquitetura que utiliza 11 bits para representar dados numéricos. (i) Qual é o valor do número decimal 456d, em binário, na representação em binário puro? (ii) Qual será a faixa de números inteiros, negativos e positivos, em hexadecimal, caso seja utilizada representação em sinal e magnitude? (iii) Qual será a representação em hexadecimal da grandeza numérica decimal −727d se o sistema utilizar notação em complemento de 1?

    Fonte: AS — 2022.2, questão 7.
  13. Seja uma arquitetura que utiliza palavras de 8 bits. Admitindo que o processador realize a operação de adição dos números A = 0111 0011 e B = 0110 1000, apresentar o processo de soma, bit a bit, e o resultado em hexadecimal.

    Fonte: AS — 2022.2, questão 8.
  14. Realizar as operações indicadas a seguir, apresentando o memorial descritivo de cada operação:

    1. 10100000 − 101011 =
    2. 0xA3F + 0xFA =
    3. 110111 + 101 =
    Fonte: AS — 2023.2, questão 5.