Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


Ciência da computação e tecnologia da informação. Registros (notas de aula)

Notas de aula, folhas de dicas

Diretório / Notas de aula, folhas de dicas

Comentários do artigo Comentários do artigo

Índice (expandir)

PALESTRA Nº 14. Montadora

1. Sobre a montadora

Antigamente, assembler era uma linguagem sem saber que era impossível fazer um computador fazer algo útil. Aos poucos a situação mudou. Surgiram meios de comunicação mais convenientes com um computador. Mas, ao contrário de outras linguagens, o assembler não morreu; além disso, não poderia fazer isso em princípio. Por quê? Em busca de uma resposta, tentaremos entender o que é a linguagem assembly em geral.

Em suma, a linguagem assembly é uma representação simbólica da linguagem de máquina. Todos os processos na máquina no nível mais baixo de hardware são acionados apenas por comandos (instruções) da linguagem de máquina. A partir disso fica claro que, apesar do nome comum, a linguagem assembly para cada tipo de computador é diferente. Isso também se aplica à aparência de programas escritos em assembler e às ideias das quais essa linguagem é um reflexo.

Realmente resolver problemas relacionados a hardware (ou, ainda mais, relacionados a hardware, como melhorar a velocidade do programa) é impossível sem o conhecimento do montador.

Um programador ou qualquer outro usuário pode usar qualquer ferramenta de alto nível até programas para construir mundos virtuais e, talvez, nem mesmo suspeitar que o computador está realmente executando não os comandos da linguagem em que seu programa está escrito, mas sua representação transformada na forma de uma sequência de comandos chata e maçante de uma linguagem completamente diferente - linguagem de máquina. Agora imagine que tal usuário tenha um problema fora do padrão. Por exemplo, seu programa deve funcionar com algum dispositivo incomum ou realizar outras ações que exijam conhecimento dos princípios do hardware do computador. Não importa quão boa seja a linguagem em que o programador escreveu seu programa, ele não pode prescindir de conhecer o montador. E não é por acaso que quase todos os compiladores de linguagens de alto nível contêm meios de conectar seus módulos com módulos em assembler ou suportam acesso ao nível de programação em assembler.

Um computador é composto de vários dispositivos físicos, cada um dos quais está conectado a uma unidade, chamada de unidade do sistema. Para entender seu propósito funcional, vejamos o diagrama de blocos de um computador típico (Fig. 1). Não pretende uma precisão absoluta e visa apenas mostrar a finalidade, a relação e a composição típica dos elementos de um computador pessoal moderno.

Arroz. 1. Diagrama de blocos de um computador pessoal

2. Modelo de software do microprocessador

No mercado de computadores de hoje, há uma grande variedade de diferentes tipos de computadores. Portanto, é possível supor que o consumidor terá uma dúvida sobre como avaliar as capacidades de um determinado tipo (ou modelo) de um computador e suas características distintivas de computadores de outros tipos (modelos). Para reunir todos os conceitos que caracterizam um computador em termos de suas propriedades funcionais controladas por programas, existe um termo especial - arquitetura de computador. Pela primeira vez, o conceito de arquitetura de computadores começou a ser mencionado com o advento das máquinas de terceira geração para sua avaliação comparativa.

Faz sentido começar a aprender a linguagem assembly de qualquer computador somente depois de descobrir qual parte do computador fica visível e disponível para programação nessa linguagem. Este é o chamado modelo de programa de computador, do qual parte é o modelo de programa do microprocessador, que contém trinta e dois registradores, mais ou menos disponíveis para uso do programador.

Esses registradores podem ser divididos em dois grandes grupos:

1) 6 cadastros de usuários;

2) 16 registros do sistema.

3. Registros de usuários

Como o nome indica, os registros de usuário são chamados porque o programador pode usá-los ao escrever seus programas. Esses registros incluem (Fig. 2):

1) oito registradores de 32 bits que podem ser usados ​​por programadores para armazenar dados e endereços (também chamados de registradores de propósito geral (RON)):

eax/ax/ah/al;

ebx/bx/bh/bl;

edx/dx/dh/dl;

ecx/cx/ch/cl;

ep/pb;

esi/si;

edi/di;

esp/esp.

2) seis registradores de segmento: cs, ds, ss, es, fs, gs;

3) registros de status e controle:

bandeiras de registro de bandeiras/bandeiras;

registrador de ponteiro de comando eip/ip.

Arroz. 2. Registros de usuários

Muitos desses registros são dados com uma barra. Estes não são registros diferentes - eles são partes de um grande registro de 32 bits. Eles podem ser usados ​​no programa como objetos separados.

4. Registros gerais

