Anderson L. S. Moreira

Tamanho: px
Começar a partir da página:

Download "Anderson L. S. Moreira"

Transcrição

1 Aula 12 Assembly - Apresentação Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br Anderson Moreira Arquitetura de Computadores 1

2 O que fazer com essa apresentação Anderson Moreira Arquitetura de Computadores 2

3 Por que usar assembly Criação de sistemas operacionais Comunicação com dispositivos internos / externos Programação de sistemas embarcados Criação de device drivers Ci Criação de gerenciadores de boot Anderson Moreira Arquitetura de Computadores 3

4 Criação de Sistemas Operacionais (SO) Anderson Moreira Arquitetura de Computadores 4

5 Comunicação com dispositivos internos / externos Anderson Moreira Arquitetura de Computadores 5

6 Programação de sistemas embarcados Anderson Moreira Arquitetura de Computadores 6

7 Criação de devices drivers Anderson Moreira Arquitetura de Computadores 7

8 Por que não usar assembly? Códigos podem não ser tão intuitivos movb $0x10,%al movw $0x0378,%dx outb %al,%dx jmp say mov dx msg mov ah, 9 int 21h fldpi fld dword [radio] fmul st0, st0 fmul st0, st1 fld dword [height] fmul st0, st1 fst dword [vol] Anderson Moreira Arquitetura de Computadores 8

9 Por que não usar assembly? Pode ser mais fácil trabalhar em outra linguagem if (a){ a += b*c; }else{ a -= =b+c; } mov al, a mov bl, b mov cl, c xor ah, ah cmp al, ah jz L1: mult bl, cl add al, bl jmp L2 L1: add bl, cl sub al, bl L2:... Anderson Moreira Arquitetura de Computadores 9

10 Por que não usar assembly? Alguns programadores tem pavor de assembly; Pode ser complicado pensar em assembly; Testar os programas e descobrir erros pode ser um aventura (eventuais falhas do SO). Anderson Moreira Arquitetura de Computadores 10

11 Fases de um projeto utilizando assembly Fase 1 Fase 2 Fase 3 Fase 4 Fase 5 Identificar Objetivos Analisar recursos a serem utilizados Verificar viabilidade Desenvolver Testes Anderson Moreira Arquitetura de Computadores 11

12 Exemplo prático - 1 Mini-OS BIOS HARDWARE Anderson Moreira Arquitetura de Computadores 12

13 Exemplo prático - 2 PROGRAMA SISTEMA OPERACIONAL BIOS HARDWARE Anderson Moreira Arquitetura de Computadores 13

14 Conclusão Assembly é ou não necessário? TEXT TET TEXT TEXT Anderson Moreira Arquitetura de Computadores 14

15 Diretivas Assembler O que são? Diferentemente das instruções assembly (mov, add, push, jmp...), que são comandos direcionados à CPU, as diretivas assembler são comandos direcionados i d ao assembler (exemplo: TASM). As diretivas assembler são executadas em tempo de compilação (montagem). Já as instruções assembly são executadas em tempo de execução. Diretivas assembly podem ser comandos para reservar áreas de memória, definir procedimentos, definir constantes, entre outros. Anderson Moreira Arquitetura de Computadores 15

16 Diretivas TASM Definindo o modelo de memória e segmentos; Definindo variáveis; Definindo procedimentos; Criando macros; Ci Criando estruturas. t Anderson Moreira Arquitetura de Computadores 16

17 Modelos de Memória Modelo Segmento de dados Segmento de Código *TINY UM UM SMALL UM UM MEDIUM UM VÁRIOS COMPACT VÁRIOS UM LARGE VÁRIOS VÁRIOS HUGE VÁRIOS VÁRIOS FLAT UM UM Obs.: No modelo tiny o segmento de dados e o de código compartilham a mesma região de memória. Anderson Moreira Arquitetura de Computadores 17

18 Definindo modelos e segmentos Estrutura básica de um código em assembly.model small.stack.data.code mov ax,@data mov ds,ax ;Diretiva assembler.model definindo o modelo de memória ;Definindo o segmento de pilha ;Definindo segmento de dados ;Definindo segmento de código mov int end ax, 4c00h 21h ;Fim do segmento de código Anderson Moreira Arquitetura de Computadores 18

