SlideShare uma empresa Scribd logo
Módulo 5 – OP2 /
PROGRAMAÇÃO DE
MICROPROCESSADORES
Disciplina: Arquitetura de Computadores
(21 horas)
CONTEÚDOS
 As principais instruções de um Microprocessador tipo.
 Realização de pequenos programas de acesso à memória de vídeo como exemplo de aplicação
do Set de instruções.
 Noção de rotinas e principais conceitos a ela associados. Passagem de parâmetros a rotinas
por endereço e por valor.
 Principais conceitos associados à utilização de Interrupções num computador.
 Utilização dos utilitários disponíveis para fazer "debugging”. Estrutura interna de um sistema
operativo tipo. Noção de chamadas ao sistema. Principais chamadas ao sistema disponíveis
por um sistema operativo tipo.
 Utilização das funções de um S.O., para tratamento de ficheiros (Ex.: Carregar uma imagem,
ou uma música para um buffer em memória previamente alocado). Conceito de "device
drivers.
Avaliação/Autoavaliação/Apresentações.
Objetivos
• Dominar os conceitos básicos de programação em Assembly.
• Realizar "debugging" de pequenos programas em Assembly utilizando o
utilitário apropriado.
• Estudar o funcionamento de um Sistema Operativo a baixo nível.
• Realizar programas simples de exemplo em Assembly de comunicação com o
exterior, que utilizem recursos disponíveis pelo Sistema Operativo através de
SYSTEM CALLS.
Conceitos
 O Assembly foi provavelmente a primeira linguagem de programação da
história, surgida na década de 50, época em que os computadores ainda
usavam válvulas. A idéia do Assembly é usar um comando em substituição a
cada instrução de máquina.
 Assembly ou linguagem de montagem é uma notação legível por humanos
para o código de máquina que uma arquitetura de computador específica usa,
utilizada para programar dispositivos computacionais, como
microprocessadores e microcontroladores.
 A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela
substituição dos valores em bruto por símbolos chamados mnemónicos.
Conceitos
 Assembly é a linguagem de programação mais básica disponível para qualquer
processador. Com a linguagem Assembly, um programador só trabalha com as
operações executadas diretamente sobre a CPU física.
Por que aprender Assembly?
 A primeira razão para se trabalhar com o assembler é a oportunidade de
conhecer melhor o funcionamento do seu PC, o que permite o
desenvolvimento de programas de forma mais consistente.
Por que aprender Assembly?
 A segunda razão é que você pode ter um controle total sobre o PC ao fazer
uso do assembler.
Por que aprender Assembly?
 Uma outra razão é que programas assembly são mais rápidos, menores e mais
poderosos do que os criados com outras linguagens.
Por que aprender Assembly?
 Ultimamente, o assembler (assembler) permite uma otimização ideal nos
programas, seja no seu tamanho ou execução.
Processo de criação de programas
 Para a criação de programas são necessários os seguintes passos:
1. Desenvolvimento do algoritmo, estágio em que o problema a ser solucionado é
estabelecido e a melhor solução é proposta, criação de diagramas esquemáticos
relativos à melhor solução proposta.
2. Codificação do algoritmo, o que consiste em escrever o programa em alguma
linguagem de programação; linguagem assembly neste caso específico, tomando como
base a solução proposta no passo anterior.
Processo de criação de programas
3. A transformação para a linguagem de máquina, ou seja, a criação do
programa objeto, escrito como uma sequência de zeros e uns que podem ser
interpretados pelo processador.
4. O último estágio é a eliminação de erros detetados no programa na fase de
teste. A correção normalmente requer a repetição de todos os passos, com
observação atenta.
SOFTWARE NECESSÁRIO
 Para que possamos criar um programa, precisamos de algumas ferramentas:
 Primeiro de um editor para criar o programa fonte.
 Segundo de um assembler, um programa que ir transformar nossa fonte num
programa objeto.
 E, terceiro, de um linker (ligador) que ir gerar o programa executável a partir
do programa objeto.
SOFTWARE NECESSÁRIO
 O editor pode ser qualquer um que dispusermos.
 O assembler pode ser o TASM macro assembler da Borland, e o linker ser o
