Escolar Documentos
Profissional Documentos
Cultura Documentos
SEMANA 1
COMPUTACIONAIS
Entender os conceitos de Arquitetura e Organização de Computadores;
Conhecer aspectos da história das máquinas computacionais e os modelos
criados para elas.
Arquitetura de computadores
refere-se aos atributos de um sistema visíveis a um programador. Em outras palavras, são aqueles
atributos que possuem um impacto direto sobre a execução lógica de um programa.
Modelo de Computadores
1. Turing: pode realizar qualquer cálculo se o programa apropriado for fornecido; essa foi a
primeira descrição de um computador moderno.
2. von Neumann: determina que o programa deve ser armazenado na memória. É o modelo
aplicado nos computadores atuais mas impede grande velocidade de processamento.
Organização de computadores
são as unidades operacionais e suas interconexões que realizam as especificações arquiteturais.
Unidade de controle comanda o funcionamento de cada subsistema e é responsável por buscar instruções na memória
principal e determinar seu tipo.
Registradores: são locais de armazenamento rápido. Eles guardam dados temporariamente e podem ser lidos e escritos
em alta velocidade. São do tipo contador de programa, registrador de instrução e registrador de dados.
Memória Cache: A ideia básica de uma cache é simples: as palavras de memória utilizadas com mais
frequência são mantidas nesse dispositivo. Quando a CPU precisa de uma palavra, ela examina
primeiro a cache. Somente se a palavra não estiver ali é que ela recorre à memória principal. Se uma
fração substancial das palavras estiver na cache, o tempo médio de acesso pode ser muito reduzido.
1. Busca: o sistema copia a próxima instrução no registrador de instruções da CPU. O endereço da instrução a ser copiada permanece no
registrador contador de programa.
2. Decodificação: a unidade de controle decodifica a instrução quando ela está no
registrador de instrução. Dessa etapa resulta o código binário para uma operação que o
sistema vai realizar.
3. Execução: a ordem da tarefa é enviada pela unidade de controle para um componente da CPU. Por exemplo, a CPU
pode dizer à ULA para somar o conteúdo de dois registradores de entrada e, depois, colocar o resultado em um
registrador de saída.
OUTRAS ARQUITETURAS
RISC: Reduced Instruction Set Computer – computador com conjunto de instruções reduzido
caracterizam-se por contar com um pequeno conjunto de instruções, as quais fazem o mínimo possível de
operações simples. Um subconjunto de instruções simples simula as instruções mais complexas, o que
torna a programação em Risc mais difícil e demorada que aquela realizada por outros projetos.
CISC: Complex Instruction Set Computer – computador com conjunto de instruções complexo
apresenta um grande conjunto de instruções, que incluem tanto as simples quanto as complexas. Isso faz
que a programação de computadores, com base nessa arquitetura, seja mais fácil que em computadores
com base em outros projetos. A complexidade do conjunto de instruções torna os circuitos da CPU e da
unidade de controle bastante complicados, para resolver, uma instrução na linguagem de máquina não é
executada diretamente pela CPU – a CPU realiza somente operações simples, chamadas micro-operações.
Uma instrução complexa é transformada em um conjunto dessas operações simples que, então, são
executadas pela CPU. Isso precisa da adição de uma memória especial, chamada micromemória, que
mantém o conjunto de operações para cada instrução complexa do conjunto de instruções. O tipo de
programação que utiliza micro-operações é chamado microprogramação.
Paralelismo: um meio de conseguir um desempenho ainda melhor para dada velocidade de clock, é feito a
nível de instrução ou de processador .
Uma arquitetura superescalar é aquela na qual várias instruções podem ser iniciadas simultaneamente e
executadas independentemente umas das outras.
Entenda as principais características, funções e interações da
CPU, dos barramentos, das memórias em seus diferentes tipos
e dos periféricos de E/S.
SEMANA 2
add a, b, c, d, e
Na primeira linha, é feita a soma de b + c, e o resultado é armazenado em a. Na
add a, b, c
segunda linha, adiciona-se d ao resultado da primeira operação, o que gera outro valor
add a, a, d
para a. Esse a é somado na terceira linha ao valor de e.
add a, a, e
MIPS, acrônimo para Microprocessor without interlocked pipeline stages (microprocessador sem estágios
intertravados de pipeline). É uma arquitetura baseada em registrador, ou seja, a CPU usa apenas
registradores para realizar as suas operações aritméticas e lógicas.
Os operandos das instruções aritméticas localizam-se nos registradores. Na arquitetura MIPS, um
registrador tem 32 bits e recebe o nome de word (palavra). E cada MIPS tem 32 registradores porque um
tamanho menor proporciona maior rapidez. No MIPS, as instruções aparecem compostas em seis
campos:
op – também chamada de opcode, é a operação básica da instrução.
rs – registrador do primeiro número de uma operação de soma.
rt – registrador do segundo número de uma operação de soma.
rd – registrador que recebe o resultado da operação.
shamt – indica a quantidade de deslocamento. Esse nome é uma abreviação do termo inglês
shift amount (quantidade de deslocamento).
funct – abreviação de function (função, em português). Também chamado de código de função,
seleciona a variável situada no primeiro campo (op).
ENDEREÇAMENTO NO MIPS:
Endereçamento em registrador – o operando é um registrador.
Endereçamento de base ou deslocamento – o operando se situa no local da memória que tem
como endereço a soma de um registrador e uma constante na instrução.
Endereçamento imediato – o operando é uma constante dentro da instrução.
Endereçamento relativo ao PC – é a soma de uma constante na instrução com o PC.
Endereçamento pseudodireto – tem como endereço de jump os 26 bits da instrução que se
conectam com os bits mais altos do PC.
INTERRUPÇÃO NO MIPS:
Exceções e interrupções fazem com que um processador MIPS desvie para uma parte do código,
no endereço 80000180hexa (no espaço de endereçamento do kernel, não do usuário), chamada
handler de exceção. Esse código examina a causa da exceção e desvia para um ponto apropriado
no sistema operacional. O sistema operacional responde a uma exceção terminando o processo
que causou a exceção ou realizando alguma ação. Um processo que causa um erro, como a
execução de uma instrução não implementada, é terminado pelo sistema operacional
SEMANA 3
Reconhecer o gerenciamento de recursos realizado pelo sistema operacional
incluindo processos, tipos e estados de processos e escalonamento de processos
operados pelo processador e pela memória.
Entender o particionamento e o gerenciamento de memória, incluindo a memória
virtual com o manuseio da hierarquia de memórias entre memória principal e disco.
Aprender endereçamento e técnicas de memória virtual como: paginação e
segmentação, incluindo conceitos relacionados, como fragmentação, MMU (Memory
Managment Unit) e TLB (Translation Lookaside Buffer).
SISTEMA OPERACIONAL:
Programa que controla a execução de programas e aplicativos e atua como interface entre o
usuário e o hardware do computador. Possui dois objetivos principais: conveniência e
eficiência.
É o software que gerencia os recursos do Computador e controla a execução de processos na
CPU com auxílio de hardware como registros e circuitos.
O SO direciona o processador e a memória no uso dos recursos do sistema através do
escalonamento e do gerenciamento de memória.
Em uniprogramação, a memória principal é divida em dois: para o monitor residente (SO) e uma parte
para o programa executado naquele momento.
Em multiprogramação, a parte da memória do usuário é subdividida para acomodar vários processos.
Conceitos envolvidos: SWAPPING (troca de processo na memória), PARTICIONAMENTO, e PAGINAÇÃO
(pedações de programas - páginas no lado do disco, podem ser atribuídos aos pedaços disponíveis da
memória - frames no lado da memória RAM), SEGMENTAÇÃO.
Paginação por demanda
Memória Virtual: técnica que resulta em Localidade (espacial e temporal)
Função de mapeamento (tradução endereços
tempo de acesso a memória de disco (disco
pelo MMU - unidade de gerenciamento de
rígido - HD) estatisticamente não muito pior memória)
que a memória principal. Funcionamento automático
Não é necessário carregar um processo inteiro na memória principal, o que
possibilita que o processo seja maior que toda a memória principal.
RESUMO
Quando um processo é criado, o SO cria as Páginas virtuais que ele necessita em um
espaço próprio, designado swap file
Quando uma destas páginas é referenciada pelo respectivo processo, é carregada em
memória principal e, se tiver de sair da memória principal, volta para este espaço
Isso é troca de contexto (swap) da página, entre a memória principal e disco
O processador executa instruções (em linguagem de máquina) da sua memória num período de tempo
(clock). O ciclo de instrução é a sequência de ações que a CPU realiza para executar cada instrução em
código de máquina num programa. O ciclo de instrução se repete indefinidamente até que o sistema: seja
desligado, ou ocorra algum tipo de erro, ou seja encontrada uma instrução de parada.
PROGRAMAÇÃO SEQUENCIAL:
vários processadores que recebe nstruções distintas mas operam vários processadores, cada um controlado por uma
sobre o mesmo conjunto de dados. Ex: múltiplos Algoritmos de unidade de controle. Os processadores recebem
criptografia para decodificar uma mensagem instruções diferentes e operam sob fluxos de dados
diferentes. Que podem ser síncronos ou assíncronos. Ex:
multiprocessadores (memória compartilhada) e
PIPELINE multicomputadores (memória distribuída).
Visa obter melhoras de desempenho tanto em
tecnologia (ex. circuitos mais rápidos) ou
organizacionais no processador com múltiplos
registradores e memória cache (L1 e em níveis).
De Instrução: várias instruções são realizadas de
forma simultânea, embora em estágios diferentes, pois.
múltiplas instruções são emitidas por ciclo de clock
A CPU se divide em várias partes funcionais
distintas (estágios), cada uma correspondendo a
uma determinada ação.
A ideia é de que novas entradas são aceitas,
antes que as entradas aceitas previamente
tenham terminado, o que assume uma instrução
de vários estágios.
Hazard de pipeline ou bolha são situações que
podem resultar em um desempenho menor que a
ótima. Ocorrem quando o pipeline, ou parte dele,
precisa parar porque as condições não permitem a
execução contínua.
A busca de instruções na memória é um grande gargalo na
velocidade de execução do paralelismo da instrução. Para
amenizar esse problema, os computadores têm a capacidade de
buscar instruções na memória antecipadamente, de maneira que
elas estivessem presentes quando necessárias. • Prefetch (busca
avançada): A leitura aproveita o ciclo de memória de execução
atual para obter a próxima instrução, requer mais registradores.
Aprender comandos básicos, ponteiros e estruturas em
Linguagem C;
Entender duas importantes estratégias de arquitetura e
organização de sistemas computacionais a partir da SEMANA 5
simulação de paginação e particionamento fixo.
typedef
Permite compor novos tipos de dados typedef tipo novo_nome;
É comporto a partir de tipos pré-existentes tipo: qualquer tipo válido em C
Não cria um novo tipo de dado novo_nome: um identificador válido em C
Estrutura
É uma coleção de variáveis, As variáveis que compõem
possivelmente de diferentes uma estrutura são
tipos, organizadas em um comumente chamadas de
único conjunto elementos
Paginação
Técnica de memória virtual e de quebra de processos em páginas que são mapeadas em frames na memória principal
Cada processo tem a sua tabela de páginas com seu endereçamento virtual correspondente a um endereço físico onde a
informação está armazenada
No DISCO, cada página tem: Na RAM, cada frame tem:
Bit de validade (bv=1 pv na RAM) Número da página física (pf)
Ponteiro para página virtual (pv) Deslocamento (df)
Deslocamento (dv) Conteúdo
Compreender as diferenças, as características, os propósitos de uso da
linguagem de montagem e da linguagem de máquina;
Entender a importância das diferentes linguagens (alto nível, de montagem,
SEMANA 6 de máquina) no processo de modelagem de software;
Conhecer os conceitos de chamada de sistema e tratamentos de
interrupção.
Uma linguagem de montagem pura é uma linguagem na qual cada declaração produz exatamente uma
instrução de máquina. É implantado por tradução em vez de interpretação. Na tradução, o programa
original na linguagem-fonte não é executado diretamente. Em vez disso, ele é convertido para um
programa equivalente denominado programa-objeto ou programa binário executável, cuja
execução é realizada somente após a conclusão da tradução.
Etapas:
Geração de um programa Execução do programa recém-
equivalente na linguagem-alvo. gerado.
Linguagem que usa muitos nomes simbólicos (mnemónicos), incluindo a atribuição de nomes em posições
específicas da memória principal e das instruções para operar o computador e instruções que não são
executadas diretamente, mas que são úteis para o montador produzir o código de máquina.
Só pode ser executado em uma família de máquinas. É usado em razão de desempenho e acesso
à máquina.
A linguagem de montagem possui 4 campos (nenhum obrigatório): campo de etiqueta, um de operação
(opcode), um de operandos e um de comentários.
Campo de Etiqueta: são usadas para dar nomes simbólicos para endereços de memória, são necessárias
em declarações executáveis de modo a possibilitar desvios para essas declarações. Também são
necessárias para palavras de dados, permitindo que os dados ali armazenados sejam acessíveis por nomes
simbólicos.
Opcode: contém ou uma abreviatura simbólica para ele – se a declaração for uma representação
simbólica para uma instrução de máquina – ou um comando para o próprio assembler.
Operandos: usado para especificar os endereços e registradores usados como operando pela instrução
de máquina. O campo de operando de uma instrução de adição de inteiros informa o que será somado a
quê. O de uma instrução de desvio informa para onde desviar. Operandos podem ser registradores,
constantes, localizações de memória e assim por diante.
Comentários: oferece um lugar onde os programadores podem colocar explicações úteis sobre o
funcionamento do programa para benefício de outros programadores que queiram usar ou modificar o
programa mais tarde.
PSEUDOINSTRUÇÕES: um programa em linguagem de montagem também pode conter comandos para o
próprio assembler, por exemplo, pedir que ele reserve algum armazenamento ou ejete uma nova página
na listagem.
O programador de linguagem de montagem precisa se lembrar apenas dos nomes simbólicos porque o
assembler os traduz para instruções de máquina
A linguagem assembly é utilizada em situações especiais Para construir uma rotina que
necessite estar muito otimizada e que seja necessário manipular recursos físicos de tal forma
que não consiga ser expressa na linguagem de alto nível
TIPOS DE SENTENÇÃ:
A Sentença-comentário consiste inteiramente de um comentário
Instrução é o tipo de sentença de representações simbólicas de instruções de linguagem de máquina
As sentenças diretivas (pseudoinstruções) fazem parte da linguagem de montagem que não são
diretamente traduzidas para instruções da linguagem de máquina e, portanto, não são executáveis. •
São instruções para o montador executar ações específicas durante o processo de montagem.
proporcionam uma solução fácil e eficiente para o problema de precisar repetidas vezes das
mesmas (ou de quase as mesmas) sequências de instruções. é um modo de dar um nome a
MACROS um pedaço de texto. Após uma macro ser definida, o programador pode escrever o nome dela
em vez do pedaço de programa. Uma macro é, na verdade, uma abreviatura para um pedaço
de texto.
Um cabeçalho de macro que dê o nome da macro que está sendo
Partes básicas da definição de definida.
uma MACRO O texto que abrange o corpo da macro.
Uma pseudoinstrução que marca o final da definição (por exemplo,
ENDM).
Chamadas de macro não devem ser confundidas com chamadas de procedimento. A diferença básica é
que a primeira é uma instrução para o assembler substituir o nome da macro pelo corpo dela. Uma
chamada de procedimento é uma instrução de máquina que é inserida no programa-objeto e que mais
tarde será executada para chamar o procedimento
Um processador de macros é uma técnica para manipular cadeias de caracteres sem considerar seu
significado. Pode ser usado para encurtar programas nos quais exatamente a mesma sequência de
instruções ocorre repetidas vezes.
1. Depuração e verificação
2. Desenvolvimento de compiladores
PODE SER USADO ESPECIALMENTE PARA:
3. Sistemas embarcados
4. Drivers para hardware e códigos de sistemas
Linguagem de Máquina
Consiste em instruções executadas diretamente pelo processador. Cada instrução é uma cadeia binária (de
zeros e uns) contendo um opcode (operação básica da instrução), referências a operandos e
possivelmente bits relacionados à execução. Portanto, as instruções do nosso computador, bem como os
endereços de memória, devem ser todos escritos na linguagem que o computador é capaz de entender e
operar.
O tratador de interrupção é NA MAIORIA das vezes assíncrono (SEM
TRATAMENTO DE INTERRUPÇÃO comunicação entre o programa interrompido e o tratador)
trap é um caso de tratador síncrono
Chamado também de rotina de serviço de interrupção, ISR ou tratador de interrupção, feito por um bloco
especial de código associado a uma condição de interrupção específica. É parte do sistema operacional.
Saber qual dispositivo lançou a interrupção
Em que ponto do sistema operacional está o endereço inicial da rotina
que trata esta interrupção para que o processador possa executar esta
rotina no endereço especificado pelo tratador e
Deixar o processador voltar ao seu curso de execução após a interrupção
ter sido resolvida
Aprender a fazer algoritmos simples em Assembly;
Entender como fazer programas Assembly dentro do ambiente de
linguagem C; SEMANA 7
Conhecer programa Assembly com chamada de sistema e tratamento de
interrupção.
Registrador mais importante desse grupo é o ponteiro de pilha, que é indicado por SP. Pilhas são
importantes na maioria das linguagens de programação. A pilha é um segmento de memória que contém
certas informações de contexto sobre o programa em execução. Em geral, quando um procedimento é
chamado, parte da pilha é reservada para conter as variáveis locais do procedimento, o endereço para
onde retornar quando o procedimento estiver concluído e outras informações de controle. A porção da
pilha relativa a um procedimento é denominada seu quadro de pilha. SP APONTA PARA ALTO.
BP, o registrador de base. Em geral, ele contém um endereço na pilha. Enquanto SP sempre aponta para o
topo, BP pode apontar para qualquer local dentro da pilha. BP APONTA PARA BAIXO.
O registrador de flag ou registrador de código de condição é, na verdade, um conjunto de registradores de
um único bit.
Os registradores de segmentos comandam essas partes diferentes da memória, que são denominadas
segmentos . Esses registradores são denominados CS para o de segmentos de código, DS para o de
segmentos de dados, SS para o de segmentos de pilha e ES para o de segmentos extras.
Os operandos das instruções aritméticas localizam-se nos registradores E cada MIPS tem 32 registradores
porque um tamanho menor proporciona maior rapidez. .
Instruções:
1. Load – copia dados da memória para um registrador. O MIPS nomeia essa instrução como lw, que são as
iniciais de load word (carregar palavra).
2. Store – copia dados do registrador para a memória. No MIPS, é nomeada como sw, iniciais de store word
(armazenar palavra)
ATIVIDADE AVALIATIVA
Diferentes modelos de computador foram criados, como o modelo de Turing, desenvolvido em 1937 por
Alan Turing. Também podemos citar o modelo de Von Neumann, que iniciou em 1944 e foi o criador da
arquitetura de programa armazenado, considerado um avanço em relação ao modelo de Turing. O modelo
de Von Neumann consiste na adoção de uma arquitetura baseada na possibilidade de dispositivo
eletrônico e digital armazenar seus programas aplicativos no mesmo espaço de memória que os dados,
utilizando uma unidade de processamento. Sendo assim, a questão correta é “armazena dados e programa
durante o processamento”.
A quarta geração de computadores, também conhecida como computadores VLSI (Very Large Scale
Integration), possibilitou a colocação de milhões de transistores em um único chip de processamento, que
foi um grande salto na computação. Na quarta geração de computadores, que foi iniciada nos anos 1980,
houve um grande salto de tecnologia, com maior poder de processamento e a utilização de pequenos
chips, o que possibilitou menores gastos de produção e computadores menores, que por sua vez ficaram
cada vez mais baratos.
A terceira geração de computadores, também conhecida como geração dos circuitos integrados, surgiu na
década de 1960 e durou até a década de 1980. Nessa época, a IBM era a empresa líder do segmento de
computadores, porém tinha grandes problemas com os modelos 7094 e 1401. A incompatibilidade entre
os modelos 7094 e 1401 era muito grande: um utilizava aritmética decimal em série e o outro aritmética
binária. Muitos clientes tinham ambos modelos, mas não gostavam da ideia de ter que fazer programações
diferentes para cada modelo.
Os registradores são compostos por uma pequena memória que tem grande velocidade para realizar o
armazenamento de resultados temporários e alguns controles de informações necessárias. Existem
somente três tipos de registradores: o contador de programa, que serve para indicar a próxima instrução,
o registrador de instrução, que mantém a instrução que está sendo executada, e o registrador de dados,
que mantém os dados de entrada e os resultados.
A CPU (Unidade Central de Processamento) é considerada o cérebro do computador, pois tem a função de
executar os programas armazenados na memória principal, realizando suas instruções e controlando os
componentes e seus subsistemas. As partes da CPU são compostas pela unidade de controle, que
comanda o funcionamento de cada subsistema, pela unidade lógica e aritmética, que efetua operações
matemáticas, e pelo registrador, que é uma pequena memória de alta velocidade para armazenar
resultados temporários.
De maneira histórica, a unidade central de processamento sempre foi mais rápida que as memórias. À
medida que o tempo foi passando, as memórias evoluíram, assim como a unidade central de
processamento, mantendo a diferença de velocidade entre as duas. A unidade central de processamento
depende que a memória encaminhe uma requisição para o processamento. Se essa memória estiver com
tamanho limitado ou velocidade reduzida, quando comparada com a unidade central de processamento,
fará com que a unidade central de processamento fique com pouco ou muitos ciclos de espera.
Em meados da década de 1970, começaram a ser utilizados os discos IDE (Integrated Drive Electronics),
que, com o passar do tempo, evoluíram para os discos EIDE (Extended Integrated Drive Eletronics). Os
discos dos computadores da IBM PC eram fabricados pela Seagate, de 10 MB, controlado por um
controlador de disco Xebec que tinha um cartão de encaixe. Porém a tecnologia evoluiu e passou do
controlador em placa separada para o controlador integrado com os drives.
O arranjo redundante de discos independentes foi criado para garantir maior segurança no
armazenamento de dados e diminuir as chances de perda de informação e indisponibilidade de sistemas.
Esse arranjo é conhecido como RAID (Redundant Array of Independent Disks). O RAID 5 oferece melhor
vazão de transações quando comparado ao RAID 4, mas com a vantagem de fazer balanceamento de
carga e gravar vários discos em paralelo. O RAID 5 não é conhecido como verdadeiro por duplicar todo o
disco, não atuando por palavras ou sem paridade.
Para cada processo, o sistema operacional deve manter informações, indicando seu estado, além das
informações necessárias para a execução do processo, sendo representado pelo sistema operacional por
um bloco de controle. Um bloco de controle de processo é dividido em vários segmentos, sendo o
contador de programa o responsável pelo endereço da próxima instrução no programa a ser executado. A
alternativa correta é “em um contador de programa de um bloco de controle é definido o endereço da
próxima instrução no programa a ser executado”.
A virtualização de um hardware é uma combinação de suporte de hardware e software que nos permite
executar, de forma simultânea, múltiplos sistemas operacionais em um único computador. Elementos
como host e hipervisor fazem parte do conjunto de virtualização por hardware. Um hipervisor gerencia
instâncias de máquinas virtuais, sendo um componente de software, semelhante ao núcleo do sistema
operacional.
Um sistema operacional oferece diversas facilidades e serviços em várias áreas, atuando como um
mediador e facilitador. Quanto às áreas que podemos citar, temos a criação de programa, a execução de
programa, o acesso ao sistema, a contabilização, dentre outras. A área de criação de programa oferece
diversas facilidades, como editores e depuradores para auxiliar na programação ou na criação de
programas.
Um sistema operacional é também um programa de computador, que controla a execução de outros programas ou
aplicativos, sendo assim uma interface entre o usuário e o hardware do computador. Os objetivos são a
conveniência, já que o sistema operacional torna o computador mais conveniente para o usuário, e a eficiência, pois
o sistema operacional permite que os recursos computacionais sejam melhor apoveitados.
Em qualquer sistema de computação paralelo, as unidades centrais de processamento que trabalham em
partes diferentes do mesmo serviço devem se comunicar umas com as outras para realizar a troca de
informações. Um modo de fazer isso foi proposto com o multiprocessamento. A principal diferença entre
multiprocessadores e multicomputadores é que nos multiprocessadores a memória pode ser
compartilhada.
Os MPPs (Massively Parallel Processors), também conhecidos como processadores maciçamente paralelos,
são imensos supercomputadores usados, em geral, para: Cálculos muito grandes; Tratar quantidades
enormes de transações por segundo; Data warehousing.
Um pipeline de instruções é semelhante a uma linha de montagem, pois tira vantagem do fato de que um
produto passa por várias estágios de produção. O pipeline apresenta dois estágios independentes: o
estágio de busca e o estágio de execução de uma instrução. O DI tem a função de determinar o opcode e
os especificadores dos operandos. A alternativa correta é “o DI (Decodificar a Instrução) determina o
opcode e os especificadores dos operandos”.
As interconexões têm propriedades, sendo que as principais são conhecidas como grau de nó, diâmetro,
capacidade de transmissão e dimensionalidade. Quanto menor o diâmetro, melhor será o desempenho no
pior caso; o diâmetro é a distância entre dois nós mais distantes. A alternativa correta é “a propriedade
diâmetro consiste na distância entre dois nós mais distantes”.
Os ponteiros apontam para uma variável, mas eles também são uma variável que contém um endereço de
memória. Afinal, quais benefícios podem ser encontrados quando utilizamos ponteiros? Usar ponteiros é
um facilitador, uma vez que traz benefícios, como fornecer meios para as funções modificarem seus
argumentos, além de poder aumentar a eficiência de certas rotinas, e até mesmo alocar a memória de
forma dinâmica. A alternativa correta é “os ponteiros fornecem meios para as funções modificarem seus
argumentos e podem aumentar a eficiência de certas rotinas”.
A linguagem C é uma das mais utilizadas para estudos em todo o mundo, devido à sua complexidade e
vasta documentação. Existem alguns elementos que são conhecidos na linguagem C, como vetores, laços e
ponteiros. Os ponteiros apontam para uma variável, mas eles também são uma variável que contém um
endereço de memória. A alternativa correta é “ponteiro é uma variável que contém um endereço de
memória”.
Uma estrutura em linguagem de programação C é uma declaração que define uma lista de variáveis
agrupadas, permitindo que sejam acessadas por um ponteiro. O comando typedef faz parte dos nossos
estudos sobre estruturas em linguagem de programação C. Ele apresenta as seguintes características: I.
Permite compor novos tipos de dados. II. É composto a partir de tipos pré-existentes. O comando typedef
possui as seguintes características: permite compor novos tipos de dados, é composto a partir de tipos
pré-existentes e não cria um novo tipo de dado.
Já sabemos que uma estrutura é uma coleção de variáveis, possivelmente de diferentes tipos, organizadas
em um único conjunto, e que as variáveis que compõem uma estrutura são comumente chamadas de
elementos. A estrutura é uma coleção de variáveis, possivelmente de diferentes tipos, organizadas em um
único conjunto, e as variáveis que compõem uma estrutura também são chamadas de elementos.
Usar ponteiros é um facilitador, uma vez que traz benefícios, como fornecer meios para as funções
modificarem seus argumentos. Eles podem aumentar a eficiência de certas rotinas e até mesmo alocar a
memória de forma dinâmica, mas somente três operações de ponteiros são possíveis: II. Aritmética de
ponteiros. III. Atribuição de ponteiros. Somente três operações de ponteiros são possíveis: a aritmética de
ponteiros, a atribuição de ponteiros e a comparação de ponteiros.
Somente três operações de ponteiros são possíveis: aritmética de ponteiros, atribuição de ponteiros e
comparação de ponteiros. Na aritmética de ponteiros, somente a operações de adição e subtração
existem.
JA linha 5 sinaliza o máximo de bytes por código de insturção.
Quando falamos sobre uma macro, podemos dizer que, por definição, uma macro é uma forma de dar um
nome a um pedaço de texto. Após a definição de uma macro, o programador pode escrever o nome dela
em vez de um pedaço de programa.
Um processador de macros pode ser utilizado para encurtar comandos. Contudo um programa contém
diversas sequências de instruções.
A linguagem de montagem tem pseudoinstruções, ou seja, comandos que existem para fazer instruções
para o próprio assembler. A pseudoinstrução ENDS aloca armazenamento para um byte.
Podemos definir que linguagem de montagem pura é quando cada declaração produz exatamente uma
instrução que pode ser determinada como linguagem de máquina, existindo, assim, correlações entre as
instruções de máquina e as declarações no programa de montagem As linguagens de montagem são
utilizadas por que são muito mais fácil de programar com a utilização de nomes simbólicos.
Existe um segundo grupo de registradores, que consiste nos registradores de ponteiros e índice. O
registrador considerado o mais importante do grupo é chamado de pilha.
Os registradores AX, BX, CX e DX são os registradores gerais. O primeiro desse grupo é o registrador AX ,
que é denominado registrador acumulador.
JTodo computador tem uma ISA (Instruction Set Architecture), que é um conjunto de registradores, mas
também pode ser um conjunto de instruções ou outras características visíveis para seus programadores.
A ISA é uma linguagem de máquina.
Todo assembler usa mnemônicos, como ADD e SUB, por exemplo, e grande parte dos assemblers suporta
um número limitado de pseudoinstruções, já que é uma característica comum entre eles. O significado
dos mnemônicos são palavras curtas.
A execução de uma instrução pode ser comparada com a execução de um programa muito pequeno. Na
verdade, algumas máquinas tem um programa muito pequeno para executar suas instruções, também
chamado de microprograma.
A operação dos computadores consiste em executar instruções, uma após a outra, sendo que uma única
execução de instruções pode ser dividida em várias etapas. Dentre elas estão: buscar a instrução na
memória, decodificar a instrução e executar a instrução.