Assembly do IA-32 em ambiente Linux
|
|
|
- Francisca Dreer Braga
- 8 Há anos
- Visualizações:
Transcrição
1 MIEI: Sistemas de Computação 2015/16 Assembly do IA-32 em ambiente Linux Trabalho para Casa: TPC6 Alberto José Proença Objectivo A lista de exercícios propostos em TPC6 para resolução antes e durante a próxima sessão TP analisa e complementa os seguintes aspectos relacionados com o nível ISA do IA-32: transferência de informação, operações aritméticas/ lógicas e instruções de salto. Os exercícios para serem resolvidos e entregues antes da aula TP estão na última folha. Exercícios Acesso a operandos 1. (A) Considere que os seguintes valores estão guardados em registos e em células de memória: Endereço Valor Registo Valor 0x100 0xFF %eax 0x100 0x101 a %ecx 0x1 0x104 0xAB %edx 0x3 0x105 a x108 0x13 0x109 a 10B 0 0x10C 0x11 0x10D a 10F 0 Preencha a seguinte tabela mostrando os valores (em hex) para os operandos indicados. Notas: (i) o operando é um valor de 32 bits e a sua sintaxe é a utilizada no assembly do GNU; (ii) no comentário indique se o valor é uma constante, ou se encontra em registo (indique qual) ou se encontra em memória (especifique assim a localização da 1ª célula: Mem[<endereço>]). Operando Valor Comentário %eax 0x104 $0x108 (%eax) 4(%eax) 9(%eax,%edx) 260(%ecx,%edx) 0xFC(,%ecx,4) (%eax,%edx,4)
2 TPC6: Assembly do IA-32 em Linux - 2 Transferência de informação em funções 2. (R) Considere que a seguinte função, cuja assinatura (prototype) vem dada por void decode1(int *xp, int *yp, int *zp); é compilada para o nível do assembly. O corpo da função fica assim codificado: 1 movl 8(%ebp),%edi 2 movl 12(%ebp),%ebx 3 movl 16(%ebp),%esi 4 movl (%edi),%eax 5 movl (%ebx),%edx 6 movl (%esi),%ecx 7 movl %eax,(%ebx) 8 movl %edx,(%esi) 9 movl %ecx,(%edi) Os parâmetros xp, yp, e zp estão armazenados nas posições de memória com um deslocamento de 8, 12, e 16, respectivamente, relativo ao endereço no registo %ebp. Escreva código C para decode1 que tenha um efeito equivalente ao programa em assembly apresentado em cima. Verifique a sua proposta compilando com o switch S. O compilador que usar poderá eventualmente gerar código com uma utilização diferente dos registos ou de ordenação das referências à memória, mas deverá ser funcionalmente equivalente. Load effective address 3. (R) Considere que o registo %eax contém o valor de x, %ecx o valor de y e %edx foi alocado à variável z. Preencha a tabela seguinte, com expressões (fórmulas) que indiquem o valor que será armazenado no registo %edx para cada uma das seguintes instruções em assembly: Instrução Valor leal 6(%eax), %edx z = 6 + x leal (%eax,%ecx), %edx leal (%eax,%ecx,4), %edx leal 7(%eax,%eax,8), %edx leal 0xA(,%ecx,4), %edx leal 9(%eax,%ecx,2), %edx Operações aritméticas 4. (A) Considere que os seguintes valores estão guardados em registos e em células de memória: Endereço Valor Registo Valor 0x100 0xFF %eax 0x100 0x101 a %ecx 0x1 0x104 0xAB %edx 0x3 0x105 a x108 0x13 0x109 a 10B 0 0x10C 0x11 0x10D a 10F 0
3 TPC6: Assembly do IA-32 em Linux - 3 Preencha a seguinte tabela, mostrando os efeitos das instruções seguintes em termos de localização dos resultados (em registo ou endereço de memória), e dos respectivos valores: Instrução Destino Valor addl %ecx,(%eax) subl %edx,4(%eax) imull $16,(%eax,%edx,4) incl 8(%eax) decl %ecx subl %edx,%eax Operações lógicas e de manipulação de bits A linguagem C disponibiliza um conjunto de operações Booleanas - para OR, & para AND, ~ para NOT - as quais admitem como operandos qualquer tipo de dados integral, i.e., declarados como char ou int, com ou sem qualificadores (short, long, unsigned). Estas operações aplicam-se sobre cada um dos bits dos operandos (mais detalhe em de CSAPP). Adicionalmente, a linguagem C disponibiliza ainda um conjunto de operadores lógicos,, &&, e!, os quais correspondem às operações OR, AND e NOT da lógica proposicional. As operações lógicas consideram qualquer argumento distinto de zero como sendo True, e o argumento 0 representando False; devolvem o valor 1 ou 0, indicando, respetivamente, um resultado de True ou False. 5. (B) Usando apenas estas operações, escreva código em C contendo expressões que produzam o resultado 1 se a condição descrita for verdadeira, e 0 se falsa. Considere x como sendo um valor inteiro. a) Pelo menos um bit de x é 1 b) Pelo menos um bit de x é 0 c) Pelo menos um bit no byte menos significativo de x é 1 d) Pelo menos um bit no byte menos significativo de x é 0 6. (R) Na compilação do seguinte ciclo: for (i = 0; i < n; i++) v += i; encontrou-se a seguinte linha de código assembly: xorl %edx,%edx Explique a presença desta instrução, sabendo que não há operadores de XOR no código C. Que operação do programa, em C, conduz à implementação desta instrução em assembly? Operações de deslocamento 7. (R) Suponha que se pretende gerar código assembly para a seguinte função C: int shift_left2_rightn(int x, int n) { x <<= 2; x >>= n; return x; }
4 TPC6: Assembly do IA-32 em Linux - 4 Apresenta-se de seguida uma porção do código assembly que efetua as operações de deslocamento e deixa o valor final em %eax. Duas instruções chave foram retiradas. O parâmetros x e n estão armazenados nas posições de memória com um deslocamento relativo ao endereço no registo %ebp de, respetivamente, 8 e 12 células. 1 movl 8(%ebp),%eax Get x 2 movl 12(%ebp),%ecx Get n 3 x <<= 2 4 x >>= n Complete o programa com as instruções em falta, de acordo com os comentários à direita. O right shift deverá ser realizado aritmeticamente. Operações de comparação 8. (R) No código C a seguir, substituiu-se alguns dos operadores de comparação por e retiraram-se os tipos de dados nas conversões de tipo (cast). 1 char ctest(int a, int b, int c) 2 { 3 char t1 = a b; 4 char t2 = b ( ) a; 5 char t3 = ( ) c ( ) a; 6 char t4 = ( ) a ( ) c; 7 char t5 = c b; 8 char t6 = a 0; 9 return t1 + t2 + t3 + t4 + t5 + t6; 10 } A partir do código original em C, o GCC gera o seguinte código assembly: 1 movl 8(%ebp),%ecx Buscar argumento a 2 movl 12(%ebp),%esi Buscar argumento b 3 cmpl %esi,%ecx Comparar a:b 4 setl %al Calcular t1 5 cmpl %ecx,%esi Comparar b:a 6 setb -1(%ebp) Calcular t2 7 cmpw %cx,16(%ebp) Comparar c:a 8 setge -2(%ebp) Calcular t3 9 movb %cl,%dl 10 cmpb 16(%ebp),%dl Comparar a:c 11 setne %bl Calcular t4 12 cmpl %esi,16(%ebp) Comparar c:b 13 setg -3(%ebp) Calcular t5 14 testl %ecx,%ecx Testar a 15 setg %dl Calcular t4 16 addb -1(%ebp),%al Somar t2 a t1 17 addb -2(%ebp),%al Somar t3 a t1 18 addb %bl,%al Somar t4 a t1 19 addb -3(%ebp),%al Somar t5 a t1 20 addb %dl,%al Somar t6 a t1 21 movsbl %al,%eax Converter a soma de char para int Baseado neste programa em assembly, preencha as partes em falta (as comparações e as conversões de tipo) no código C.
5 TPC6: Assembly do IA-32 em Linux - 5 Controlo do fluxo de execução de instruções 9. Nos seguintes excertos de programas desmontados do binário (disassembled binary), alguns itens de informação foram substituídos por X s. Notas: (i) No assembly da GNU, a especificação de um endereço em modo absoluto em hexadecimal contém o prefixo *0x, enquanto a especificação em modo relativo se faz em hexadecimal sem qualquer prefixo; (ii) Não esquecer que o IA-32 é little endian. Responda às seguintes questões. a) (A) Qual o endereço destino especificado na instrução jge? 8048d1c: 7d 9e jge XXXXXXX 8048d1e: eb 24 jmp 8048d44 b) (A) Qual o endereço em que se encontra o início da instrução jmp? XXXXXXX: eb 54 jmp 8047c42 XXXXXXX: c7 45 f8 10 mov $0x10,0xfffffff8(%ebp) c) (R) Nesta alínea, o endereço da instrução de salto é especificado no modo relativo ao IP/PC, em 4 bytes, codificado em complemento para 2. Qual o endereço especificado na instrução jmp? : e9 c jmp XXXXXXX : 90 nop d) (R) Nesta alínea o código contém várias referências a endereços em instruções de salto, cujos valores se encontram na gama 8043xxx 16. Contudo, a sua codificação em binário segue regras distintas (absoluto/relativo, 1 ou 4 bytes,...). Calcule os endereços em falta para cada um dos 3 casos, e explicite a respetiva regra de codificação : e9 XX XX XX XX jmp 80436c : 89 c2 mov %eax,%edx a: 83 fa ff cmp $0xffffffff,%edx d: 74 XX je f: 89 d3 mov %edx,%ebx : ff 24 XX XX XX XX jmp *0x
6 e) TPC6: Assembly do IA-32 em Linux - 6 Nº Nome: Turma: Resolução dos exercícios 1. (A) Acesso a operandos Operando Valor Comentário %eax 0x104 $0x108 (%eax) 4(%eax) 9(%eax,%edx) 0xFC(,%ecx,4) (%eax,%edx,4) 2. (R) Transferência de informação em funções 3. (R) Load effective address Instrução Valor leal 6(%eax), %edx z = 6 + x leal (%eax,%ecx), %edx leal (%eax,%ecx,4), %edx leal 7(%eax,%eax,8), %edx leal 9(%eax,%ecx,2), %edx 4. (A) Operações aritméticas subl imull incl decl Instrução Destino Valor %edx,4(%eax) $16,(%eax,%edx,4) 8(%eax) %ecx 9. Controlo do fluxo de execução de instruções a) 8048d1c: 7d 9e jge XXXXXXX b) XXXXXXX: eb 54 jmp 8047c42 d) c) : e9 c jmp XXXXXXX
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)
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
Estruturas de controlo do C if-else statement
Análise do Instruction Set Architecture (3) Alteração do fluxo de execução de instruções Estrutura do tema ISA do IA-32 1. Desenvolvimento de programas no IA-32 em Linux 2. Acesso a operandos e operaçõ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 ------------------------------------------------------------------------------------------------------------------------------------------------
Fluxo de Execução em Assembly
Fluxo de Execução em Assembly A forma natural de execução de um programa é sequencial: CPU busca instruções na memória em endereços sequenciais Instruções de desvio de assembly servem para quebrar a execução
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 ------------------------------------------------------------------------------------------------------------------------------------------------
Introdução ao Assembly
Introdução ao Assembly Movimentação de Dados Operações Aritméticas e Lógicas Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Representação de Programas O compilador gera o código
Computadores e Programação (MAB-353) Primeira Prova -Prof. Paulo Aguiar (DCC/UFRJ) 19/05/ pontos
Computadores e Programação (MAB-353) Primeira Prova -Prof. Paulo Aguiar (DCC/UFRJ) 19/05/2015-100 pontos Nome: GABARITO (revisado) Questão 1 (20 pontos) Preencha os pontilhados do código C com variável
Estrutura do tema ISA do IA-32
Análise do Instruction Set Architecture (2) Acesso a operandos no IA-32: sua localização e modos de acesso Estrutura do tema ISA do IA-32 1. Desenvolvimento de programas no IA-32 em Linux 2. Acesso a operandos
Ordem de Bytes: Big Endian e Little Endian
Ordem de Bytes: Big Endian e Little Endian Dependendo da máquina que se usa, tem de se considerar a ordem pela qual os números constituídos por múltiplos bytes estão armazenados. As ordem são duas: big
Bits e operações. Sistemas de Computação
Bits e operações Porque utilizar base 2? Representação na base 10 Estamos acostumados Representação natural para transações financeiras (precisão) Implementação eletrônica na base 10 Difícil de armazenar
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador
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
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para
Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS Para entender como o computador armazena as informações, é importante conhecer
Assembly IA32 Procedimentos
1 Procedimentos Assembly IA32 Procedimentos Uma chamada a um procedimento implica a transferência de dados (na forma de parâmetros do procedimento e na forma de valores retornados pelo procedimento) e
T1: T2: T3: T4: T5: T6: T7: T: P: TEÓRICA
T1: T2: T3: T4: T5: T6: T7: T: P: Arquitectura de Computadores I - 2002/03 TEÓRICA As questões devem ser respondidas na própria folha do enunciado. As questões 1 a 4 são de escolha múltipla, e apenas uma
Introdução aos Sistemas Computacionais 2008/09
Introdução aos Sistemas Computacionais 2008/09 Departamento de Informática da Faculdade de Ciências da Universidade de Lisboa Fascículo ASM1 Introdução ao Assembly 1. Introdução ao Tema O processador de
Operadores e Expressões: bit-a-bit e especiais
Operadores e Expressões: bit-a-bit e especiais Objetivos Em C, OPERADORES e EXPRESSÕES podem ser classificados em cinco grande categorias: Atribuições Aritméticos Lógicos e Relacionais Bit-a-Bit Especiais
Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Representação de Dados (inteiros não negativos)
Representação de Dados (inteiros não negativos) Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços)
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
MIEI Sistemas de Computação 2017/18. Níveis de Abstração. TPC5 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença
MIEI Sistemas de Computação 2017/18 Níveis de Abstração TPC5 e Guião laboratorial Luís Paulo Santos e Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------
1/50. Conceitos Básicos. Programa Básico
1/50 Conceitos Básicos Programa Básico 2/50 Operações básicas de entrada e saída #include main retorna um inteiro int main() { std::cout
Representação de Dados (inteiros com sinal)
Representação de Dados (inteiros com sinal) Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Representação de Inteiros Com n bits podemos representar 2 n valores Representação de Inteiros
Exercícios resolvidos (aula de 4 de Maio) Resolução:
Exercícios resolvidos (aula de 4 de Maio) 1. Um microprocessador gera endereços de memória de 14 bits. Desenhe um mapa de memória dos seus endereços de memória fronteira especificados em hexadecimal. Uma
Representação de Inteiros
Representação de Inteiros Com n bits, podemos ter 2 n valores distintos Considerando só inteiros não-negativos (unsigned)a faixa de valores é [0, 2 n -1] Considerando inteiros quaisquer (i =0),
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 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas
Lab. de Programação Concorrente em Física Primeira Prática
Lab. de Programação Concorrente em Física Primeira Prática Paulo Matias 5626309 24 de agosto de 2009 1 Introdução Nesta prática, avaliaremos a importância de se utilizar bons algoritmos e de otimizar o
Introdução à Computação MAC0110
Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão
Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-09
Lógica Binária Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-9 Introdução Lógica binária é a base do sistema computacional. Qualquer operação
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Linguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Testando o Teorema de De Morgan
Pedro Garcia http://www.sawp.com.br 04 de Fevereiro de 2010 Assembly Working Party Laboratório de Cálculos Científicos, Instituto de Física, Universidade de Brasília, Brasil O Teorema Teorema de De Morgan
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 [email protected] Colegiado de Engenharia
Disciplina: Introdução à Engenharia da Computação
Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. [email protected] 2 Representação
Computação e Programação
Computação e Programação 1ª Aula de 2008-2009 Instituto Superior Técnico, Dep. de Engenharia Mecânica - Sistemas O Visual C++ Para Casa (se possível antes da aula!): Veja o video e o screencast que se
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
Cap. 2 Expressões na linguagem C
Programação de Computadores II Cap. 2 Expressões na linguagem C Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (24) Slides adaptados dos originais
Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo
Algoritmos e Estruturas de Dados I IEC012 Linguagem C - Guia de bolso - Prof. César Melo Histórico A linguagem C é uma linguagem de programação inventada na década de 1970 por Dennis Ritchie Brian Kennigaham.
LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",
Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo
Nível da Arquitetura do Conjunto de Instruções Ronaldo de Freitas Zampolo Tópicos Introdução Visão geral do nível ISA Tipos de dados Formatos de instruções Endereçamento Tipos de instruções Fluxo de controle
Nós estamos acostumados com operações aritméticas: soma, subtração, multiplicação e divisão.
Bitwise tricks Operações com bits Nós estamos acostumados com operações aritméticas: soma, subtração, multiplicação e divisão. Mas os computadores entendem melhor operações booleanas, que computam diretamente
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
Programação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto [email protected] [email protected] 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte
Tópicos de hoje: Programação de Computadores II Cap. Expressões na linguagem C Bits, s e Palavras Variáveis e constantes Operadores e expressões Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel.
Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.
Sumário Aula Anterior Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits Aula 12 1 Sumário Nesta Aula Esclarecimento de dúvidas para o Exame Resolução
Sistemas de Numeração
Sistemas de Numeração Objetivos Conhecer representações numéricas para inteiros positivos (naturais) nas bases binária, hexadecimal e octal. Generalizar representações para qualquer base. Manipular fluentemente
Princípios de Desenvolvimento de Algoritmos MAC122
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória
Sintaxe da linguagem Java
Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Classe pública com método main Uma classe pública com nome A tem
Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo OPERADORES Um operador é um símbolo
Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação
Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda
