Aula 13 Assembly 2 Para novatos

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

Download "Aula 13 Assembly 2 Para novatos"

Transcrição

1 Aula 13 Assembly 2 Para novatos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br 1

2 O que fazer com essa apresentação 2

3 Escrevendo um simples programa Começando com o básico, o aluno se familiariza com a linguagem; Assembly, precisa de dedicação e esforço de lógica; Não compare Assembly com outras linguagens de programação, como C e Java (essa então nem tente associar!!!) 3

4 Introdução Um programa contém instruções que serão usadas pelo processador do computador; As instruções são chamadas de código do programa; O processador executa as instruções de código, uma por uma - é por isso que o programa é chamado de executável; Quando o programa for carregado, o SO dá ao processador o endereço a partir do código onde a execução deve começar; Daquele ponto em diante, cabe ao programa para desviar a execução para o local correto em seu código. 4

5 Introdução O que o código realmente faz? Uma coisa que faz é mover números de e para os registradores dentro do processador; Existem sete destes para uso geral; Cada registro tem 32 bits de dados; Chamado um dword (literalmente uma palavra dupla). Cada bit é ligado ou desligado (um ou zero) a qualquer momento; Este é um número binário. Em 32 bits, se todos os bits estejam acionados, o número é D 5

6 Introdução Existem também várias instruções aritméticas que podem ser realizadas pelo processador (ULA); Outra coisa que o código faz é passar os números dos registradores da memória e da memória para os registradores, ou colocar números na memória stack (pilha). 6

7 Introdução A pilha é como um prato quente. Coloca um dword na pilha usando a instrução PUSH e remove o último dword colocado na pilha usando uma instrução POP; A memória RAM (memória de acesso aleatório) é a de referência na pilha, dentro do computador; A pilha é reservado pelo sistema quando o programa carrega. Dependendo de suas instruções de dados, outra memória é reservada pelo sistema quando o programa carrega. Esta memória é chamada de dados de memória, terá de ser solicitado pelo programa em tempo de execução. 7