Todos os registros deste grupo permitem acessar suas partes "inferiores". Apenas as partes inferiores de 16 e 8 bits desses registradores podem ser usadas para auto-endereçamento. Os 16 bits superiores desses registradores não estão disponíveis como objetos independentes.

Vamos listar os registradores pertencentes ao grupo de registradores de uso geral. Como esses registradores estão fisicamente localizados no microprocessador dentro da unidade lógica aritmética (AL>), eles também são chamados de registradores ALU:

1) eax/ax/ah/al (Registro do acumulador) - bateria. Usado para armazenar dados intermediários. Em alguns comandos, o uso deste registro é obrigatório;

2) ebx/bx/bh/bl (base cadastral) - base cadastral. Usado para armazenar o endereço base de algum objeto na memória;

3) ecx/cx/ch/cl (registro de contagem) - registro de contador. É usado em comandos que executam algumas ações repetitivas. Seu uso é muitas vezes implícito e oculto no algoritmo do comando correspondente.

Por exemplo, o comando de organização de loop, além de transferir o controle para um comando localizado em determinado endereço, analisa e decrementa o valor do registrador esx/cx em um;

4) edx/dx/dh/dl (registro de dados) - registro de dados.

Assim como o registrador eax/ax/ah/al, ele armazena dados intermediários. Alguns comandos requerem seu uso; para alguns comandos isso acontece implicitamente.

Os dois registradores a seguir são usados ​​para suportar as chamadas operações em cadeia, ou seja, operações que processam sequencialmente cadeias de elementos, cada um dos quais pode ter 32, 16 ou 8 bits de comprimento:

1) esi/si (registro de índice de origem) - índice de origem.

Este registro em operações de cadeia contém o endereço atual do elemento na cadeia de origem;

2) edi/di (registro de índice de destino) - índice do receptor (destinatário). Este registrador em operações de cadeia contém o endereço atual na cadeia de destino.

Na arquitetura do microprocessador no nível de hardware e software, uma estrutura de dados como uma pilha é suportada. Para trabalhar com a pilha no sistema de instruções do microprocessador, existem comandos especiais e, no modelo de software do microprocessador, existem registros especiais para isso:

1) esp/sp (registrador de ponteiro de pilha) - registrador de ponteiro de pilha. Contém um ponteiro para o topo da pilha no segmento de pilha atual.

2) ebp/bp (registrador de ponteiro de base) - registrador de ponteiro de base de quadro de pilha. Projetado para organizar o acesso aleatório aos dados dentro da pilha.

O uso de hard pining de registradores para algumas instruções permite que sua representação de máquina seja codificada de forma mais compacta. Conhecer esses recursos, se necessário, economizará pelo menos alguns bytes de memória ocupados pelo código do programa.

5. Registros de segmento

Existem seis registradores de segmento no modelo de software do microprocessador: cs, ss, ds, es, gs, fs.

Sua existência se deve às especificidades da organização e uso da RAM pelos microprocessadores Intel. Está no fato de que o hardware do microprocessador suporta a organização estrutural do programa na forma de três partes, chamadas de segmentos. Assim, tal organização de memória é chamada de segmentada.

Para indicar os segmentos aos quais o programa tem acesso em um determinado momento, os registradores de segmento são pretendidos. De fato (com uma pequena correção) esses registradores contêm os endereços de memória a partir dos quais os segmentos correspondentes começam. A lógica de processamento de uma instrução de máquina é construída de tal forma que ao buscar uma instrução, acessar dados do programa ou acessar a pilha, endereços em registradores de segmento bem definidos são usados ​​implicitamente.

O microprocessador suporta os seguintes tipos de segmentos.

1. Segmento de código. Contém comandos do programa. Para acessar este segmento, é utilizado o registrador cs (registro de segmento de código) - o registrador de código de segmento. Ele contém o endereço do segmento com instruções de máquina às quais o microprocessador tem acesso (ou seja, essas instruções são carregadas no pipeline do microprocessador).

2. Segmento de dados. Contém os dados processados ​​pelo programa. Para acessar este segmento, é utilizado o registro ds (registro de segmento de dados) - um registro de dados de segmento que armazena o endereço do segmento de dados do programa atual.

3. Empilhe o segmento. Este segmento é uma região da memória chamada pilha. O microprocessador organiza o trabalho com a pilha de acordo com o seguinte princípio: o último elemento escrito nesta área é selecionado primeiro. Para acessar este segmento, é usado o registrador ss (stack segment register) - o registrador de segmento de pilha que contém o endereço do segmento de pilha.