19 Variáveis.model small.stack.data Numero db 10 Numero1 dw? VetorNumeros.code... db 10 dup(5) ; Definindo um vetor com 10 posições ;de um byte contendo o valor 5 Anderson Moreira Arquitetura de Computadores 19

20 Constantes Declarando uma constante t.model small.stack.data Numero db 10 Numero1 dw? ConstanteCinco t Ci equ 5.code... Anderson Moreira Arquitetura de Computadores 20

21 Procedimentos Declarando uma procedure.model small ;modelo de memória a ser usado.stack ;Define o segmento de pilha.data ;Define segmento de dados.code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax call Func_ 1 mov ax, 4c00h ;AH Função a ser chamada int 21h ;Chama SO para executar função requisitada Func_1 proc push bx mov bx,ax pop p bx ret Func_1 endp end ;instrução que recupera da pilha o endereço para retornar à linha ;seguinte à chamada do procedimento Anderson Moreira Arquitetura de Computadores 21

22 Macros Definindo i uma Macro.data meumacro MACRO <lista de parametros> <corpo do macro (código)> ENDM.code... end A definição da macro pode estar em qualquer parte do seu arquivo de código (dentro do segmento de código ou dados). Afinal, durante a execução, ela não estará armazenada em nenhum dos dois. Será usada apenas durante a montagem do código objeto, sendo colada no segmento de código tantas vezes quanto for chamada. Anderson Moreira Arquitetura de Computadores 22

23 Macros Exemplo:.model small.stack.data num1 db 10 num2 db 20 soma MACRO a, b mov al,a add al,b mov a,al Endm.code.startup soma num1, num2 end.exit Anderson Moreira Arquitetura de Computadores 23

24 Estruturas.data Declarando uma estrutura minhastruc STRUC <corpo da estrutura (definição de variáveis)> ENDS.code... end Anderson Moreira Arquitetura de Computadores 24

25 Estruturas Exemplo:.model small.stack.data date STRUC ENDS day db? month db? year dw? aniversario date <04h,05h,1987h> feriado date <15h,11h,2008h> 11h ;definindo a estrutura ;criando variável do tipo date ;e inicializando-a.code.startup mov al,aniversario.day mov ah,aniversario.month mov bx,aniversario.year.exit end Anderson Moreira Arquitetura de Computadores 25

26 Exercícios 1.Definir uma struc telefone com ddd e o numero do telefone; (para esses exercícios utilizar tabela da aula 10 de diretivas assembly). Anderson Moreira Arquitetura de Computadores 26

27 Exercício 2 1.Definir uma struc datas e definir um vetor deste tipo, contendo 31 posições; 2.Definir uma macro que receba 3 parâmeros (dia, mês, ano), e armazene estes valores na primeira posição do vetor criado; 3.Definir uma macro que receba 4 parâmeros (data, mês, ano e posição de memória), que armazene estes valores na variável data correspondente ao endereço passado; 4.Definir um procedimento, que utilize a macro criada, para inserir no vetor os 31 dias do mês de outubro de Anderson Moreira Arquitetura de Computadores 27

28 Dúvidas Anderson Moreira Arquitetura de Computadores 28

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Organização de Computadores Dr. Jorge Luiz e Silva Cap 8 Subrotinas e Parâmetros Seqüência de instruções repetitivas. Na chamada existe o DESVIO para a rotina No retorno existe

Leia mais

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) 1 - Fazendo uma comparação entre a arquitetura proposta por Von Neumann e a arquitetura de um microcomputador

Leia mais

A linguagem ASSEMBLY

A linguagem ASSEMBLY A linguagem ASSEMBLY Assembly é uma linguagem de baixo nível, chamada freqüentemente de linguagem de montagem É uma linguagem considerada difícil, principalmente porque o programador precisa conhecer a

Leia mais

7. A pilha e subrotinas

7. A pilha e subrotinas Cap7.1 7. A pilha e subrotinas 7.1 Organização da Pilha (stack) Stack: estrutura de dados de uma dimensão organizada em algum trecho (segmento) da Memória; o primeiro item adicionado é o último a ser removido

Leia mais