8 E no sistema Windows? No SO Windows uma das coisas mais importantes que as instruções de código fazem é chamar uma função de janela, ou seja, para desviar a execução para essa função; As funções do Windows são chamadas APIs (Application Programmer's Interface). A maioria das instruções de código seja utilizado para se preparar para essas chamadas e lidar com o resultado das chamadas; São estas as chamadas para APIs que darão aos programas a funcionalidade Janelas, desta forma oferece acesso a uma vasta gama de processos que resultam em interação com o usuário; 8

9 O processo de Construção (build) GoAsm - assembler. Este programa tem a sua fonte de script e converte-o em um arquivo objeto. Tradicionalmente, a extensão seria. Asm. A fonte de script contém as linhas de código-fonte que contém o código e as instruções de dados que foram gravados para o programa. O arquivo objeto, pode ser lido pelo linker e que é utilizado para criar o executável final. Gorc - compilador. Este programa tem o seu script de recursos e converte-lo em um arquivo.res. O script de recursos é outro arquivo de texto simples, mas que contém instruções para estabelecer os controles do Windows - menus, diálogos, ícones, bitmaps e stringtables. Tradicionalmente, teria a extensão.rc. O arquivo res está codificado, e é lido pelo linker. GoLink - vinculador. Este programa tem os arquivos de um ou mais objetos e um res e cria o executável final. GoBug - depurador. Com esta ferramenta, o programa executar cada instrução por vez e ver como cada instrução afeta os registradores e as áreas de memória. 9

10 O processo de construção pode ser resumido.asm.obj.exe.rc.res 10

11 Criando um programa em branco 11

12 Qual a funcionalidade disso? A funcionalidade é criar um programa que carrega, executa e termina sem fazer nada; Isto é para demonstrar o processo de construção e para explicar mais algumas coisas. 12

13 Passo 1 Chame o RadASM Crie um novo projeto (Arquivo Projeto Novo) Será executado o assistente de criação; Escolha conforme figura: Assemblador GoASM Tipo de projeto Console Nome do projeto nada Clique no botão PROXIMO 13

14 Passo 2 o o o o Escolha na tela seguinte o tipo NONE; Clique no botão PROXIMO; Em criação de Arquivos, deixe apenas as opções ASM e BAK habilitadas; Na próxima tela clique no botão FINAL. 14

15 Passo 3 Clique na aba de Projetos, escolha a pasta Assembly e duplo clique no arquivo nada.asm Note que o RadASM já ajuda a organizar o seu trabalho, deixando cada um dos arquivos em uma pasta diferente. 15

16 Passo 4 Digite o seguinte código Este é o programa..code diz ao assembler que o que se segue são as instruções de código; start: é uma etiqueta de código (label). Ele também informa o vinculador que este é o lugar onde a execução do programa deve começar; ret é uma instrução do processador mnemônica, que informa ao processador para retornar para o chamador do código (que neste caso vai ser o próprio Windows. 16

17 Passo 5 Escolha o menu Montar Assemble Vai aparecer algumas mensagens como a seguir: GoAsm.Exe Version Copyright Jeremy Gordon 2001/9 - JG@JGnet.co.uk Output file: nada.obj Make finished. Total compile time 16 ms Depois escolha o mesmo menu Montar Link C:\RadAsm\GoAsm\BIN\GoLink.EXE /console "nada.obj" ï» GoLink.Exe Version Copyright Jeremy Gordon 2002/9 - JG@JGnet.co.uk Output file: nada.exe Format: win32 size: 1,024 bytes Make finished. Total compile time ms Observe que a própria console mostra o comando executado, que pode ser feita diretamente pelo CMD do Windows. 17

18 Passo 6 Após esse processo vamos executar nosso programa. Pode ser pelo menu Montar e após escolher Run, ou escolher Ferramentas Goto Dos (essa segunda opção é mais apropriada para a situação); Então digite nada, na linha de comando. O que irá acontecer? 18

19 Conclusão Note que na verdade não acontece o que o nome diz nada ; O prompt do DOS irá apenas mover para baixo uma linha; Mas o Windows estava muito feliz com este programa - parabéns você fez o seu primeiro programa Assembler - Windows! 19

20 Criando um programa Ola Mundo 20

21 Passo 1 Os passos iniciais são semelhantes ao programa anterior; A diferença é que o nome do projeto será tads; Digite o seguinte código no arquivo tads.asm: 21

22 Passo 2 A diferença é que na execução do Link (vinculador), execute a opção Goto Dos e execute: C:\RadAsm\GoAsm\BIN\GoLink.EXE /console tads.obj kernel32.dll Aqui, tem incluído a opção kernel32.dll na linha de comando do GoLink; Isto diz ao vinculador GoLink,olhar para o arquivo kernel32.dll do sistema Windows quando liga o arquivo para qualquer incógnitas, neste caso, o Windows APIs GetStdHandle e WriteFile e que são necessárias para a execução do programa. 22

23 Dissecando o programa Vamos por cada parte do programa: 23

24 Parte 1.data PALAVRA dd 0.data" diz ao assembler que uma instrução de dados ou instruções seguem. Também pode digitar DATA SECTION; PALAVRA" é um rótulo de dados que é um nome que indica um lugar especial nos dados. dd" cria um dword (4 bytes) de dados (literalmente, "declare dword"). "0" inicializa o dword para um valor, neste caso, zero. 24

25 Parte 2.code start: push -11 CALL GetStdHandle.code e start que visto antes. Sendo que posso digitar CODE SECTION; push coloca um valor na pilha. O valor neste caso é -11 (expresso como um número decimal ordinário). Isso é empurrado para a pilha pronta para enviar para a chamada API como um parâmetro. "CALL" transfere a execução de um processo, neste caso, a API do Windows é GetStdHandle. Esta API tem um parâmetro e retorna um identificador no registrador EAX para se adequarem. Aqui ele trata com o valor -11 que é o identificador de saída padrão para o console. O console é a interface com o usuário, que neste caso será a janela de MS-DOS (também conhecido como "comando" ou prompt. 25

26 Parte 3 push push push CALL 0,addr PALAVRA 11,'ola mundo' eax WriteFile Aqui o SO empurra os parâmetros prontos para a chamada à API do Windows WriteFile; Esta API escreve para o identificador passado para ela no último parâmetro (ainda detidas no registrador EAX); Ela escreve a string que é de 11 caracteres. Também passa o endereço de PALAVRA que era o dado DWORD feita anteriormente; Isso é necessário porque WriteFile irá reportar em dword quantos caracteres ele realmente escreve. 26

27 Parte 4 mov ret eax,0 Aqui passa o valor 0 no registrador EAX (para indicar um retorno bem-sucedido) e, em seguida, use RET para retornar ao sistema (fechando o programa); Libera memória. 27

28 Conhecendo o seu programa O que compõe um programa em assembler 28

29 O que é um programa sem recursos? Arquivo.asm Arquivo.obj Arquivo.exe ou.dll 29

30 O que é um programa com recursos? Arquivo.asm Arquivo.obj Arquivo.exe ou.dll Arquivo.rc Arquivo.res 30

31 Recursos Os recursos (resources) são mantidos separadamente para facilitar a programação; São principalmente o conteúdo de menus e janelas, mas também coisas como bitmaps, cursores e ícones; Normalmente, um programa do tipo console não inclui recursos, uma vez que não faz uso de recursos gráficos do SO; Um programa que usa o Windows GUI (Graphics User Interface) provavelmente irá utilizar os recursos (mas não precisa). 31

32 Arquivo.asm Este é um arquivo que pode ser criado e editado usando um editor de texto comum, como vim ou context; Se usar o Notepad ou Wordpad deve certificar de salvar o arquivo em um formato que não acrescenta qualquer controle ou a formatação de caracteres, diferente da habitual; Isso é válido porque as ferramentas de desenvolvimento só olha para o texto. Se não usar uma extensão para o arquivo, o editor pode dar um nome. Txt ; 32

33 Arquivo.asm É tradicional entre os programadores para dar a sua fonte scripts uma extensão que corresponde a língua em que o código-fonte é escrito; Por exemplo, você pode ter um montador arquivo chamado meuprog.asm". Da mesma forma que normalmente irá encontrar o código-fonte escritos na "linguagem C", com a extensão. c ou. cpp para C++,.pas para pascal e assim por diante. No entanto, não há mágica em essas extensões. O Assembler aceita arquivos de qualquer extensão. O arquivo.asm contém as instruções para o processador de palavras e números. Estes são executados pelo processador quando o programa é executado. Portanto, que o asm, contém o código-fonte ou o script de fonte ; Quando está pronto para fazer o programa, o GoASM converte arquivos.asm para os arquivos.obj. 33

34 Arquivo.obj Este é um arquivo feito pelo Assembler de um arquivo.asm; O Assembler tem as instruções no arquivo ASM. Que estão em palavras e números e os converte em formato de objeto COFF que é um formato que o vinculador espera; O Assembler concatena todo o seu código e as instruções de dados em código-fonte e coloca-os em código e seções de dados no arquivo.obj; A seção de código contém as instruções do processador real (opcodes) que o processador executa quando o programa é executado. 34

35 Arquivo.obj A seção de dados contém informações que serão mantidos na memória enquanto o programa é executado; Não pode realmente executar um arquivo.obj como um programa, porque não está no formato do programa final esperado pelo SO (o formato PE); Passa o arquivo.obj para o vinculador, quando está pronto para fazer o programa; Às vezes o arquivo.obj é chamado um arquivo binário ou bin. Isso ocorre porque o arquivo agora contem apenas números; Mas se olhar para dentro de um arquivo.obj verá as seqüências de caracteres que estavam no script de origem. 35

36 Arquivo.rc Este é um outro arquivo de texto que faz usando um editor de texto; Este arquivo fornecer as instruções em palavras e números, que o SO usa para fazer os recursos (principalmente menus, diálogos e stringtables) em seu programa quando ele é executado; Também pode usar o arquivo.rc para nomear os arquivos que devem ser carregados no.res quando o compilador de recursos é executado (como, por exemplo, os ícones bitmaps e cursores); O arquivo.rc pode ser descrito como contendo material de origem; Para criar esse arquivo se utiliza o compilador de recursos GoRC. 36

37 Arquivo.res Este é um arquivo feito pelo compilador de recursos a partir de um arquivo.rc; O recurso formado pelo compilador e as instruções do arquivo.rc que estão em palavras e números e os converte em uma forma pronta para a inserção na seção de recursos de um arquivo.exe; Passa o.res do vinculador (linker) quando está pronto para fazer o programa. 37

38 Arquivo.exe Este é o arquivo executável final que pode ser executado como um programa Windows; É no formato Portable Executable (PE); O arquivo é feito pelo vinculador (linker), que tem um ou mais arquivos.obj e um.res e combina-os em um arquivo.exe; O formato de arquivo PE exige também um cabeçalho com informações sobre o arquivo; O Linker fornece essa informação. Para tornar os programas Windows, precisará usar um vinculador capaz de fazer os arquivos PE, por exemplo GoLink. 38

39 Arquivo.dll Este arquivo contém os dados e outras funções que o.exe pode usar quando estiver em funcionamento; Na maioria das vezes não vai precisar usar um arquivo.dll em tudo. No entanto, é útil se você tem muitas funções que necessitam ser chamadas por mais de um.exe; Em vez de duplicar o código nos dois.exe pode tê-lo apenas uma vez em um arquivo.dll; O Windows usa extensivamente para fornecer acesso às APIs para aplicações do SO. O linux utiliza em geral arquivos.lib; Dê uma olhada na pasta do sistema \Windows no seu computador - isto é onde o Windows Dlls são normalmente mantidas, ou no diretório /lib no Linux. 39

40 Sintaxe para utilização de.dll Em que a parte designada por comando pode ser: /debug coff Myprog.obj Myprog.res Kernel32.dll As linhas informa o linker a procurar no arquivo kernel32.dll pela API para identificar chamadas feitas no programa; Esta é uma parte necessária do processo de vinculação. É bem possível que o programa faz chamadas para APIs que estão em Dlls do sistema. 40

41 Por que um código em nível tão básico? 41

42 Porque? Existem várias razões, entre elas: Código enxuto: Codificando em baixo nível, reduz o código para o mínimo exigido; Velocidade: Menor tamanho de código significa que os programas carregam mais rápido e executam mais rápido; Controle: Desenvolvedor está no controle do código, não o compilador. Isto significa que sabe exatamente o que o processador está fazendo enquanto se move através de seu código. Isto torna mais fácil para acertar as coisas e para encontrar erros; Satisfação: Você mesmo está escrevendo o programa. Não está sendo escrito em parte pelo compilador. 42

43 Os componentes de um código ASM Basicamente os códigos podem ser definidos nas seguintes categorias: Instruções de Registradores; Instruções de Pilha; Instruções de Execução; Instruções de Memória; Instruções de Sinais; Declarações de Memória; Instruções do Sistema Operacional. 43

44 Instruções de Registradores Isto é onde o Desenvolvedor diz ao processador para mover dados ou executar cálculos utilizando os seus próprios registros de 32 bits; Existem 6 registros para uso geral, chamado EAX, EBX, ECX, EDX, ESI e EDI (não são novidades!). Exemplos dessas instruções são: MOV ESI,EBX ;move conteúdo do registrador EBX para ESI ADD EAX,EDI ;adiciona o conteúdo do registrador EDI para EAX BT ECX,0 ;testa o bit 0 do registrador ECX CMP EDX,450 ;compara conteúdo de EDX com 450 DIV ECX ;divide EDX:EAX (long integer) por ECX MUL ECX ;multiplica EAX por ECX resultado em EDX:EAX (long ;integer) SHL EDX,4 ;shift EDX bits para esquerda em 4 bits (multiplica por ;16) TEST EAX,8 ;testa o bit 3 do registrador EAX 44

45 Instruções de Pilha A pilha é uma área de memória fornecido pelo SO para cada programa em execução usar como uma área de armazenamento temporário. Exemplos dessas instruções: PUSH EAX POP EDX PUSH 1000h MOV EBP,ESP SUB ESP,30h MOV D[EBP-20h],500h ;coloca o conteúdo do registrador EAX para pilha ;tira a última coisa colcoada na pilha para EDX ;coloca o valor 1000 em hexa na pilha ;mantem o valor no ponteiro da pilha no registrador ;EBP ;movo o ponteiro da pilha para fazer uma área para ;dados locais ;insere o valor 500 em hexa em uma área de dados local 45

46 Instruções de Execução Desvia o processador para executar código de um ponto a outro de acordo com a próxima linha dentro do código-fonte. Exemplos: CALL MAKEWINDOW CALL EAX RET JZ 4 JC >.fin JMP MAKEWINDOW LOOP 2 ;executa o procedimento e depois retorna ;executa o endereço de código de EAX e depois ;retorna ;termina um procedimento retornanco para o chamador ;continua a execução do label 4: se o resultado for ;zero ;continua a execução de.fin se a flag carry estiver ;habiltada (set) ;continua a execução do procedimento identificado ;decrementa ECX e pula para label 2: a menos que ECX=0 46

47 Instruções de Memória Lêem ou escrevem em áreas da memória que não seja a pilha. Normalmente, essa memória pode estar na seção de dados executável (.data) ou ele próprio poderia ser memória alocada pelo SO em tempo de execução. Exemplos: ADD EAX,[ESI] MOV EAX,[MYDATA] SUB D[MYDATA+64],10h CMP B[MYDATA+EDX*4],2 LODSB STOSD ;adiciona em EAX conteúdo de memória apontado por ;ESI ;move para EAX conteúdo de memória do label MYDATA ;subtrai 10h da dword de MYDATA mais 64 bytes ;compara um byte com 2 em parte do array MYDATA ;carrega byte da memória apontada por ESI em AL ;carrega o conteúdo de EAX dentro da memória ;apontada por EDI 47

48 Instruções de Sinais (flag) As principais flags que iremos usar são Z (zero flag), C (carry flag), S (flag de sinal) e D (flag de direção). A maioria das instruções altera as flags automaticamente para dar o resultado da instrução. Existem instruções específicas que podemos usar para mudar as flags do processador manualmente: STC CLC STD CLD ;inicializa a carry flag ;limpa o conteúdo carry flag ;inicializa a flag de direção ;limpa a flag de direção 48

49 Declarações de Memória O SO reserva uma memória para o executável quando ele é executado. As declarações são feitas para reservar memória na seção de dados (.data) ou seção constante (.cons), se os dados devem ser inicializados, isto é, definida como um valor. Se os dados não precisa ser inicializado a área de dados pode ser reservado na seção de dados não inicializados. Isso não ocupa nenhum espaço do arquivo EXE. Ao invés de espaço em memória é alocado para este tipo de dados quando inicia o primeiro executável. Exemplos de como a memória é declarada: 49

50 Declarações de Memória DB 4 MYDATA DB 4 MYSTRUCT DD 16 DUP 0 BUFFER DB 1024 DUP? ;declara um byte e seta com o ;valor inicial de 4 ;a byte com valor inicial de ;4 com label MYDATA ;16 dwords todos setados com ;zero chamado MYSTRUCT ;1024 bytes chamado BUFFER em ;área de dados não definida 50

51 Instruções do SO Possibilita ao programadores assembler acesso a um vasta gama de APIs (Applications Programming Interface). Este é o código dentro do sistema operacional. Exemplos: PUSH 12h ;coloca o valor 12 hexa na pilha para chamar ;API CALL GetKeyState ;fala ao Windows para buscar o estado da tecla ;do teclado em EAX TEST EAX, h ;testa se a tecla <ALT> é pressionada (bit 31 ;set) JZ >L22 ;caso não, pula para frente de L22 51

52 Outras informações Instruções para dizer ao Assembler em qual seção colocar o código fonte. O Assembler marca a seção de código como seções de leitura, executável e dados, definidos e indefinidos como leitura / gravação: CODE SECTION DATA SECTION CONST SECTION ;todo código nessa seção será marcada como ;read-only e executavél (.code) ; todo código nessa seção será marcada como ;atributo de read/write mas não atributos ;de código (.code) ; todo código nessa seção será marcada como ;read 52

53 Dúvidas 53

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

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

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

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

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

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

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

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

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

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

No Windows há basicamente dois tipos de programas de usuário:

No Windows há basicamente dois tipos de programas de usuário: Introdução O que vem a ser um programa em C? Você talvez já tenha ouvido falar que um compilador é um programa ou ferramenta que transforma um programa fonte escrito em uma linguagem de programação de

Leia mais

Porque usar um montador? Formato de uma linha de código fonte:

Porque usar um montador? Formato de uma linha de código fonte: Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

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

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

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo

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

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

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

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação Linguagem de Programação II Programação Orientada a Objetos Ambientes de Programação Prof. Alessandro Borges 2 Tópicos Prompt de comando JDK IDE NetBeans Eclipse Jbuilder Visual Café Visual J++ NetBeans

Leia mais

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias 1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo

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

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 04 Convenções de Chamada

Leia mais

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans. 1 - Criando meu primeiro programa em Java Para criar um programa Java podemos utilizar um editor de textos (Bloco de Notas/Windows, Notepad ++ ou GEdit/Linux) e o console do sistema operacional, ou um

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

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

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 5: Registros O objetivo desta aula é apresentar os tipos de dados definidos pelo programador, bem como exibir usos comuns desses tipos de

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

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

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Tela inicial do Editor de programas do DEV C++ Dicas

Leia mais

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

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

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

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova 7. PROGRAMANDO O MICROCONTROLADOR 1 7. PROGRAMANDO O MICROCONTROLADOR: Hardware parte física do circuito eletrônico CPU onde está localizado o microcontrolador. Dentro do microcontrolador existe um conjunto

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

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

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

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo

Leia mais

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Aula teórica 7. Preparado por eng.tatiana Kovalenko Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana

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

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES Introdução à Arquitetura de Computadores Tutorial do P3 Referência 2014 / 2015 INSTITUTO SUPERIOR TÉCNICO Paulo Lopes, José Costa 2014/2015 2 1.

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

SISTEMA OPERACIONAL MS-DOS MICROSOFT SISTEMA OPERACIONAL EM DISCO

SISTEMA OPERACIONAL MS-DOS MICROSOFT SISTEMA OPERACIONAL EM DISCO Informática Básica Sistemas Operacionais Aplicativos Prof. Marcos César Bottaro 48 SISTEMA OPERACIONAL MS-DOS MICROSOFT SISTEMA OPERACIONAL EM DISCO DISK OPERATING SYSTEM - DOS SISTEMA OPERACIONAL DE DISCO

Leia mais

Gerando um programa executável a partir de um módulo Python

Gerando um programa executável a partir de um módulo Python Gerando um programa executável a partir de um módulo Python Wendel Melo (Departamento de Ciência da Computação UFRJ), Notas de aula de Computação II 15/03/2012 A linguagem de programação Python segue o

Leia mais

MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018

MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018 MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018 MATERIAL DIDÁTICO Harris & Harris 6.4.6 Procedure Calls Patterson & Hennessy (4a edição) 2.8 Supporting Procedures in Computer

Leia mais

Depurando Programas. Prof. Alexandre Beletti Ferreira. Depurador. Programa que se conecta a outros programas de software e os controla, permitindo:

Depurando Programas. Prof. Alexandre Beletti Ferreira. Depurador. Programa que se conecta a outros programas de software e os controla, permitindo: Depurando Programas Prof. Alexandre Beletti Ferreira Depurador Programa que se conecta a outros programas de software e os controla, permitindo: Executar passa à passo um código (single stepping) Rastrear

Leia mais

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

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

UTILIZANDO O CODE BLOCKS

UTILIZANDO O CODE BLOCKS UTILIZANDO O CODE BLOCKS Prof. André Backes INTRODUÇÃO Existem diversos ambientes de desenvolvimento integrado ou IDEs (Integrated Development Environment) que podem ser utilizados para a programação em

Leia mais

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

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina Sâmia Rodrigues Gorayeb Arquitetura de Computadores Linguagem de Máquina Arquitetura de Computadores Agenda: Linguagem de máquina 1. Introdução 2. Característica 3. Programas Compilados 4. Programas Interpretados

Leia mais

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

Leia mais

Chamadas de Sistema (SYSCALL)

Chamadas de Sistema (SYSCALL) Chamadas de Sistema (SYSCALL) Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 26 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls

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

COBOL DB2- CICS. Prof. Maromo [Aula 6]

COBOL DB2- CICS. Prof. Maromo [Aula 6] COBOL DB2- CICS Prof. Maromo [Aula 6] Parágrafos Procedure Name Parágrafos Podemos organizar os comandos (procedimentos) declarados na Procedure Division em grupos, que dão maior clareza à leitura do programa.

Leia mais

Macros no LibreOffice

Macros no LibreOffice Macros no LibreOffice Para automatizar tarefas no LibreOffice pode-se usar o conceito de macros. Sempre que se digita o mesmo texto diversas vezes, ou o formata, ou faz qualquer outra tarefa onde é necessário

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

Guia Rápido MIPS. Tipos de Dados e Formatações

Guia Rápido MIPS. Tipos de Dados e Formatações Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários. CURSO BÁSICO DE PROGRAMAÇÃO AULA 17 Manipulação de arquivos binários. Revisão Abrindo arquivos de texto em C FILE *arquivo = fopen(, ); FILE: Tipo do objeto de arquivo. fopen: Função

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES Rn - Registrador R0 R7 do banco de registradores selecionado. direto - 8-bits de endereço da posição da RAM de dados Podem ser referentes tanto à RAM interna (0 7F) como ao espaço

Leia mais

Primeiro Trabalho de POO Emulador para o Processador Winter

Primeiro Trabalho de POO Emulador para o Processador Winter Primeiro Trabalho de POO Emulador para o Processador Winter Prof. Pedro Carlos da Silva Lara Entrega: 21/10/2014 1 Informações Gerais Winter é um processador hipotético especificado com fim puramente acadêmico.

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

Keygennando o Ardamax Keylogger 2.8

Keygennando o Ardamax Keylogger 2.8 Keygennando o Ardamax Keylogger 2.8 por n2u, em 27/10/2007 Informações sobre a vítima Nome: Ardamax Keylogger. Versão: 2.8 Desenvolvedor: Ardamax (http://www.ardamax.com). Plataforma: Windows 98/ME/NT4/2000/XP/2003/Vista.

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar

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

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas atualmente. Uma linguagem de programação é um conjunto padronizado

Leia mais

Introdução a Engenharia Reversa

Introdução a Engenharia Reversa Introdução a Engenharia Reversa Por Maycon Maia Vitali a.k.a. 0ut0fBound maycon@consysonline.com.br http://outofbound.host.sk Conceito Resumo História da Engenharia Reversa - WWII Engenharia Reversa de

Leia mais

Algoritmos Computacionais

Algoritmos Computacionais UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE

Leia mais

Figura 1: Operações para gerar um programa executável.

Figura 1: Operações para gerar um programa executável. Uma jornada de mil milhas começa sempre com um simples passo. Lao Tse. PRIMEIROS PASSOS Para poder construir programas em C é necessário utilizar um ambiente de desenvolvimento. Por ambiente de desenvolvimento

Leia mais

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

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS - Microprocessadores I ELE 1078 Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS - 9.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência

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

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

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

Aula 3 Primeiros programas

Aula 3 Primeiros programas Aula 3 Primeiros programas FACOM-UFMS 2012 OBJETIVOS DA AULA Introdução ao CodeBlocks; Criação dos primeiros programas; Esta aula foi baseada nos capítulos 3 e 4 da apostila de Programação de Computadores

Leia mais

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO 1) Identifique na instrução em linguagem de máquina armazenada na memória, os elementos da instrução 2) Na figura acima, qual a quantidade de código de operações

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

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

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

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

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores 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

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

1 - Ambiente de desenvolvimento

1 - Ambiente de desenvolvimento Neste documento começa-se por apresentar o ambiente de desenvolvimento integrado do Visual Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e code editor window).

Leia mais

Esta é a única declaração da aplicação

Esta é a única declaração da aplicação Esta é a única declaração da aplicação A classe de usuário Olamundo O método público main, com seu argumento, obrigatório em qualquer aplicação. É dentro deste método que você inicia sua aplicação, não

Leia mais

Tutorial MAXPLUS II Altera Bruno Cozer Fev.2001

Tutorial MAXPLUS II Altera Bruno Cozer Fev.2001 Tutorial MAXPLUS II Altera Bruno Cozer Fev.2001 A) Conceitos básicos Esquemático e Simulação Como exemplo, implementaremos dois inversores em série que, dada uma entrada, terá que retornar na saída o mesmo

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