TLINK, também da Borland.
 Nós devemos criar os programas fonte com a extensão .ASM para que o TASM
reconheça e o transforme no programa objeto, um "formato intermediário" do
programa, assim chamado porque ainda não é um programa executável e tão
pouco um programa fonte.
SOFTWARE NECESSÁRIO
 O linker gera a partir de um programa .OBJ, ou da combinação de vários
deles, um programa executável, cuja extensão‚ normalmente .EXE, embora
possa ser .COM dependendo da forma como for montado e ligado.
1ª Parte - Registos da CPU.
 Para o propósito didático, vamos focar registos de 16 bits.
 A CPU possui 4 registos internos, cada um de 16 bits.
 São eles AX, BX, CX e DX.
 São registos de uso geral e também podem ser usados como registos de 8 bits.
 Para tanto devemos referenciá-los como, por exemplo, AH e AL, que são,
respetivamente, o byte high e o low do registo AX. Esta nomenclatura
também se aplica para os registos BX, CX e DX.
Os registos, segundo seus respetivos nomes
 AX Registo Acumulador
 BX Registo Base
 CX Registo Contador
 DX Registo de Dados
 DS Registo de Segmento de Dados
 ES Registo de Segmento Extra
 SS Registo de Segmento de Pilha
 CS Registo de Segmento de Código
 BP Registo Apontador da Base
 SI Registo de Índice Fonte
 DI Registo de Índice Destino
 SP Registo Apontador de Pilha
 IP Registo Apontador da Próxima Instrução
 F Registo de Flag
Estrutura Assembly
Nas linhas do código em Linguagem Assembly existem duas partes:
a primeira é o nome da instrução a ser executada;
a segunda, os parâmetros do comando.
Por exemplo:
add ah bh
Aqui "add" é o comando a ser executado, neste caso uma adição, e "ah" bem
como "bh" são os parâmetros.
Estrutura Assembly
Por exemplo:
mov al, 25
No exemplo acima, estamos usando a instrução mov, que significa mover o valor 25 para o registo
al.
O nome das instruções nesta linguagem é constituído de 2, 3 ou 4 letras. Estas instruções são
chamadas mnemônicos ou códigos de operação, representando a função que o processador
executar.
Às vezes instruções aparecem assim: add al,[170]
Os parênteses no segundo parâmetro indica-nos que vamos trabalhar com o conteúdo da célula de
memória de número 170, ou seja, com o valor contido no endereço 170 da memória e não com o
valor 170, isto é conhecido como "endereçamento direto".
Assembly
 Para construirmos os programas com o TASM, devemos estruturar o fonte de
forma diferenciada ao que fazíamos com o programa debug.
Estrutura da Programação
 É importante incluir as seguintes diretivas assembly:
.MODEL SMALL
 Define o melo de memória a usar em nosso programa
.CODE
 Define as instruções do programa, relacionado ao segmento de código
.STACK
 Reserva espaço de memória para as instruções de programa na pilha
END
 Finaliza um programa assembly
MODEL
 Modelos Possíveis:
 TINY: Code and Data must fit in same 64k segment. Both Code and Data are NEAR.
 SMALL: Code & Data have separate segment, but must be each less than 64k Both Code and
Data are NEAR. For most applications, this will suffice.
 MEDIUM: Code may be larger than 64k, but Data has to be less than 64k Code is FAR, Data is
NEAR. COMPACT: Code is less than 64k, but Data may be greater than 64k Code is NEAR, Data
is FAR.
 LARGE: Both Code & Data can be greather than 64k. Both are FAR, but a single array cannot
be greater than 64k. Note that max array size means nothing if you are just writing in
assembler. This only matters when you link to C or another high level language.
 HUGE: Same as LARGE, but arrays can be greater than 64k. What that means is that the array
index is a far pointer, instead of a NEAR one. LARGE and HUGE are identical to the assembler
programmer.
STACK
 .STACK 200h
