Conjunto de instruções: modos e formatos de endereçamento

Description

Information Technology Mind Map on Conjunto de instruções: modos e formatos de endereçamento, created by Matheus Fernandes on 31/05/2022.
Matheus Fernandes
Mind Map by Matheus Fernandes, updated more than 1 year ago
Matheus Fernandes
Created by Matheus Fernandes almost 2 years ago
79
0

Resource summary

Conjunto de instruções: modos e formatos de endereçamento
  1. Endereçamento
    1. Para alcançar o objetivo de poder referenciar um grande intervalo de posições da memória principal, uma grande variedade de técnicas de endereçamento foi desenvolvida. Todas envolvem algum tipo de troca entre intervalo de endereços e/ou flexibilidade de endereçamento por um lado e o número de referências de memória dentro da instrução e/ou a complexidade de cálculo de endereços por outro.
      1. Imediato
        1. A forma mais simples de endereçamento. A vantagem do endereçamento imediato é que nenhuma referência de memória, além de obter a instrução em si, é necessária para obter operando, economizando um ciclo de memória ou cache dentro do ciclo da instrução. A desvantagem é que o tamanho do número é limitado ao tamanho do campo de endereço
        2. Direto
          1. Requer apenas uma referência de memória e nenhum cálculo especial. A limitação é que ela oferece um espaço de endereços limitado.
          2. Indireto
            1. Um campo de endereço se referindo ao endereço de uma palavra na memória, o qual, por sua vez, contém o endereço completo do operando.
            2. Por registradores
              1. É semelhante ao endereçamento direto. A única diferença é que o campo de endereço se refere a um registrador em vez de um endereço da memória principal. Apenas um pequeno campo de endereço é necessário dentro da instrução e nenhuma referência de memória que consome tempo é necessária.
              2. Indireto por registradores
                1. É análogo ao endereçamento indireto. A única diferença é se o campo de endereço referencia um local de memória ou um registrador. Assim temos para endereçamento indireto de registradores
                2. Por deslocamento
                  1. O endereçamento por deslocamento requer que a instrução tenha dois campos de endereço, dos quais ao menos um é explícito. O valor contido em um campo de endereço (valor = A) é usado diretamente. 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.
                    1. Os usos mais comuns do endereçamento por deslocamento: 1. Endereçamento relativo 2. Endereçamento por registrador base. 3. Indexação.
                  2. De pilha
                    1. Uma pilha é um vetor linear de posições. Itens são adicionados ao topo da pilha para que, a qualquer momento, o bloco esteja parcialmente preenchido. Associado à pilha, temos um ponteiro cujo valor é o endereço do topo da pilha. Alternativamente, dois elementos do topo podem estar nos registradores do processador. Nesse caso, o ponteiro da pilha referencia o terceiro elemento da pilha. O ponteiro da pilha é mantido em um registrador. Assim, as referências das posições da pilha em memória são na verdade endereços indiretos dos registradores
                    2. (SUPORTE IMG)
                    3. Formatos de Instrução
                      1. Um formato da instrução define o layout de bits de uma instrução, no que diz respeito aos campos que a constituem. Um formato da instrução tem que incluir um opcode e, implícita ou explicitamente, zero ou mais operandos. Cada operando explicitado no opcode é referenciado usando um dos modos de endereçamento. Na maioria dos conjuntos de instruções, mais do que um formato de instrução é usado.
                        1. Dentro do processo de um formato de instrução levamos em consideração alguns fatores como:
                          1. Tamanho da Instrução
                            1. Relação das instruções que serão executados com o hardware ambientado
                            2. Alocação de bits
                              1. Trânsito de bits que ocorrem na relação da instrução com seu endereçamento
                              2. Instruções de tamanhos variáveis
                                1. Fornece opcodes com tamanhos diferentes, com várias combinações variáveis e flexíveis quanto ao endereçamento
                            3. Modos de endereçamento x86 e ARM
                              1. Endereçamento e ARM
                                1. off set: para este modo de endereçamento, a indexação não é usada. Um valor de off set é adicionado ou subtraído do valor que está no registrador base para formar o endereço de memória.
                                  1. pré-indexação: o endereço de memória é formado da mesma maneira como no endereçamento de offset. O endereço de memória é também armazenado de volta no registrador base.
                                    1. Normalmente, uma máquina RISC, diferentemente de uma máquina CISC, usa um conjunto de modos de endereçamento relativamente simples e direto. A forma mais conveniente de classificar esses modos é de acordo com o tipo da instrução.Modo de endereçamento ARM se refere como registrador base atua, na verdade, como um registrador indexador para endereçamento de pré-indexação e pós-indexação.
                                      1. pós-indexação: o endereço de memória é o valor do registrador base.
                                      2. Endereçamento x86
                                        1. O x86 é equipado com uma série de formas de endereçamento que vieram possibilitar execução eficiente de linguagens de alto nível . O registrador de segmento determina o segmento que é objetivo da referência. Existem seis registradores de segmento; aquele usado para uma referência específica depende do contexto da execução e da instrução. Cada registrador de segmento mantém um índice da tabela de descritores de segmentos, a qual, por sua vez, mantém o endereço inicial dos segmentos correspondentes. Associado a cada registrador de segmento visível a usuário temos um registrador de descritor de segmento, o qual grava as permissões de acesso para o segmento assim como o endereço inicial e o limite do segmento. Além disso, existem dois registradores que podem ser usados na construção do endereço: registrador básico e registrador indexador.
                                          1. Modo imediato: o operando está incluído na instrução. O operando pode ser um byte, uma palavra ou uma palavra dupla de dados.
                                            1. Modo em registrador operando: o operando está localizado em um registrador. Para instruções gerais, tais como transferência de dados e instruções aritméticas e lógicas, o operando pode ser um dos registradores gerais de 32,16 ou 8 bits.
                                              1. Modo de deslocamento: offset do operando é mantido como parte da instrução sendo um deslocamento de 8, 16 ou 32 bits. Com segmentação, todos os endereços das instruções se referem meramente a um offset dentro de um segmento.
                                                1. Modo base: especifica que um dos registradores de 8, 16 ou 32 bits contém o endereço efetivo. Isto é equivalente ao que definimos como endereçamento indireto de registradores.
                                                  1. Modo base com deslocamento: as instruções incluem um deslocamento a ser adicionado ao registrador base, o qual pode ser qualquer um dos registradores de uso geral.
                                                    1. Modo de índice escalado com deslocamento: a instrução inclui um deslocamento a ser adicionado a um registrador, chamado neste caso de registrador indexador. O registrador indexador pode ser qualquer um dos registradores de uso geral exceto aquele chamado de ESP, o qual é normalmente usado para processamento de pilhas.
                                                      1. Modo base com índice escalado e deslocamento: soma o conteúdo do registrador indexador multiplicado por um fator escalar, o conteúdo do registrador base e deslocamento. Isso é útil se um vetor está armazenado dentro de uma pilha; neste caso, os elementos do vetor teriam tamanho de 2, 4 ou 8 bytes cada. Este modo fornece também indexação efi ciente de um vetor bidimensional quando os elementos do vetor têm tamanho de 2, 4 ou 8 bytes.
                                                        1. Modo relativo: pode ser usado em instruções de transferência de controle. Um deslocamento é adicionado ao valor do contador de programa, o qual aponta para a próxima instrução.
                                                      2. Formatos de instrução x86 e ARM
                                                        1. Formatos de instruções x86
                                                          1. Arm é baseado em RISC (Reduced Instruction Set Computing), As instruções de CPU da Arm são razoavelmente atômicas, com uma correlação muito próxima entre o número de instruções e micro-ops.
                                                            1. A Arm apresentou sua arquitetura ARMv8 de 64 bits em 2011. Em vez de estender seu conjunto de instruções de 32 bits, a Arm oferece uma implementação limpa de 64 bits. Para conseguir isso, a arquitetura ARMv8 usa dois estados de execução, AArch32 e AArch64. Como os nomes indicam, um é para executar código de 32 bits e outro para 64 bits.
                                                              1. A beleza do design ARM é que o processador pode alternar perfeitamente de um modo para outro durante sua execução normal. Isso significa que o decodificador para as instruções de 64 bits é um novo design que não precisa manter a compatibilidade com a era de 32 bits, mas o processador como um todo permanece compatível com versões anteriores.
                                                              2. Formatos de instruções ARM
                                                                1. x86 é baseado em CISC(Complex Instruction Set Computing) o CISC, por comparação, oferece muito mais instruções, muitas das quais executam várias operações (como matemática otimizada e movimentação de dados). Isso leva a um melhor desempenho, mas mais consumo de energia decodificando essas instruções complexas.
                                                                  1. Como todas linguagens de montagem, ela utiliza mnemônicas curtas para representar as operações fundamentais que a CPU em um computador pode realizar. Compiladores muitas vezes produzem código de montagem como um passo intermediário ao traduzir um programa de alto nível para código de máquina.
                                                                2. Linguagem de Montagem
                                                                  1. Uma Linguagem de Montagem pura, sem aditivos(macros, pseudo-instruções), é aquela na qual cada comando produz exatamente uma instrução de máquina. Nesse caso, existe uma correspondência de um-para-um nas instruções da Linguagem de Montagem e a Linguagem das Instruções de Máquina.
                                                                    1. É mais simples a programação em linguagem de montagem (com nomes simbólicos e ferramentas auxiliares) do que fazê-lo em linguagem de máquina pura(hexadecimal/binário). Ex: É muito mais fácil para uma pessoa se lembrar de escrever ADD para adicionar um numero a outro do que lembrar o seu valor equivalente em hexadecimal para programar na linguagem de máquina.
                                                                      1. Principal vantagem: performance! Produz-se código de máquina menor e muito mais rápido. O programador decide quais instruções de máquina usar diretamente
                                                                        1. Aplicações potenciais a serem implementadas diretamente em linguagem de montagem:
                                                                          1. Códigos de um cartão inteligente
                                                                            1. O código dos drivers dos dispositivos
                                                                              1. Rotinas da BIOS
                                                                                1. O código em um telefone celular
                                                                                  1. Os loops internos de aplicações dependentes de performance

                                                                                Media attachments

                                                                                Show full summary Hide full summary

                                                                                Similar

                                                                                A-level Sociology Quiz
                                                                                Chuck Amobi
                                                                                Food Technology - Functions of ingredients
                                                                                evie.daines
                                                                                French Tense Endings
                                                                                James Hoyle
                                                                                PMP Prep quiz
                                                                                Andrea Leyden
                                                                                Present Simple vs. Present Continuous
                                                                                Marek Mazur
                                                                                Edexcel Biology chapter 1
                                                                                Anna Bowring
                                                                                Creating Mind Maps with GoConqr
                                                                                Andrea Leyden
                                                                                The Tempest Key Themes
                                                                                Joe Brown
                                                                                Using GoConqr to study Maths
                                                                                Sarah Egan
                                                                                Macbeth Quotes To Learn
                                                                                Sophie Brokenshire
                                                                                TISSUE TYPES
                                                                                Missi Shoup