Intel x AT&T - recapitulação

Intel x AT&T - recapitulação ASSEMBLY aula 2 Intel x AT&T - recapitulação mov mov int mov mov mov mov add lea sub Intel Code eax,1 ebx,0ffh 80h ebx, eax eax,[ecx] eax,[ebx&plus;3] eax,[ebx+20h] eax,[ebx+ecx*2h] eax,[ebx+ecx] eax,[ebx+ecx*4h-20h]

Leia mais

Introdução. Programando em Assembly. Primeiro Exemplo (2) Primeiro Exemplo (1) Linguagem Assembly do 8086/8088

Introdução. Programando em Assembly. Primeiro Exemplo (2) Primeiro Exemplo (1) Linguagem Assembly do 8086/8088 Introdução Programando em Assembly (Aula 16) Linguagem Assembly do 8086/8088 Para construirmos os programas em Assembly, devemos estruturar o fonte da seguinte forma (usando TASM como montador) Define

Leia mais

Informática I. Aula 9. Aula 9-17/05/2006 1

Informática I. Aula 9.  Aula 9-17/05/2006 1 Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Sistemas de Computação

Sistemas de Computação Sistemas de Computação Introdução a programação Assembly Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 5 de novembro de 2009 Haroldo Gambini Santos Sistemas de Computação 1/30 Assembly

Leia mais

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho Linguagem de Montagem e Assembly André Luiz da Costa Carvalho Linguagem de Montagem Todo programa para ser executado precisar ser convertido de linguagem fonte (alto nível) para um programa equivalente

Leia mais

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly Sistemas de Computação para Controle e Automação CIC132 Décima quarta aula: Introdução a programação Assembly Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 5 de novembro de 2009 Haroldo

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

Aula 14 Funcionamento de Processadores (Visão específica)

Aula 14 Funcionamento de Processadores (Visão específica) Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm

Leia mais

8. Instruções de multiplicação e divisão

8. Instruções de multiplicação e divisão Cap8.1 8. Instruções de multiplicação e divisão 8.1 Instruções de multiplicação MUL fonte IMUL fonte MUL (multiply) -> usada com números em representação não-sinalizada IMUL (integer multiply) -> usada

Leia mais

Programando em Assembly

Programando em Assembly Programando em Assembly (Aula 16) Linguagem Assembly do 8086/8088 Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Introdução Para construirmos os programas em Assembly,

Leia mais

Informática I. Aula 9. Aula 9-27/09/2006 1

Informática I. Aula 9.   Aula 9-27/09/2006 1 Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-27/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Informática I. Aula Aula 18-29/10/2007 1

Informática I. Aula Aula 18-29/10/2007 1 Informática I Aula 18 http://www.ic.uff.br/~bianca/informatica1/ Aula 18-29/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript

Leia mais

Assembly x86. Hugo Bessa - hrba Paulo Serra Filho ptvsf

Assembly x86. Hugo Bessa - hrba Paulo Serra Filho ptvsf Assembly x86 Hugo Bessa - hrba Paulo Serra Filho ptvsf Roteiro Assembly Assemblers Sections Registradores Registradores de Segmentos Principais Operações do NASM Funcões e Macros Interrupções Compilando

Leia mais

EEL Microprocessadores. Parâmetros e Variáveis Locais 4/5/2010. Capítulo 7 Livro Ziller. Prof. Raimes Moraes GpqCom EEL UFSC

EEL Microprocessadores. Parâmetros e Variáveis Locais 4/5/2010. Capítulo 7 Livro Ziller. Prof. Raimes Moraes GpqCom EEL UFSC EEL7030 - Microprocessadores Parâmetros e Variáveis Locais Capítulo 7 Livro Ziller Prof. Raimes Moraes GpqCom EEL UFSC Macro-Assembler Subrotina Near MSG1 DB JÁ VOU$' CODIGO SEGMENT INICIO:... AX,DADOS

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores

Leia mais

LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS

LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS Capítulo 15 do livro-texto, págs. 309 a 330 Impressora Scanner Monitor Flop Disk Modem Floppy drive "CPU" HD CD ROM Teclado Mouse Dispositivos

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

FORMATO DO PROGRAMA FONTE

