Computador Cleópatra

Documentos relacionados
Computador Cleópatra

Computador Cleópatra

Arquiteturas Von Neumann e Harvard

Circuitos Seqüenciais

ção de Computadores I

Neander - características

Exercícios Referentes à Prova P2

ção de Computadores I

Esta pseudomáquina foi criada em homenagem ao homem de Neandertal, o antecessor do homo sapiens.

A Arquitetura: conjunto de instruções

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

Linguagem de Montagem do NeanderX

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

Prof. Leonardo Augusto Casillo

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

Disciplina de. Organização de Computadores Digitais

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

Disciplina de Organização de Computadores I

Solução Lista de Exercícios Processadores

Disciplina de Organização de Computadores I

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

Organização de Computadores

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

Estrutura Básica de um Computador

Circuitos Combinacionais

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Sistemas de Computação. Seção Notas. Endereçamento de Memória. Notas. Oitava Aula. Haroldo Gambini Santos. 3 de setembro de 2009.

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

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

NEANDERWIN - Resumo operacional

Prof. Gustavo Oliveira Cavalcanti

O Computador Neander Neander - Computador Hipotético Didático

Unidade de Controle. UC - Introdução

Conjunto de Instruções

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

Sistemas Processadores e Periféricos Aula 2 - Revisão

Organização e Arquitetura de Computadores INTRODUÇÃO

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão

SSC0112 Organização de Computadores Digitais I

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

X Y Z A B C D

SSC510 Arquitetura de Computadores 1ª AULA

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

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

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Organização e Projeto de Computadores

Instruções. Maicon A. Sartin

Sistemas de Computação. Instruções de Linguagem de Máquina

Arquitectura de Computadores MEEC (2014/15 2º Sem.)

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

III.2 - Princípios de Arquitetura

Conjunto de Instruções e Modelos de Arquiteturas

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Prof. Adilson Gonzaga

CONJUNTO DE INSTRUÇÕES

Organização e Arquitetura de Computadores I

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Arquitetura: características gerais

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

7. A pilha e subrotinas

Disciplina de Arquitetura de Computadores

Arquitetura de Um Processador I

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

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

SSC0114 Arquitetura de Computadores

Estrutura de um Computador

Conjunto de Instruções (ISA) I

Arquitetura e Organização de Computadores

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

Infraestrutura de Hardware. Funcionamento de um Computador

PSI3441 Arquitetura de Sistemas Embarcados

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

Arquitetura de Computadores. Prof. João Bosco Jr.

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

ORGANIZAÇÃO DE COMPUTADORES

Descrição de uma Unidade Processadora Discreta Microprogramável

Primeiro Trabalho de POO Emulador para o Processador Winter

Infraestrutura de Hardware. Instruindo um Computador

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Arquitetura e Organização de Computadores

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Arquitetura e Organização de Computadores

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Introdução à Computação MAC0110

Microprocessadores. Arquitectura Geral de Microprocessador

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

PSI3441 Arquitetura de Sistemas Embarcados

ELE Microprocessadores I

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Organização de Computadores (revisão) André Tavares da Silva

Transcrição:

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 CPU ck µinst BLOCO DE CONTROLE n z c v IR PROGRAMA ARMAZENADO - dados - instruções ck reset ce rw µinst n z c v IR ck reset BLOCO DE DADOS dados endereços MEMÓRIA dados e programa

4 / 36 Bloco de Dados µinst n z c v IR DATAMEM escreve na memória CE RW ck reset Bloco de Dados ADDRESS lê da memória 0 mux 1 sel MAR MDR IR BUS_B BUS_A CE RW PC AC RS w Codificação de escrita ULA u lnz lcv r Codificação de leitura NZCV

5 / 36 Bloco de Controle CPU ck BLOCO DE CONTROLE µinst n z c v IR ck reset ce rw µinst ck reset n z c v IR BLOCO DE DADOS dados endereços MEMÓRIA dados e programa

6 / 36 Diagrama de Estados da Cleo

7 / 36 Modo de Endereçamento Imediato Operando é o próprio dado Usado para representar constantes Direto Ex.: Número 45 do trecho de código C Operando é endereço do dado Usado para representar variáveis Ex. Variável entrada do trecho de código C int valor; int *p = &valor; int entrada = 8; *p = entrada + 45; Indireto Operando é endereço do endereço do dado Usado para representar ponteiros Ex. Ponteiro *p (que aponta para valor) do trecho de código C

8 / 36 Descrição das Instruções Mnemônico NOT STA oper LDA oper ADD oper OR oper AND oper JMP oper JC oper JV oper JN oper JZ oper JSR oper RTS HLT Operação Complementa (inverte) todos os bits de AC. Armazena AC na memória dada por oper. Carrega AC com conteúdos de memória da posição dada por oper. Adiciona AC ao conteúdo da memória dada por oper. Realiza OU lógico do AC com conteúdo da memória dada por oper. Realiza E lógico do AC com conteúdo da memória dada por oper. PC recebe dado especificado por oper (desvio incondicional). Se C=1, então PC recebe valor dado por oper (desvio condicional). Se V=1, então PC recebe valor dado por oper (desvio condicional). Se N=1 então PC recebe valor dado por oper (desvio condicional). Se Z=1, então PC recebe valor dado por oper (desvio condicional). RS recebe conteúdo de PC e PC recebe dado de oper (subrotina). PC recebe conteúdos de RS (retorno de subrotina). Suspende processo de busca e execução de instruções.

