Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução à Arquitetura de Computadores: Linguagem de Montagem e Máquina, Slides de Interface entre Ciência da Computação e Economia

Conceitos básicos sobre linguagem de montagem e máquina, incluindo a notação legível para código de máquina, tradutores e montadores/assemblers. O texto também aborda a história da arquitetura de computadores, elementos de uma instrução e representação de uma instrução. Além disso, discute as vantagens e desvantagens de programar em assembly, como o acesso direto a recursos do hardware e o conhecimento profundo de como os computadores funcionam.

O que você vai aprender

  • Quais são as vantagens de programar em Assembly em comparação a outras linguagens de alto nível?
  • Quais são os elementos básicos de uma instrução em Assembly?
  • Qual é a função de um tradutor em relação a um programa usuário e a linguagem alvo?
  • Qual é a função de um montador/assembler em relação a uma linguagem de montagem e a linguagem de máquina?
  • O que é a linguagem de montagem e como ela difere da linguagem de máquina?

Tipologia: Slides

2021

Compartilhado em 07/12/2021

leticia-rodrigues-cy2
leticia-rodrigues-cy2 🇧🇷

1 documento

1 / 27

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Arquitetura e Organização de
Computadores
Givanaldo Rocha de Souza
http://docente.ifrn.edu.br/givanaldorocha
givanaldo.rocha@ifrn.edu.br
Linguagem de Montagem e Linguagem
de Máquina
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Pré-visualização parcial do texto

Baixe Introdução à Arquitetura de Computadores: Linguagem de Montagem e Máquina e outras Slides em PDF para Interface entre Ciência da Computação e Economia, somente na Docsity!

Arquitetura e Organização de

Computadores

Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br

Linguagem de Montagem e Linguagem

de Máquina

Conceitos básicos

  • Linguagem/código de máquina

Instruções que o processador é capaz de

executar. Essas instruções, chamadas de código

de máquina, são representadas por sequências

de bits, normalmente limitadas pelo número de

bits do registrador principal (8, 16, 32, 64 ou

128) da CPU.

Conceitos básicos

  • Tradutor

Programas que convertem um programa usuário

escrito em alguma linguagem (fonte) para uma

outra linguagem (alvo).

  • Montador/Assembler

Um tradutor onde a linguagem fonte é a

linguagem de montagem e a linguagem alvo é a

linguagem de máquina.

Conceitos básicos (resumo)

Arquitetura

  • Arquitetura de computador: própria linguagem de máquina e linguagem de montagem.
  • Funções de alto nível diferente para cada arquitetura.

Elementos de uma instrução

  • Internamente, cada instrução é representada

como uma sequência de bits dividida em

campos, correspondentes aos elementos de

uma instrução.

Representação de uma instrução

  • Dificuldade do programador lidar com representações binárias de instruções de máquina.
  • Uso de uma representação simbólica:
    • Os códigos de operação são representados por abreviações, chamadas mnemônicos. - ADD (adição) - SUB (subtração) - MPY (multiplicação)
    • Os operandos também são representados de maneira simbólica. - ADD AX, BX

Programação em Assembly

Por que não C ou outra linguagem de alto nível?

  • C é mais simples, mais próxima da linguagem natural (inglês).
  • C é portável, ou seja, um mesmo programa pode rodar em sistemas operacionais diferentes, usando processadores PowerPC ou Intel, por exemplo.

Programação em Assembly

Conclusão

• Saber programar em Assembly é muito

útil mesmo que nunca se programe

diretamente nele.

O Assembly do 80386

  • Primeiro processador da Intel de 32 bits com

recursos modernos:

  • Modo protegido de memória (nas versões antigas, como o 8086 havia o “modo real”, onde cada programa poderia bagunçar livremente a memória de algum outro).
  • Todos os sistemas operacionais modernos operam rodando sobre o modo protegido.
  • Multitarefa.
  • Registradores do

Registradores pré-

AX = AH AL 16 bits 8 bits 8 bits

Também vale para BX, CX e DX

Registradores do 80386

  • Registradores de endereço
    • EIP: Ponteiro de índice, guarda um índice indicando a próxima instrução a ser executada.
    • EBP: Endereço da base da pilha.
    • ESP: Endereço do topo da pilha.
    • EDI: Índice do destino na operação de cópia de strings.
    • ESI: Índice da fonte na operação de cópia de strings.

Registradores do 80386

  • Registrador EFLAG
    • Cada um de seus 32 bits controla ou exibe algum estado final ou intermediário de uma operação.
    • Exemplos:
      • Zero flag (6): indica se o resultado de uma operação foi zero.
      • Direction flag (10): usado no processamento de strings, indica quando o processamento deve ser feito do início para fim ou vice-versa.
      • Overflow flag (11): usado por operações aritméticas que podem gerar estouro de pilha (overflow).