Tells the compiler to set up a 200h byte stack upon execution of the program.
NOTE: the size you choose for the stack does not change the size of
the file on disk. You can see what I mean by changing the 200h to, say,
400h and then recompiling. The file sizes are identicle.
DATA
 .DATA
 Simplified, unnamed 'data' segment. This is where those simplified segments
become very handy. If you were to write out the segment declaration the
regular way, you'd have to write something like this:
CODE
 .CODE
 Pretty much the same story as above, but this is for the code segment.
END
 END
 This tells the compiler that we are all done with our program and that it can
stop compiling, now.
INSTRUÇÃO MOV
Propósito: Transferência de dados entre células de memória, registos e o
acumulador.
Sintaxe:
MOV Destino, Fonte
Destino é o lugar para onde o dado ser movido e Fonte é o lugar onde o dado
está.
INSTRUÇÃO MOV
Os diferentes movimentos de dados permitidos para esta instrução são:
*Destino: memória. Fonte: acumulador
*Destino: acumulador. Fonte: memória
*Destino: registo de segmento. Fonte: memória/registo
*Destino: memória/registo. Fonte: registo de segmento
*Destino: registo. Fonte: registo
*Destino: registo. Fonte: memória
*Destino: memória. Fonte: registo
*Destino: registo. Fonte: dado imediato
*Destino: memória. Fonte: dado imediato
Interrupções mais comuns
Int 21H (Interrupção do DOS)
Múltiplas chamadas à funções DOS.
Int 10H (Interrupção do BIOS)
Entrada e Saída de Vídeo.
Int 16H (Interrupção do BIOS)
Entrada e Saída do Teclado.
Int 17H (Interrupção do BIOS)
Entrada e Saída da Impressora.
INSTRUÇÃO MOV
Exemplo:
MOV AX,0006h
MOV BX,AX
MOV AX,4C00h
INT 21h
Este pequeno programa move o valor 0006h para o registo AX, então ele
move o conteúdo de AX (0006h) para o registo BX, e finalmente move o valor
4C00h para o registo AX para terminar a execução com a opção 4C da interrupção
21h.
Primeiro passo
Use um editor de texto para criar o programa fonte.
Exemplo:
Bloco de notas (NotePad)
Notepad ++
Entre com as seguintes linhas:
Primeiro exemplo
; usar; para fazer comentários em programas assembly
.MODEL SMALL ;modelo de memória
.STACK ;espaço de memória para instruções do programa na pilha
.CODE ;as linhas seguintes são instruções do programa
mov ah,01h ;move o valor 01h para o registrador ah
mov cx,07h ;move o valor 07h para o registrador cx
int 10h ;interrupção 10h
mov ah,4ch ;move o valor 4ch para o registrador ah
int 21h ;interrupção 21h
END ;finaliza o código do programa
Segundo passo
 Salvar o arquivo com o seguinte nome: exam1.asm
 (Não esquecer de salvá-lo no formato ASCII.)
Terceiro passo
Usar o programa TASM para construir o programa objeto.
C:>tasm exam1.asm
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland
International
Assembling file: exam1.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 471k
O TASM só pode criar programas no formato .OBJ, que ainda não pode
ser executado.
Quarto passo
Usar o programa TLINK para criar o programa executável.
C:>tlink exam1.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland
International
C:>
Onde exam1.obj é o nome do programa intermediário, .OBJ.
O comando acima gera diretamente o arquivo com o nome do programa intermediário
e a extensão .EXE.
É opcional a colocação da extensão .obj no comando.
Quinto passo
Executar o programa executável criado.
C:>exam1[enter]
Lembre-se, este programa assembly muda o tamanho do cursor no DOS.
Segundo Exemplo
Use qualquer editor e crie o seguinte:
;exemplo2
.model small
.stack
.code
mov ah,2h ;move o valor 2h para o registrador ah
mov dl,2ah ;move o valor 2ah para o registrador dl
;(‚ o valor ASCII do caractere *)
int 21h ;interrupção 21h
mov ah,4ch ;função 4ch, sai para o sistema operacional
int 21h ;interrupção 21h
end ;finaliza o programa
Segundo passo
Salvar o arquivo com o nome: exam2.asm
Não esquecer de salvar em formato ASCII.
Terceiro passo
Usar o programa TASM para construir o programa objeto.
C:>tasm exam2.asm
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International
Assembling file: exam2.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 471k
Quarto passo
Usar o programa TLINK para criar o programa executável.
C:>tlink exam2.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
C:>
Quinto passo
Executar o programa:
C:>exam2[enter]
*
C:>
este programa imprime o caracter * na tela.
Exemplos de programas a fazer em
Assembly
 http://assembly.happycodings.com/