Solução Lista de Exercícios Processadores

Solução Lista de Exercícios Processadores Solução Lista de Exercícios Processadores Questão 1 A ULA é o dispositivo da CPU que executa operações tais como : Adição Subtração Multiplicação Divisão Incremento Decremento Operação lógica AND Operação

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

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR ELETRÔNICA DIGITAL II AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br 1º SEMESTRE 2009 CONTEÚDO PROGRAMADO: 1 O que é um computador digital? 2 Como funcionam os computadores 3 O agente

Leia mais

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA Engenharia de Eletrónica e Telecomunicações e de Computadores e Engenharia Informática e de Computadores e Engenharia Informática, Redes e Telecomunicações INSTITUTO

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

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

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 11 Conjuntos de instruções: Modos de endereçamento e formatos slide 1 Diagrama do endereçamento imediato Instrução Opcode

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

DISTRIBUINDO SUA APLICAÇÃO

DISTRIBUINDO SUA APLICAÇÃO DISTRIBUINDO SUA APLICAÇÃO Depois de pronta sua aplicação precisa ser distribuida para todos que querem ou precisam usá-la. Para usar a sua aplicação, o único requisito para o computador do cliente é que

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

Laboratório 01 NetBeans

Laboratório 01 NetBeans Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os

Leia mais

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 Arquitetura de Von Neumann CPU Unidade de controle Unidade de entrada Unidade de saída ULA Von Neumann era um gênio. Falava muitos

Leia mais