FORMATO DO PROGRAMA FONTE FORMATO DO PROGRAMA FONTE As declarações do programa fonte são constituídas pelos seguintes campos: 1) Campo do Rótulo: o primeiro caractere deve ser alfabético

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Organização de um ambiente computacional Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC

Leia mais

Instruções Assembly x Código de máquina Microprocessador Didático

Instruções Assembly x Código de máquina Microprocessador Didático Instruções Assembly x Código de máquina Microprocessador Didático Professor Afonso Ferreira Miguel (afmiguel@rla01.pucpr.br) Disciplina de Projetos Lógicos e Microprocessadores Curitiba, 1 de junho de

Leia mais

Instruções. Maicon A. Sartin

Instruções. Maicon A. Sartin Instruções Maicon A. Sartin SUMÁRIO Introdução Instruções Formatos de instruções Conjuntos de instruções Execução de instruções Introdução a Linguagem de Montagem Introdução a Linguagem de Montagem Níveis

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Conceitos básicos Linguagem/código

Leia mais

Computador Cleópatra

Computador Cleópatra ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Computador Cleópatra Assembly Alexandre Amory Edson Moreno 2 / 36 Na Aula Anterior Vimos a máquina de estados da Cleo 3 / 36 Arquitetura Cleópatra - Von Neumann

Leia mais

Relatório MC404 - Trabalho 2 - Prof. Rodolfo

Relatório MC404 - Trabalho 2 - Prof. Rodolfo Relatório MC404 - Trabalho 2 - Prof. Rodolfo Gustavo Sverzut Barbieri, Ivens Prates Telles Alves Grupo: Gustavo Sverzut Barbieri RA: 008849 Ivens Prates Telles Alves RA: 008908 1 O Projeto O segundo projeto

Leia mais

Linguagens de Programação Classificação

Linguagens de Programação Classificação Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda

Leia mais

MATA49 Programação de Software Básico

MATA49 Programação de Software Básico MATA49 Programação de Software Básico Leandro Andrade leandrojsadcc.ufba.br PROF. LEANDRO ANDRADE 1 Introdução a linguagem de montagem com Nasm PROF. LEANDRO ANDRADE 2 Sintaxe básica Não é sensível

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto

Leia mais

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk Assembly 8051 Num sistema microprocessado, geralmente, não existe um sistema operacional; O programa desenvolvido pelo programador deve cuidar tanto da lógica do programa, bem como da configuração e acesso

Leia mais

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados CPU CPU Unidade Central de Processamento Função: leitura, escrita e processamento de dados Constituída por: dispositivos que gerem a entrada (leitura) e saída (escrita) de dados; registos (memórias auxiliares)

Leia mais

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Gustavo G. Parma Lista dos comandos assembly que serão utilizados ao longo das práticas. 1 Comandos 1. ADD destino, fonte

Leia mais

SimuS. Gabriel P. Silva. José Antonio Borges. Um Simulador Didático para o Ensino de Arquitetura de Computadores DCC-IM/UFRJ NCE/UFRJ

SimuS. Gabriel P. Silva. José Antonio Borges. Um Simulador Didático para o Ensino de Arquitetura de Computadores DCC-IM/UFRJ NCE/UFRJ SimuS Um Simulador Didático para o Ensino de Arquitetura de Computadores José Antonio Borges NCE/UFRJ Gabriel P. Silva DCC-IM/UFRJ SimuS Simulador de código aberto, grátis expansível Arquitetura simples

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Programação ao nível da máquina

Programação ao nível da máquina Programação ao nível da máquina Ponto de vista do programador O nível Assembly Modelo de programação Assembler (processo de compilação da linguagem C) Que assembly para AC? Introdução ao assembly NASM

Leia mais

Programação de Microcontroladores II

Programação de Microcontroladores II Programação de Microcontroladores II L.M.S. e P.S.C. / 2001 (revisão) E.T.M./2003 (revisão) E.T.M./2011 (revisão) E.T.M./2012 (revisão) RESUMO Nesta experiência, dando continuidade à experiência anterior,

Leia mais

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador. A arquitectura IA32 A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador. Tamanho da palavra Número de registos visíveis Número de operandos Endereçamento