Mais conteúdo relacionado

Mais procurados

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)
Vitor Hugo Melo Araújo
 
Aula 04 - Medidas de Armazenamento
Aula 04 - Medidas de ArmazenamentoAula 04 - Medidas de Armazenamento
Aula 04 - Medidas de Armazenamento
Suzana Viana Mota
 
ApresentaçãO Tipos De Memorias
ApresentaçãO  Tipos De MemoriasApresentaçãO  Tipos De Memorias
ApresentaçãO Tipos De Memorias
ecompo
 
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsArquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Cleber Ramos
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
Suzana Viana Mota
 
Aula02 - Componentes de um Computador
Aula02 - Componentes de um ComputadorAula02 - Componentes de um Computador
Aula02 - Componentes de um Computador
Suzana Viana Mota
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
Filipe Duarte
 
Técnicas de detecção de avarias
Técnicas de detecção de avariasTécnicas de detecção de avarias
Técnicas de detecção de avarias
Andre Santos
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
Luis Ferreira
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
Elaine Cecília Gatto
 
Informática na educação infantil
Informática na educação infantilInformática na educação infantil
Informática na educação infantil
Claudinéia da Silva
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
Evonaldo Gonçalves Vanny
 
Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)
marconesilfer
 
Aula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorAula 09 - Memórias do Computador
Aula 09 - Memórias do Computador
Suzana Viana Mota
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
Sandra Rocha
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
Wellington Oliveira
 
Apresentação manutenção preventiva
Apresentação manutenção  preventivaApresentação manutenção  preventiva
Apresentação manutenção preventiva
Francisco Ednardo Gomes Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
Mauro Pereira
 

Mais procurados (20)

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)
 
Aula 04 - Medidas de Armazenamento
Aula 04 - Medidas de ArmazenamentoAula 04 - Medidas de Armazenamento
Aula 04 - Medidas de Armazenamento
 
ApresentaçãO Tipos De Memorias
ApresentaçãO  Tipos De MemoriasApresentaçãO  Tipos De Memorias
ApresentaçãO Tipos De Memorias
 
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsArquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 Bits
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Aula02 - Componentes de um Computador
Aula02 - Componentes de um ComputadorAula02 - Componentes de um Computador
Aula02 - Componentes de um Computador
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Técnicas de detecção de avarias
Técnicas de detecção de avariasTécnicas de detecção de avarias
Técnicas de detecção de avarias
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Informática na educação infantil
Informática na educação infantilInformática na educação infantil
Informática na educação infantil
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)
 
Aula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorAula 09 - Memórias do Computador
Aula 09 - Memórias do Computador
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Apresentação manutenção preventiva
Apresentação manutenção  preventivaApresentação manutenção  preventiva
Apresentação manutenção preventiva
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 

Destaque

SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
Luis Ferreira
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
Anderson Galvao
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
Joel Carvalho
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de Computadores
Marco Silva
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
Joel Carvalho
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
Denise Vilardo
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
Joel Carvalho
 
Aula 7 de Arquitetura
Aula 7 de ArquiteturaAula 7 de Arquitetura
Aula 7 de Arquitetura
Marco Silva
 
Arquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdfArquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdf
MatheusRpz
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
Miguel Correia
 
Processadores
ProcessadoresProcessadores
Processadores
Daniela Oura
 
SDAC MODULO 7
SDAC MODULO 7SDAC MODULO 7
SDAC MODULO 7
Luis Carlos
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
Joel Carvalho
 
LÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVELLÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVEL
Claudiu Cartis
 
