SlideShare uma empresa Scribd logo
1 de 38
Assembly
Prof. Suzana Mota
*Baseado no material do Prof. Petrônio
Assembly Assembler
Linguagem de
Programação
Compilador da
linguagem Assembly
Linguagens de Montagem
● Como desenvolviam sistemas os pioneiros da
computação?
● Não existiam ainda linguagens de alto nível como C,
C++ e Java.
● O desenvolvimento era feito em Assembly, ou seja, a
linguagem de máquina de um determinado processador.
Assembly
● Linguagem não estruturada
● Compilada
● Baixo Nível
● Alto Desempenho
Linguagens Não Estruturadas
● Não possuem estrutura usuais de controle.
● Conjunto de instruções de um processador
específico.
● Baixíssima Produtividade.
Grandes Projetos
Projeto Apollo 11 – Que levou o homem
pela primeira vez a lua em 1969.
Margaret Hamilton diretora da Divisão de
Software com todo o código Assembly do
Projeto Apollo 11
Github: https://github.com/chrislgarry/Apollo-11
Processador Intel 8086
● Iniciou linha de sucesso
entre processadores e foi
o precursor dos chips
atuais.
Processador
Processador
Registradores
de uso geral
Ponteiro de
Instruções
Ponteiro de
Pilha
Bits que
Indicam condições
Processador
Porta Periférico
10h Teclado
20h Monitor
30h Disco
Como funciona?
Como funciona?
Primeiro programa em Assembly
Somar dois números, sendo o valor
do primeiro 2 e do segundo 3
Primeiro programa em Assembly
Somar dois números, sendo o valor
do primeiro 2 e do segundo 3
MOV AX, 3 // Insere o valor 3 em AX
MOV BX, 2 // Insere o valor 2 em BX
ADD AX,BX // Soma BX a AX
HLT // Finaliza o programa
Simulador
https://schweigi.github.io/assembler-simulator/
Segundo programa em Assembly
Somar três números, sendo o valor
do primeiro 2 e do segundo 3 e do
terceiro 10.
Exercício
Somar três números, sendo o valor
do primeiro 2 e do segundo 3 e do
terceiro 10.
MOV A, 3 // Insere o valor 3 em AX
MOV B, 2 // Insere o valor 2 em BX
MOV C, 10 // Insere o valor 10 em CX
ADD A,B // Soma BX a AX
ADD C,A // Soma AX a CX
HLT // Encerra o programa
Instruções: Entrada e Saída
Exercício: Entrada e Saída
Somar as idades de dois usuários
Exercício: Entrada e Saída
Leias as idades de dois usuarios no
teclado e some-as
IN 10h // Ler o valor do teclado
MOV B,A // Copia o valor de AX para BX
IN 10h // Ler o valor do teclado
MOV C,A // Copia o valor de AX para CX
ADD B,C // Soma o valor de CX a BX
MOV A,B // Copia o valor de BX para AX
OUT 20h // Imprime o valor de AX
HLT // Finaliza o programa
Instruções: Lógico Matemáticas
Exercício
A = 10
B = 20
C = 30
A = A+B
A = A -C
Exercício
A = 10
B = 20
C = 30
MOV A, 10
MOV B, 20
MOV C, 30
ADD A,B
SUB A,C
HLT
A = A+B
A = A -C
Instruções: Lógico Matemáticas
Exercício
A = 10
B = 20
C = 30
D = 2
B = A*B
C = B + C
A = B / D
Exercício
A = 10
B = 20
C = 30
D = 2
MOV A, 10
MOV B, 20
MOV C, 30
MOV D, 2
MUL B
MOV B,A
ADD C,B
DIV D
HLT
B = A*B
C = B + C
A = B / D
Pilhas
A pilha é uma estrutura de
dados do tipo
LIFO - Last In, First Out
Comandos:
PUSH – Envia o dado para a
pilha
POP – Recupera o dado da
pilha
Instruções: Manipulação de Memória
Exercício
A = 2
B = 3
Coloque os dois na pilha
E recupere o valor da pilha
C = A e D = B
Exercício
A = 2
B = 3
Coloque os dois na pilha
E recupere o valor da pilha
C = A e D = B
MOV A, 3
MOV B, 2
PUSH A
PUSH B
POP B
MOV C,B
POP A
MOV D,A
HLT
Labels
●Um label (etiqueta) é um nome ou rótulo dado à
uma posição de memória.
●Dessa forma, ao invés de nos referirmos ao
endereço da memória podemos nos referir ao
label
Sub-rotinas
●Um bloco de código que faz determinada tarefa,
exatamente como um procedimento ou uma
função.
●Cada chamada de dentro do Programa Principal
causa um desvio automático para o endereço da
sub-rotina chamada.
Sub-rotinas
●O endereço de retorno da Sub-rotina é
armazenado na Pilha no endereço apontado pelo
Stack Pointer (SP).
● Comando:
CALL NOME-SUB-ROTINA
Outras Instruções
Exercício
Faça um contador de 0 a 10
Exercício
Faça um contador de 0 a 10
start:
MOV C, 0
MOV D, 10
CALL multiplica
HLT
multiplica:
INC C
.loop:
INC C
CMP c, d ; Check if end
JNZ .loop ; jump if not
RET
Exercícios
1. Faça um programa em Assembly onde:
A = 10
B = 15
C = 5
A = A + B + C
B = B – A – C
2. Faça um programa em Assembly que defina um semáforo onde:
1 = Semáforo ligado
0 = Semáforo desligado
Ligue o semáforo A
Desligue o semáforo B
Conte até 10
Desligue o semáforo A
Ligue o semáforo B
Exercícios
Enviar para:
suzana.svm@gmail.com