Leia mais

IMPLEMENTAÇÃO DE MAPEAMENTO FINITO (ARRAY S) NO AMBIENTE FURBOL. Acadêmico: Anderson Adriano Orientador: José Roque Voltolini da Silva

IMPLEMENTAÇÃO DE MAPEAMENTO FINITO (ARRAY S) NO AMBIENTE FURBOL. Acadêmico: Anderson Adriano Orientador: José Roque Voltolini da Silva IMPLEMENTAÇÃO DE MAPEAMENTO FINITO (ARRAY S) NO AMBIENTE FURBOL Acadêmico: Anderson Adriano Orientador: José Roque Voltolini da Silva Roteiro da Apresentação motivação; introdução; objetivos; compiladores;

Leia mais

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Linguagem de Montagem do NeanderX

Linguagem de Montagem do NeanderX Universidade Estácio de Sá Curso de Informática Arquitetura de Computadores Linguagem de Montagem do NeanderX 11.5.2006 Geração Programa Executável Linguagens de Programação As linguagens de programação

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do ATmega8 satoutfpredubr Sobre o material Essas transparências foram baseadas no manual

Leia mais

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1 Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento

Leia mais

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET Tópicos: 1 - Modos de endereçamento do 8051 2 - Pilha e instruções de Pilha 3 - Instruções que usam pilha: - instrução CALL - instrução RET 4 - Interrupção 1 - Modos de Endereçamento do 8051 Os modos de

Leia mais

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V.

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V. Introdução a Programação Visão geral O que você precisa Fatores de sucesso O futuro Máquinas O O Computador é uma máquina, m que para realizar algo, precisa que alguém m lhe indique o que fazer V.V.Vilela

Leia mais

ASSEMBLER. Autor: Rodrigo Ferreira Markus Vinicius Home Page

ASSEMBLER. Autor: Rodrigo Ferreira Markus Vinicius Home Page ASSEMBLER Os programas que usamos no nosso dia-a-dia e aqueles que criaremos estarão em algum lugar da área disponível para o usuário, isto é, entre o endereço 00500h e 9ffffh. É difícil precisar exatamente

Leia mais

NEANDERWIN. Algumas características do processador Neander são:

NEANDERWIN. Algumas características do processador Neander são: NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui

Leia mais

UNIVERSIDADE FEDERAL DE ITAJUBÁ MICROPROCESSADORES II

UNIVERSIDADE FEDERAL DE ITAJUBÁ MICROPROCESSADORES II UNIVERSIDDE FEDERL DE ITJUBÁ MICROPROCESSDORES II SÉRIE DE PROGRMS 8 1) Determine a função da sub-rotina a seguir. SubRot PROC Far Repeat: fld st(3) push bp fmulp st(3),st mov bp,sp fld1 sub sp, fadd st(1),st

Leia mais

Programando em Assembly

Programando em Assembly Programando em Assembly precisa-se saber exatamente como interpretar & gerenciar a memória e como usar instruções de baixo nível para o processamento Não existem tipos e variáveis (apenas bytes na memória)

Leia mais

Instruções funcionamento em 16 bits. 8B bytes W Mod 000 r/m

Instruções funcionamento em 16 bits. 8B bytes W Mod 000 r/m Instruções funcionamento em 6 bits 0 a bytes Mov BYTE PTR [BX], 06h 00 0W Mod 000 r/m 0000 00 0 0 0 8A 07 06 3 bytes 00 8B 07 06 00 4 bytes 00 0W Mod 000 r/m 000 00 0000 0000 Mov WORD PTR [BX], 06h Instruções

Leia mais

Conjunto de Instruções (ISA) I

Conjunto de Instruções (ISA) I Conjunto de Instruções (ISA) I José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-16 José Costa (DEI/IST) Conjunto de Instruções

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia

Leia mais

Organização Básica de computadores e linguagem de montagem

Organização Básica de computadores e linguagem de montagem Organização Básica de computadores e linguagem de montagem Prof. Edson Borin 1 o Semestre de 2012 Regras do Curso http://www.ic.unicamp.br/~edson/disciplinas/mc404/2012-1s/ Porque Aprender Linguagem de