4. Segmento de dados adicional. Implicitamente, os algoritmos para executar a maioria das instruções de máquina assumem que os dados que processam estão localizados no segmento de dados, cujo endereço está no registrador do segmento ds. Se um segmento de dados não for suficiente para o programa, ele terá a oportunidade de usar mais três segmentos de dados adicionais. Mas, ao contrário do segmento de dados principal, cujo endereço está contido no registrador de segmento ds, ao usar segmentos de dados adicionais, seus endereços devem ser especificados explicitamente usando prefixos especiais de redefinição de segmento no comando. Endereços de segmentos de dados adicionais devem estar contidos nos registros es, gs, fs (registros de segmentos de dados de extensão).

6. Registros de status e controle

O microprocessador inclui vários registradores que contêm constantemente informações sobre o estado do próprio microprocessador e do programa cujas instruções estão atualmente carregadas no pipeline. Esses registros incluem:

1) bandeiras/bandeiras de registro de bandeiras;

2) registro de ponteiro de comando eip/ip.

Usando esses registradores, você pode obter informações sobre os resultados da execução do comando e influenciar o estado do próprio microprocessador. Vamos considerar com mais detalhes a finalidade e o conteúdo desses registros.

1. eflags/flags (registro de bandeira) - registro de bandeira. A profundidade de bits de eflags/flags é de 32/16 bits. Bits individuais deste registrador têm um propósito funcional específico e são chamados de sinalizadores. A parte inferior deste registrador é exatamente igual ao registrador flags para 18086. A Figura 3 mostra o conteúdo do registrador eflags.

Arroz. 3. O conteúdo do registro de eflags

Dependendo de como são utilizadas, as bandeiras do registro eflags/flags podem ser divididas em três grupos:

1) oito sinalizadores de status.

Esses sinalizadores podem mudar após a execução das instruções de máquina. Os flags de status do registrador eflags refletem as especificidades do resultado da execução de operações aritméticas ou lógicas. Isso torna possível analisar o estado do processo computacional e responder a ele usando comandos de salto condicionais e chamadas de sub-rotinas. A Tabela 1 lista os sinalizadores de status e sua finalidade.

2) uma bandeira de controle.

Denotado df (Sinalizador de Diretório). Ele está localizado no bit 10 do registrador eflags e é usado por comandos encadeados. O valor do sinalizador df determina a direção do processamento elemento a elemento nestas operações: do início da string ao final (df = 0) ou vice-versa, do final da string ao seu início (df = 1). Existem comandos especiais para trabalhar com o sinalizador df: eld (remover o sinalizador df) e std (definir o sinalizador df). O uso desses comandos permite ajustar o sinalizador df de acordo com o algoritmo e garantir que os contadores sejam incrementados ou decrementados automaticamente ao realizar operações em strings.

3) cinco sinalizadores do sistema.

Controla E/S, interrupções mascaráveis, depuração, alternância de tarefas e modo virtual 8086. Não é recomendado que programas aplicativos modifiquem esses sinalizadores desnecessariamente, pois isso fará com que o programa seja encerrado na maioria dos casos. A Tabela 2 lista os sinalizadores do sistema e sua finalidade.

Tabela 1. Sinalizadores de statusTabela 2. Sinalizadores do sistema

2. eip/ip (registrador de ponteiro de instrução) - registrador de ponteiro de instrução. O registrador eip/ip tem 32/16 bits de largura e contém o deslocamento da próxima instrução a ser executada em relação ao conteúdo do registrador de segmento cs no segmento de instrução atual. Esse registrador não é acessível diretamente ao programador, mas seu valor é carregado e alterado por vários comandos de controle, que incluem comandos para saltos condicionais e incondicionais, chamada de procedimentos e retorno de procedimentos. A ocorrência de interrupções também modifica o registrador eip/ip.

Autor: Tsvetkova A.V.

<< Voltar: Montador (Sobre assembler. Modelo de software de microprocessador. Registros de usuário. Registros de uso geral. Registros de segmento. Registros de status e controle)

>> Encaminhar: Programas de montagem (Estrutura do programa Assembler. Sintaxe Assembler. Operadores de comparação. Operadores e sua precedência. Diretivas simplificadas de definição de segmento. Identificadores criados pela diretiva MODEL. Modelos de memória. Modificadores de modelo de memória)

Recomendamos artigos interessantes seção Notas de aula, folhas de dicas:

Imunologia geral e clínica. Berço

Pedagogia. Notas de aula

Doenças cirúrgicas. Notas de aula

Veja outros artigos seção Notas de aula, folhas de dicas.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

A existência de uma regra de entropia para o emaranhamento quântico foi comprovada 09.05.2024