Sessão 2 app
Sessão 2 appSessão 2 app
Sessão 2 app
Luis Ferreira
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
Elaine Cecília Gatto
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
Tiago Garcia
 
Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slides
Guilherme Ferreira
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
Elaine Cecília Gatto
 
Microprocessadores - exemplos
Microprocessadores - exemplosMicroprocessadores - exemplos
Microprocessadores - exemplos
Alexandre Lomeu
 

Destaque (20)

SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de Computadores
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
 
Aula 7 de Arquitetura
Aula 7 de ArquiteturaAula 7 de Arquitetura
Aula 7 de Arquitetura
 
Arquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdfArquitetura computadores cor_capa_ficha_20110126.pdf
Arquitetura computadores cor_capa_ficha_20110126.pdf
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Processadores
ProcessadoresProcessadores
Processadores
 
SDAC MODULO 7
SDAC MODULO 7SDAC MODULO 7
SDAC MODULO 7
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
 
LÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVELLÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVEL
 
Sessão 2 app
Sessão 2 appSessão 2 app
Sessão 2 app
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
 
Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slides
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Microprocessadores - exemplos
Microprocessadores - exemplosMicroprocessadores - exemplos
Microprocessadores - exemplos
 

Semelhante a Módulo 5 Arquitetura de Computadores

Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
JOEL FARIA HAUK
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
Alyson Cavalcante
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
Jefferson Bessa
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
Sandro Lopes
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 
Execução de programas
Execução de programasExecução de programas
Execução de programas
MattheusAnd07
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
zedaesquina98
 
Resumo x86
Resumo x86Resumo x86
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
Jose Augusto Cintra
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Oc2 cap03
Oc2 cap03Oc2 cap03
Oc2 cap03
RogerMasters
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
laritha
 
Compiladores
CompiladoresCompiladores
Compiladores
Marcelo Avila
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
Jadna Almeida
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
Jorge Cardoso
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
Fernando Mercês
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
Engenharia de Software Ágil
 
Apostila c
Apostila cApostila c
C hardware
C hardwareC hardware
C hardware
aulas for you
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
Jefferson Clayton
 

Semelhante a Módulo 5 Arquitetura de Computadores (20)

Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
Execução de programas
Execução de programasExecução de programas
Execução de programas
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
 
Resumo x86
Resumo x86Resumo x86
Resumo x86
 
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
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Oc2 cap03
Oc2 cap03Oc2 cap03
Oc2 cap03
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Apostila c
Apostila cApostila c
Apostila c
 
C hardware
C hardwareC hardware
C hardware
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
 

Mais de Luis Ferreira

Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
Luis Ferreira
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)
Luis Ferreira
 
ticEduca2016
ticEduca2016ticEduca2016
ticEduca2016
Luis Ferreira
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015
Luis Ferreira
 
Psi m14
Psi m14Psi m14
Psi m14
Luis Ferreira
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
Luis Ferreira
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
Luis Ferreira
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de Doutoramento
Luis Ferreira
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.
Luis Ferreira
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolar
Luis Ferreira
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão Educacional
Luis Ferreira
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Luis Ferreira
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
Luis Ferreira
 
Leadership Starratt
Leadership StarrattLeadership Starratt
Leadership Starratt
Luis Ferreira
 
Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de io
Luis Ferreira
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
Luis Ferreira
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
Luis Ferreira
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSI
Luis Ferreira
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
Luis Ferreira
 
Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da Dissertação
Luis Ferreira
 

Mais de Luis Ferreira (20)

Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)
 
ticEduca2016
ticEduca2016ticEduca2016
ticEduca2016
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015
 
Psi m14
Psi m14Psi m14
Psi m14
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de Doutoramento
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolar
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão Educacional
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
 
Leadership Starratt
Leadership StarrattLeadership Starratt
Leadership Starratt
 
Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de io
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSI
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
 
Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da Dissertação
 

Último

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
Jonathas Muniz
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 

Último (7)

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 