Leia mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível. Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,

Leia mais

José Augusto Fabri. Assembly Básico

José Augusto Fabri. Assembly Básico José Augusto Fabri Assembly Básico Aritmética em Modo Hexadecimal Operações da adição e subtração em hexadecimal (comando H) Número negativos: Que número representa o FFFF? Aritmética em Modo Hexadecimal

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Organização de Computadores Dr. Jorge Luiz e Silva Cap 4 Generalizar Problema - G1 Fazer um programa que calcule o complemento para dois de uma posição de memória e coloque o

Leia mais

Introdução à Organização de Computadores. Aula 8

Introdução à Organização de Computadores. Aula 8 SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo

Leia mais

Professor: Dr. Rogério Rodrigues de Vargas.

Professor: Dr. Rogério Rodrigues de Vargas. UNIVERSIDADE ESTADUAL DE SANTA CRUZ DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Bacharelado em Ciência da Computação Software Básico Linguagem de Programação Assembly: Uma introdução no Linux/i386 (AT&T)

Leia mais

II.1 Conceitos Fundamentais. Uma delas é programar o =>

II.1 Conceitos Fundamentais. Uma delas é programar o => II.1 Conceitos Fundamentais II.2 Gerações das Linguagens de Programação II.3 Linguagem de Programação II.4 Sistema Operacional II.5 Tradutores II.5.1 Estrutura de um tradutor II.5.1.1 Análise Léxica II.5.1.3

Leia mais

Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro

Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC Sistemas Digitais 2 o Semestre Projeto CPU Data da apresentação: 26/27 de outubro

Leia mais

OTermo Assembly significa montagem, ou seja, linguagem

OTermo Assembly significa montagem, ou seja, linguagem Linguagem Assembly Roteiro N o 01 Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia - DEE Curso de Bacharelado em Engenharia Elétrica - Disciplina de

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Organização de Computadoresres Dr. Jorge Luiz e Silva Cap 3 Estrutura da Unidade de Processamento 8086/8088 14 Registradores.PC Contador de programa.sp Ponteiro de Pilha.SP Índice

Leia mais

Computadores de Programação (DCC/UFRJ)

Computadores de Programação (DCC/UFRJ) Computadores de Programação (DCC/UFRJ) Aula 14: 04 de junho de 2013 1 2 ...antigamente.. No início da Computação, todos os programas eram escritos em linguagem de montagem Complexidade, propenso a erros,

Leia mais

Execução detalhada de instruções

Execução detalhada de instruções LEI Sistemas de Computação 2014/15 Execução detalhada de instruções TPC3 + Guião Teatral Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------

Leia mais

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Arquitetura de Computadores Conceitos Fundamentais Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Um Computador Muito Simples CPU UC ULA A B PC IR FLAGS SP CS DS SS... 0A 09

Leia mais

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it? Arquitetura do SET de instruções Instruction SET CISC vs RISC What s assembly as to do with it? Low-level - high-level programming language Assambley CODE section.text global _start ;must be declared for

Leia mais

LABORATÓRIO DE LINGUAGEM DE MONTAGEM. MACROS e GERENCIAMENTO DE MEMÓRIA

LABORATÓRIO DE LINGUAGEM DE MONTAGEM. MACROS e GERENCIAMENTO DE MEMÓRIA LABORATÓRIO DE LINGUAGEM DE MONTAGEM MACRO: MACROS e GERENCIAMENTO DE MEMÓRIA Capítulos 13 e 14 do livro-texto, págs. 257 a 308 é um bloco de texto que recebe um nome especial consiste de instruções, diretivas,

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

Execução detalhada de instruções

Execução detalhada de instruções MIEI Sistemas de Computação 2015/16 Execução detalhada de instruções TPC4 + Guião Teatral Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------

Leia mais

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários

Leia mais

Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são:

Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são: Linguagem Assembly Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são: INSTRUÇÕES DE TRANSFERÊNCIA DE DADOS - Movem dados entre Registradores, Registradores e Memória e Valores Fixos para

Leia mais

Computador Cleópatra

Computador Cleópatra ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Computador Cleópatra Interface Hardware e Software Alexandre Amory Edson Moreno 2 / 9 Nas Aulas Anteriores Vimos como descrever e implementar circuitos combinacionais