9 / 36 Meu Primeiro Prog Assembly Linguagem alto nível (e.g. C, JAVA) *C = A+3 Assembly da Cleo LDA A ADD #3 STA C,I

10 / 36 Na Aula de Hoje Exemplos dos outros modos de endereçamento Exemplo de IF Exemplo de LAÇO Exemplo de programa completo

11 / 36 Estrutura de um Programa Assembly Completo CÓDIGO Programa Dados

12 / 36 Estrutura de um Programa Assembly Completo CÓDIGO Programa início do corpo do programa (0) corpo do programa Dados início da área de dados (90H) variáveis

13 / 36 Estrutura de um Programa Assembly Completo CÓDIGO Programa MEMÓRIA Montador Dados

14 / 36 Estrutura de um Programa Assembly Completo.CODE ORG #00H início do código na posição 0 de memória....endcode: fim da área de código.data ORG #90H início das variáveis na posição 90H de memória END1 : DB #30H inicialização de variáveis END2 : DB #END4 inicialização de variáveis END3 : DB #00H inicialização de variáveis END4 : DB #5BH inicialização de variáveis.enddata fim da área de dados

15 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC A: db #04h B: db #01h C: db #00h

16 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC 01h A: db #04h B: db #01h C: db #00h

17 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC FEh A: db #04h B: db #01h C: db #00h

18 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC FFh A: db #04h B: db #01h C: db #00h

19 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC 03h A: db #04h B: db #01h C: db #00h

20 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC 03h A: db #04h B: db #01h C: db #03h

21 / 36 Programa Subtração Linguagem de alto nível C = A - B ASSEMBLY DA CLEÓPATRA lda B add #01h add A sta C AC 03h A: db #04h B: db #01h C: db #03h

22 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y A: db #33h B: db #91h Y: db #00h Representação gráfica Tabela Verdade

23 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y A: db #33h B: db #91h Y: db #00h Y=A B Y=33h 91h Y=00110011 10010001 Y=?????

24 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y A: db #33h B: db #91h Y: db #00h Y=A B Y=33h 91h Y=00110011 10010001 Y= 10100010 = A2h

25 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y!A A: db #33h B: db #91h Y: db #00h

26 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y!A Y=!AB A: db #33h B: db #91h Y: db #00h

27 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y!A!B Y=!AB A: db #33h B: db #91h Y: db #00h

28 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y!A!B Y=!AB AC=A!B A: db #33h B: db #91h Y: db #00h

29 / 36 Programa XOR lda A and B sta Y lda B!A!B Y=!AB AC=A!B AC=AC+Y and A or Y sta Y A: db #33h B: db #91h Y: db #00h

30 / 36 Programa XOR lda A and B sta Y lda B and A or Y sta Y!A!B Y=!AB AC=A!B AC=AC+Y Y = AC A: db #33h B: db #91h Y: db #00h Y=A B Y=00110011 10010001 Y=10100010 = A2h

31 / 36 IF-THEN-ELSE em Assembly lda in jz jp_then lda #01h jmp end_if jp_then: lda #02h end_if: sta s -O que faz esse programa? -Qual é o valor de s ao final do programa? in: db #01h s: db #00h

32 / 36 IF-THEN-ELSE em Assembly lda in jz jp_then lda #01h jmp end_if jp_then: lda #02h end_if: sta s if in == 0 then s = 2 else s = 1 in: db #01h s: db #00h

33 / 36 LAÇO em Assembly lda cnt inicio_laco: jz fim_laco lda s add s sta s lda cnt add #0ffh sta cnt jmp inicio_laco fim_laco: -O que faz esse programa? -Qual é o valor de s ao final do programa? cnt: db #05h s: db #01h

34 / 36 LAÇO em Assembly lda cnt inicio_laco: jz fim_laco lda s add s sta s lda cnt add #0ffh sta cnt jmp inicio_laco fim_laco: int cnt = 5; int s = 1; while(cnt!=0){ s = s + s cnt--; } s == 32 cnt: db #05h s: db #01h

35 / 36 Exercício em Sala de Aula Traduza os seguinte trechos de código C em Assembly (Cleo): 1. if (a<b) then s--; else s++; 2. for(i=0;i<5;i++) s = s + 3; 3. for(i=0;i<=5;i++) s = s + 3; 4. for(i=5;i>=0;i--) s = s + 3;

36 / 36 Resumo Descrever em Assembly estruturas tais como If-then-else, laço, programa completo O trabalho sobre assembly terá exercícios semelhantes aos desta aula!!!