Módulo 5 Arquitetura de Computadores

  • 1. Módulo 5 – OP2 / PROGRAMAÇÃO DE MICROPROCESSADORES Disciplina: Arquitetura de Computadores (21 horas)
  • 2. CONTEÚDOS  As principais instruções de um Microprocessador tipo.  Realização de pequenos programas de acesso à memória de vídeo como exemplo de aplicação do Set de instruções.  Noção de rotinas e principais conceitos a ela associados. Passagem de parâmetros a rotinas por endereço e por valor.  Principais conceitos associados à utilização de Interrupções num computador.  Utilização dos utilitários disponíveis para fazer "debugging”. Estrutura interna de um sistema operativo tipo. Noção de chamadas ao sistema. Principais chamadas ao sistema disponíveis por um sistema operativo tipo.  Utilização das funções de um S.O., para tratamento de ficheiros (Ex.: Carregar uma imagem, ou uma música para um buffer em memória previamente alocado). Conceito de "device drivers. Avaliação/Autoavaliação/Apresentações.
  • 3. Objetivos • Dominar os conceitos básicos de programação em Assembly. • Realizar "debugging" de pequenos programas em Assembly utilizando o utilitário apropriado. • Estudar o funcionamento de um Sistema Operativo a baixo nível. • Realizar programas simples de exemplo em Assembly de comunicação com o exterior, que utilizem recursos disponíveis pelo Sistema Operativo através de SYSTEM CALLS.
  • 4. Conceitos  O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A idéia do Assembly é usar um comando em substituição a cada instrução de máquina.  Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e microcontroladores.  A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemónicos.
  • 5. Conceitos  Assembly é a linguagem de programação mais básica disponível para qualquer processador. Com a linguagem Assembly, um programador só trabalha com as operações executadas diretamente sobre a CPU física.
  • 6. Por que aprender Assembly?  A primeira razão para se trabalhar com o assembler é a oportunidade de conhecer melhor o funcionamento do seu PC, o que permite o desenvolvimento de programas de forma mais consistente.
  • 7. Por que aprender Assembly?  A segunda razão é que você pode ter um controle total sobre o PC ao fazer uso do assembler.
  • 8. Por que aprender Assembly?  Uma outra razão é que programas assembly são mais rápidos, menores e mais poderosos do que os criados com outras linguagens.
  • 9. Por que aprender Assembly?  Ultimamente, o assembler (assembler) permite uma otimização ideal nos programas, seja no seu tamanho ou execução.
  • 10. Processo de criação de programas  Para a criação de programas são necessários os seguintes passos: 1. Desenvolvimento do algoritmo, estágio em que o problema a ser solucionado é estabelecido e a melhor solução é proposta, criação de diagramas esquemáticos relativos à melhor solução proposta. 2. Codificação do algoritmo, o que consiste em escrever o programa em alguma linguagem de programação; linguagem assembly neste caso específico, tomando como base a solução proposta no passo anterior.
  • 11. Processo de criação de programas 3. A transformação para a linguagem de máquina, ou seja, a criação do programa objeto, escrito como uma sequência de zeros e uns que podem ser interpretados pelo processador. 4. O último estágio é a eliminação de erros detetados no programa na fase de teste. A correção normalmente requer a repetição de todos os passos, com observação atenta.
  • 12. SOFTWARE NECESSÁRIO  Para que possamos criar um programa, precisamos de algumas ferramentas:  Primeiro de um editor para criar o programa fonte.  Segundo de um assembler, um programa que ir transformar nossa fonte num programa objeto.  E, terceiro, de um linker (ligador) que ir gerar o programa executável a partir do programa objeto.
  • 13. SOFTWARE NECESSÁRIO  O editor pode ser qualquer um que dispusermos.  O assembler pode ser o TASM macro assembler da Borland, e o linker ser o TLINK, também da Borland.  Nós devemos criar os programas fonte com a extensão .ASM para que o TASM reconheça e o transforme no programa objeto, um "formato intermediário" do programa, assim chamado porque ainda não é um programa executável e tão pouco um programa fonte.
  • 14. SOFTWARE NECESSÁRIO  O linker gera a partir de um programa .OBJ, ou da combinação de vários deles, um programa executável, cuja extensão‚ normalmente .EXE, embora possa ser .COM dependendo da forma como for montado e ligado.
  • 15. 1ª Parte - Registos da CPU.  Para o propósito didático, vamos focar registos de 16 bits.  A CPU possui 4 registos internos, cada um de 16 bits.  São eles AX, BX, CX e DX.  São registos de uso geral e também podem ser usados como registos de 8 bits.  Para tanto devemos referenciá-los como, por exemplo, AH e AL, que são, respetivamente, o byte high e o low do registo AX. Esta nomenclatura também se aplica para os registos BX, CX e DX.
  • 16. Os registos, segundo seus respetivos nomes  AX Registo Acumulador  BX Registo Base  CX Registo Contador  DX Registo de Dados  DS Registo de Segmento de Dados  ES Registo de Segmento Extra  SS Registo de Segmento de Pilha  CS Registo de Segmento de Código  BP Registo Apontador da Base  SI Registo de Índice Fonte  DI Registo de Índice Destino  SP Registo Apontador de Pilha  IP Registo Apontador da Próxima Instrução  F Registo de Flag
  • 17. Estrutura Assembly Nas linhas do código em Linguagem Assembly existem duas partes: a primeira é o nome da instrução a ser executada; a segunda, os parâmetros do comando. Por exemplo: add ah bh Aqui "add" é o comando a ser executado, neste caso uma adição, e "ah" bem como "bh" são os parâmetros.
  • 18. Estrutura Assembly Por exemplo: mov al, 25 No exemplo acima, estamos usando a instrução mov, que significa mover o valor 25 para o registo al. O nome das instruções nesta linguagem é constituído de 2, 3 ou 4 letras. Estas instruções são chamadas mnemônicos ou códigos de operação, representando a função que o processador executar. Às vezes instruções aparecem assim: add al,[170] Os parênteses no segundo parâmetro indica-nos que vamos trabalhar com o conteúdo da célula de memória de número 170, ou seja, com o valor contido no endereço 170 da memória e não com o valor 170, isto é conhecido como "endereçamento direto".
  • 19. Assembly  Para construirmos os programas com o TASM, devemos estruturar o fonte de forma diferenciada ao que fazíamos com o programa debug.
  • 20. Estrutura da Programação  É importante incluir as seguintes diretivas assembly: .MODEL SMALL  Define o melo de memória a usar em nosso programa .CODE  Define as instruções do programa, relacionado ao segmento de código .STACK  Reserva espaço de memória para as instruções de programa na pilha END  Finaliza um programa assembly
  • 21. MODEL  Modelos Possíveis:  TINY: Code and Data must fit in same 64k segment. Both Code and Data are NEAR.  SMALL: Code & Data have separate segment, but must be each less than 64k Both Code and Data are NEAR. For most applications, this will suffice.  MEDIUM: Code may be larger than 64k, but Data has to be less than 64k Code is FAR, Data is NEAR. COMPACT: Code is less than 64k, but Data may be greater than 64k Code is NEAR, Data is FAR.  LARGE: Both Code & Data can be greather than 64k. Both are FAR, but a single array cannot be greater than 64k. Note that max array size means nothing if you are just writing in assembler. This only matters when you link to C or another high level language.  HUGE: Same as LARGE, but arrays can be greater than 64k. What that means is that the array index is a far pointer, instead of a NEAR one. LARGE and HUGE are identical to the assembler programmer.
  • 22. STACK  .STACK 200h Tells the compiler to set up a 200h byte stack upon execution of the program. NOTE: the size you choose for the stack does not change the size of the file on disk. You can see what I mean by changing the 200h to, say, 400h and then recompiling. The file sizes are identicle.
  • 23. DATA  .DATA  Simplified, unnamed 'data' segment. This is where those simplified segments become very handy. If you were to write out the segment declaration the regular way, you'd have to write something like this:
  • 24. CODE  .CODE  Pretty much the same story as above, but this is for the code segment.
  • 25. END  END  This tells the compiler that we are all done with our program and that it can stop compiling, now.
  • 26. INSTRUÇÃO MOV Propósito: Transferência de dados entre células de memória, registos e o acumulador. Sintaxe: MOV Destino, Fonte Destino é o lugar para onde o dado ser movido e Fonte é o lugar onde o dado está.
  • 27. INSTRUÇÃO MOV Os diferentes movimentos de dados permitidos para esta instrução são: *Destino: memória. Fonte: acumulador *Destino: acumulador. Fonte: memória *Destino: registo de segmento. Fonte: memória/registo *Destino: memória/registo. Fonte: registo de segmento *Destino: registo. Fonte: registo *Destino: registo. Fonte: memória *Destino: memória. Fonte: registo *Destino: registo. Fonte: dado imediato *Destino: memória. Fonte: dado imediato
  • 28. Interrupções mais comuns Int 21H (Interrupção do DOS) Múltiplas chamadas à funções DOS. Int 10H (Interrupção do BIOS) Entrada e Saída de Vídeo. Int 16H (Interrupção do BIOS) Entrada e Saída do Teclado. Int 17H (Interrupção do BIOS) Entrada e Saída da Impressora.
  • 29. INSTRUÇÃO MOV Exemplo: MOV AX,0006h MOV BX,AX MOV AX,4C00h INT 21h Este pequeno programa move o valor 0006h para o registo AX, então ele move o conteúdo de AX (0006h) para o registo BX, e finalmente move o valor 4C00h para o registo AX para terminar a execução com a opção 4C da interrupção 21h.
  • 30. Primeiro passo Use um editor de texto para criar o programa fonte. Exemplo: Bloco de notas (NotePad) Notepad ++ Entre com as seguintes linhas:
  • 31. Primeiro exemplo ; usar; para fazer comentários em programas assembly .MODEL SMALL ;modelo de memória .STACK ;espaço de memória para instruções do programa na pilha .CODE ;as linhas seguintes são instruções do programa mov ah,01h ;move o valor 01h para o registrador ah mov cx,07h ;move o valor 07h para o registrador cx int 10h ;interrupção 10h mov ah,4ch ;move o valor 4ch para o registrador ah int 21h ;interrupção 21h END ;finaliza o código do programa
  • 32. Segundo passo  Salvar o arquivo com o seguinte nome: exam1.asm  (Não esquecer de salvá-lo no formato ASCII.)
  • 33. Terceiro passo Usar o programa TASM para construir o programa objeto. C:>tasm exam1.asm Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International Assembling file: exam1.asm Error messages: None Warning messages: None Passes: 1 Remaining memory: 471k O TASM só pode criar programas no formato .OBJ, que ainda não pode ser executado.
  • 34. Quarto passo Usar o programa TLINK para criar o programa executável. C:>tlink exam1.obj Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International C:> Onde exam1.obj é o nome do programa intermediário, .OBJ. O comando acima gera diretamente o arquivo com o nome do programa intermediário e a extensão .EXE. É opcional a colocação da extensão .obj no comando.
  • 35. Quinto passo Executar o programa executável criado. C:>exam1[enter] Lembre-se, este programa assembly muda o tamanho do cursor no DOS.
  • 36. Segundo Exemplo Use qualquer editor e crie o seguinte: ;exemplo2 .model small .stack .code mov ah,2h ;move o valor 2h para o registrador ah mov dl,2ah ;move o valor 2ah para o registrador dl ;(‚ o valor ASCII do caractere *) int 21h ;interrupção 21h mov ah,4ch ;função 4ch, sai para o sistema operacional int 21h ;interrupção 21h end ;finaliza o programa
  • 37. Segundo passo Salvar o arquivo com o nome: exam2.asm Não esquecer de salvar em formato ASCII.
  • 38. Terceiro passo Usar o programa TASM para construir o programa objeto. C:>tasm exam2.asm Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International Assembling file: exam2.asm Error messages: None Warning messages: None Passes: 1 Remaining memory: 471k
  • 39. Quarto passo Usar o programa TLINK para criar o programa executável. C:>tlink exam2.obj Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International C:>
  • 40. Quinto passo Executar o programa: C:>exam2[enter] * C:> este programa imprime o caracter * na tela.
  • 41. Exemplos de programas a fazer em Assembly  http://assembly.happycodings.com/