Mais conteúdo relacionado

Mais procurados

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
Abnel Junior
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
Fabio Souza
 

Mais procurados (20)

Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Apresentação Aula 01
Apresentação  Aula 01Apresentação  Aula 01
Apresentação Aula 01
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Redes de comunicação - TGPSI
Redes de comunicação - TGPSIRedes de comunicação - TGPSI
Redes de comunicação - TGPSI
 
Aula 06 softwares
Aula 06   softwaresAula 06   softwares
Aula 06 softwares
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Ab funcoes-logicas-portas-logicas
Ab funcoes-logicas-portas-logicasAb funcoes-logicas-portas-logicas
Ab funcoes-logicas-portas-logicas
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 

Semelhante a Linguagem Assembly

Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
LCCIMETRO
 

Semelhante a Linguagem Assembly (20)

Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Apostila C++
Apostila C++ Apostila C++
Apostila C++
 
Parte1c
Parte1cParte1c
Parte1c
 
Apostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.comApostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.com
 
Oc2 cap03
Oc2 cap03Oc2 cap03
Oc2 cap03
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
 
Pilhas
PilhasPilhas
Pilhas
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Shell Script - Aula 02
Shell Script - Aula 02Shell Script - Aula 02
Shell Script - Aula 02
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em C
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 

Mais de Suzana Viana Mota

Mais de Suzana Viana Mota (20)

Exercicios - Redes Móveis
Exercicios - Redes MóveisExercicios - Redes Móveis
Exercicios - Redes Móveis
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadores
 
Organizacao e estrutura de Computadores
Organizacao e estrutura de ComputadoresOrganizacao e estrutura de Computadores
Organizacao e estrutura de Computadores
 
Visão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirlsVisão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirls
 
Atividades de Sistemas Binários
Atividades de Sistemas BináriosAtividades de Sistemas Binários
Atividades de Sistemas Binários
 
Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...
 
Mundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuroMundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuro
 
Como estudar melhor
Como estudar melhor Como estudar melhor
Como estudar melhor
 
Atalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em ComputadoresAtalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em Computadores
 
Aula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para InternetAula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para Internet
 
Criptografia e Privacidade
Criptografia e PrivacidadeCriptografia e Privacidade
Criptografia e Privacidade
 
Exercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware RevisãoExercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware Revisão
 
Desenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiênciaDesenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiência
 
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized WheelchairComparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
 
Formatei o computador e agora?
Formatei o computador e agora?Formatei o computador e agora?
Formatei o computador e agora?
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Aula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos HumanosAula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos Humanos
 
Aula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da QualidadeAula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da Qualidade
 
Como tornar seu site atraente
Como tornar seu site atraenteComo tornar seu site atraente
Como tornar seu site atraente
 
Sistemas Digitais - Inspirações de Projetos IoT
Sistemas Digitais - Inspirações de Projetos IoTSistemas Digitais - Inspirações de Projetos IoT
Sistemas Digitais - Inspirações de Projetos IoT
 

Linguagem Assembly

Notas do Editor

  1. Conceito
  2. Como fazer Pilhas em Assembly
  3. Como fazer Pilhas em Assembly
  4. Como fazer Pilhas em Assembly