A mecânica quântica continua a nos surpreender com seus fenômenos misteriosos e descobertas inesperadas. Recentemente, Bartosz Regula do Centro RIKEN de Computação Quântica e Ludovico Lamy da Universidade de Amsterdã apresentaram uma nova descoberta que diz respeito ao emaranhamento quântico e sua relação com a entropia. O emaranhamento quântico desempenha um papel importante na moderna ciência e tecnologia da informação quântica. No entanto, a complexidade da sua estrutura torna a sua compreensão e gestão um desafio. A descoberta de Regulus e Lamy mostra que o emaranhamento quântico segue uma regra de entropia semelhante à dos sistemas clássicos. Esta descoberta abre novas perspectivas na ciência e tecnologia da informação quântica, aprofundando a nossa compreensão do emaranhamento quântico e a sua ligação à termodinâmica. Os resultados do estudo indicam a possibilidade de reversibilidade das transformações de emaranhamento, o que poderia simplificar muito seu uso em diversas tecnologias quânticas. Abrindo uma nova regra ... >>

Mini ar condicionado Sony Reon Pocket 5 09.05.2024

O verão é uma época de relaxamento e viagens, mas muitas vezes o calor pode transformar essa época em um tormento insuportável. Conheça um novo produto da Sony – o minicondicionador Reon Pocket 5, que promete deixar o verão mais confortável para seus usuários. A Sony lançou um dispositivo exclusivo - o minicondicionador Reon Pocket 5, que fornece resfriamento corporal em dias quentes. Com ele, os usuários podem desfrutar do frescor a qualquer hora e em qualquer lugar, simplesmente usando-o no pescoço. Este miniar condicionado está equipado com ajuste automático dos modos de operação, além de sensores de temperatura e umidade. Graças a tecnologias inovadoras, o Reon Pocket 5 ajusta o seu funcionamento em função da atividade do utilizador e das condições ambientais. Os usuários podem ajustar facilmente a temperatura usando um aplicativo móvel dedicado conectado via Bluetooth. Além disso, camisetas e shorts especialmente desenhados estão disponíveis para maior comodidade, aos quais um mini ar condicionado pode ser acoplado. O dispositivo pode, oh ... >>

Energia do espaço para Starship 08.05.2024

A produção de energia solar no espaço está se tornando mais viável com o advento de novas tecnologias e o desenvolvimento de programas espaciais. O chefe da startup Virtus Solis compartilhou sua visão de usar a Starship da SpaceX para criar usinas orbitais capazes de abastecer a Terra. A startup Virtus Solis revelou um ambicioso projeto para criar usinas de energia orbitais usando a Starship da SpaceX. Esta ideia poderia mudar significativamente o campo da produção de energia solar, tornando-a mais acessível e barata. O cerne do plano da startup é reduzir o custo de lançamento de satélites ao espaço usando a Starship. Espera-se que este avanço tecnológico torne a produção de energia solar no espaço mais competitiva com as fontes de energia tradicionais. A Virtual Solis planeja construir grandes painéis fotovoltaicos em órbita, usando a Starship para entregar os equipamentos necessários. Contudo, um dos principais desafios ... >>

Notícias aleatórias do Arquivo

Wilson Electronics weBoost Drive Elegante impulsionador de sinal 4G 28.09.2017

A Wilson Electronics lançou um amplificador de sinal 4G projetado para instalação em um carro.

O produto se chama weBoost Drive Sleek e consiste em dois blocos. Um, que inclui uma antena, é montado externamente no teto do carro com um suporte magnético, e o outro é montado no interior, no painel, e serve adicionalmente como suporte para smartphone. Eles são conectados entre si por um cabo. O WeBoost Drive Sleek é alimentado pela rede elétrica integrada, cuja tensão é convertida em 5 V.

Diz-se que o weBoost Drive Sleek melhora a conectividade 4G e 3G. Esse efeito é obtido pela amplificação do sinal, que chega a 23 dB.

Outras notícias interessantes:

▪ Cápsula de vídeo com controle remoto como alternativa ao endoscópio

▪ De onde vieram os olhos azuis

▪ Veículos aéreos não tripulados com biocasco

▪ Unidades de estado sólido de grau industrial Adata ISSS332

▪ Os vírus são 10 vezes mais fortes de manhã do que à noite

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Detectores de intensidade de campo. Seleção de artigos

▪ artigo Minhas Universidades. expressão popular

▪ artigo É verdade que em 1576 houve um encontro entre a Rainha dos Piratas e a Rainha da Inglaterra? Resposta detalhada

▪ artigo Chefe de Operações. Descrição do trabalho

▪ artigo Detector de minas. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Fita mágica. Segredo do Foco

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024