Leia mais

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador: Introdução aos Sistemas de Computação (4) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Organização de Computadores Dr. Jorge Luiz e Silva Cap 5 Operações Lógicas e de Deslocamento And Or Xor Not Test Fazer um programa que mascare 8 bits mais significativos de um

Leia mais

Revisão: Modo Real, pt 2 Interrupções

Revisão: Modo Real, pt 2 Interrupções Revisão: Modo Real, pt 2 Interrupções Interrupção Evento (interno ou externo) que faz o processador parar o programa em execução para tratar a interrupção Ex: ler o teclado, comunicação com os dispositivos

Leia mais

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

Arquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas

Arquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas Arquitectura de Computadores 00/00 º Semestre º Teste (A) - 0/0/00 Número: Nome: INSTRUÇÕES: - A duração da prova é de, horas. - Responda apenas nesta Folha de Respostas ; nada mais será recebido. - Identifique

Leia mais

EEL Microprocessadores

EEL Microprocessadores EEL7030 - Microprocessadores 8086 Primeiro (1980) da família do Pentium (80x86). Componente com arquitetura similar (8088) utilizado no primeiro IBM PC. Cada descendente executa código dos antepassados

Leia mais

Exercícios Suplementares de Programação Assembly da Cleópatra

Exercícios Suplementares de Programação Assembly da Cleópatra Exercícios Suplementares de Programação Assembly da Cleópatra 1. Listas encadeadas são estruturas de dados importantíssimas em aplicações onde o volume de dados a manipular não está definido antes da execução,

Leia mais

Departamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I.

Departamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I. UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Aula 2 Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno O que

Leia mais

Laboratório de Sistemas Processadores e Periféricos

Laboratório de Sistemas Processadores e Periféricos Laboratório de Sistemas Processadores e Periféricos Sistema de Interrupções do 8086 Prática 11 Gustavo G. Parma Assunto: sistema de interrupcões do 8086. Interrupções do DOS Objetivos: Apresentação do

Leia mais

ção de Computadores I

ção de Computadores I Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores I Aula 2 1. Projeto da Arquitetura

Leia mais

Procedimentos. Sistemas de Computação

Procedimentos. Sistemas de Computação Procedimentos Chamada de Procedimentos Utilização de procedimentos: Facilitar entendimento do programa Reutilização de código Passos necessários para execução de um procedimento: Os parâmetros a serem

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 31, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2 Introdução:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Visão geral de montadores, ligadores e carregadores 2 a edição Revisão: Fev/2003 Sistemas Operacionais Montadores, ligadores e carregadores Anexo A Como um programa é construído até ser executado? Montadores

Leia mais

EXEMPLO DE ARQUITETURAS REAIS INTEL 8086 AULA 07 Arquitetura de Computadores Gil Eduardo de Andrade

EXEMPLO DE ARQUITETURAS REAIS INTEL 8086 AULA 07 Arquitetura de Computadores Gil Eduardo de Andrade EXEMPLO DE ARQUITETURAS REAIS INTEL 8086 AULA 07 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores

Leia mais

EL68E Sistemas Embarcados Programação Assembly Prof. Douglas Renaux (Out/2014)

EL68E Sistemas Embarcados Programação Assembly Prof. Douglas Renaux (Out/2014) EL68E Sistemas Embarcados Programação Assembly Prof Douglas Renaux (Out/2014) Os dois exercícios a seguir foram questões de prova em semestres anteriores 1) Implemente em assembly (Cortex-M) a função:

Leia mais

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

Introdução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem

Introdução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem Nível da Linguagem de Montagem (Aula 15) Linguagem de Montagem Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Introdução Tradutores Programas que convertem um programa

Leia mais

Linguagem de Montagem Assembly

Linguagem de Montagem Assembly Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos - Parte 1 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46 Um aspecto importante no estudo sobre sistemas operacionais é o gerenciamento de processos.

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I Sistemas Operacionais I Revisão de conceitos Sistemas Operacionais I Dionisio Gava Junior Componentes básicos Componentes Básicos da Tecnologia da Informação Hardware CPU, Memória e Periféricos de E/S.

Leia mais