Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.

Slides:



Advertisements
Apresentações semelhantes
A CPU E SUA EVOLUÇÃO. CPU (Central Processing Unit ou Unidade Central de Processamento)  DEFINIÇÕES:  A CPU é o hardware principal do computador; 
Advertisements

Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino.
Capítulo 10 Conjuntos de instruções: Características e funções William Stallings Arquitetura e Organização de Computadores 8 a Edição © 2010 Pearson Prentice.
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL Os computadores são formados por circuitos digitais A informação e os dados são codificados em zeros e uns (linguagem.
MAB 124 Sistemas de Numeração PRC Sistemas de Numeração.
Universidade Federal de Campina Grande – UFCG Centro de Ciências e Tecnologias – CCT Unidade Acadêmica de Engenharia Química - UAEQ Universidade Federal.
Introdução a Ciência da Computação Aula 05 Prof. Francisco G. Rodrigues.
Como funciona o processador Nomes: Fernando, Maurício, William Turma: 1J-1PC1 Disciplina: Fundamentos da Computação Curso: Técnico em Programação de Computadores.
Programação em Assembly Conceitos Iniciais Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Unidade 2 Conceitos Gerais Hardware. HARDWARE Unidades de Entrada Unidades de Saída Memória Principal Memória Auxiliar CPU Sistema Central Periféricos.
Disciplina de Fundamentos de Informática Professor Eduardo Alberto Felippsen Ensino Médio Integrado – Técnico em Informática 2015.
ARQUITETURA AULA 3 Prof. Luiz Ricardo Lima 2º sem de 2016.
Projeto Integrador Número Binários Professor: Charles Leite.
Algoritmos e Programação utilizando Visualg
Conceitos Básicos Prof.: Nivaldo T. Schiefler Jr. / Edson H. Watanabe
Gerência de Arquivos.
Casamento de Padrão Aproximado e Compressão de Huffaman
Arquitetura do SET de instruções Instruction SET CISC vs RISC
Modulo 9 - Arquitetura de microprocessadores
Ciclos de operação em processador
PSI3441 – Arquitetura de Sistemas Embarcados
Caracterização do equipamento
Revisão de Lógica de Programação e Desenvolvimento Web
UD 1 - CONCEITOS DE INFORMÁTICA
Gestão de periféricos Varrimentos vs Interrupções Cache
Mapeamento de Entrada e Saída em Sistemas Digitais
ELD - Eletrônica Digital
Como a matemática participa da informática?.
INSTITUTO FEDERAL DO CEARÁ Mauro Oliveira
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES
Computador MIPS Organização básica e conjunto de instruções.
Tecnologias da Informação e Comunicação
Programação em C Aula 1.
Introdução ao VisuALG Prof. Andrew Rodrigues
Sistemas Digitais e Arquitetura de Computadores
Nataniel Vieira Endereçamento IP Nataniel Vieira
Programação em C Aula 2.
Arquitetura de Computadores
Hardware É a parte física de um sistema de computação, ou seja, todos os elementos materiais que o constituí (circuitos eletrônicos, dispositivos mecânicos,
Prof. Wellington Franco
LINGUAGENS DE PROGRAMAÇÃO
Instruções.
Sistemas de Numeração O número é um conceito abstrato que representa a idéia de quantidade. Sistema de numeração é o conjunto de símbolos utilizados para.
Arquitetura e organização de computadores
INTRODUÇÃO A COMPUTAÇÃO
Algoritmos e Técnicas CEFET/RN.
1 Introdução aos COMPUTADORES Profª Alda Vagarinho.
Aula 07 Camada Física.
Introdução à Computação
Arquitetura de Barramentos
Aula 2: Representação de dados
Lógica matemática FACVLDADE MAURICIO DE NASSAU – FAP PARNAIBA
Representação dos dados
Representação da Informação
Binário, Hexadecimal, Decimal
Sistemas Operacionais I
Introdução à Computação
Organização de Computadores
ELEMENTOS DE ORGANIZAÇÃO DE COMPUTADORES :
Linguagem de Programação
A UCP e suas conexões (barramentos)
Arquitetura de Computadores
Professora Roberta Bonamichi Guidi Garcia
Linguagem de Programação I
Organização de um Computador
Hierarquia de memória Memória Interna. Memória A.W. Burks, H.H. Goldstine e J. von Neumann Preliminary Discussion of the Logical Design of na Eletronic.
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
Programação de Computadores LINGUAGEM C – AULA 03 – PROF. WELLINGTON TELLES.
Conjunto de instruções
Transcrição da apresentação:

Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores

Roteiro Por que estudar Assembly? Representação de dados Sistema decimal Sistema binário Sistema hexadecimal Organização dos dados Organização de Dados Organização de Sistemas Livro texto: The Art of Assembly Language

Introdução É AssemblY e não AssemblER! Linguagem de programação de baixo nível Cada instrução é convertida diretamente em linguagem de máquina Cada arquitetura possui um conjunto de instruções IA32 – Intel 1985 X86 – 32 bits IA32-EM64T ou IA32-AMD64 – AMD 2002 X86-64 – 64 bits

Por que estudar Assembly? Assembly é difícil de aprender Assembly é difícil de ler e entender Assembly é difícil de manter Programar em assembly consome muito tempo Os compiladores atuais dispensam a necessidade do assembly As máquina atuais são rápidas e não precisamos mais do assembly Se você precisa de mais velocidade, escolha um algoritmo mais rápido Memória não é mais o problema Assembly não é portável

Por que estuar assembly? Velocidade Programas escritos e assembly são geralmente mais rápidos Espaço de memória Programas em assembly consomem menos memória Possibilidades de programação Você pode fazer coisas em assembly que são difíceis ou impossíveis de fazer em outras linguagens Conhecimento Quem conhece assembly programa melhor em outras linguagens

Representação de dados Sistema decimal Sistema binário Sistema hexadecimal Organização dos dados

Sistema Decimal Qual o significado de um valor decimal? Exemplo: 123 (1x10^2) + (2x10^1) + (3x10^0) = E com casas decimais? Exemplo: 123,45 (1x10^2) + (2x10^1) + (3x10^0) + (4 x 10^-1) + (5 x 10^-2) = ,4 + 0,05 = 123,45

Sistema Binário Computadores utilizam níveis de voltagem para representar dados 0v e +5v -> 0 e 1 O sistema binário é análogo ao decimal Sistema decimal tem 10 digitos (0 a 9) Sistema binário tem 2 dígitos (0 e 1) Quanto é em decimal? (1x2^6) + (1x2^5) + (1x2^4) + (1x2^3) + (0x2^2) + (1x2^1) + (1x2^0) = 123

Sistema Binário Conversão decimal-binário Exemplo: converter 123 para binário 123/2 = 61resta 1 61/2 = 30 resta 1 30/2= 15resta 0 15/2= 7resta 1 7/2= 3resta 1 3/2= 1resta 1 1/2= 0resta = b

Sistema Hexadecimal Por que hexadecimais? Binários são muito longos pra escrever Converter decimal para binário é muito custoso Mas computadores “pensam” em binário! Hexadecimais são compactos e fáceis de converter para binário A base hexadecimal é 16 (4 bits : 2^4) Como só existem 10 dígitos (0-9) completa-se com as letras de A-F 0000 = = = = = = = = = = = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F

Sistema Hexadecimal Conversão hexadecimal -> decimal Exemplo: 1234h = ?d dígitos hexadecimais numeração potência de 1616^3 16^2 16^1 16^0 (1 x 16^3) + (2 x 16^2) + (3 x 16^1) + (4 x 16^0) = = 4660 decimal Conversão hexadecimal binário Exemplo: ABCDh = ?b hexadecimal A B C D binário

Organização de Dados Bit Nibble Byte Word Double word

Bit Menor unidade de dados Pode representar 2 valores distintos 0 ou 1 Verdadeiro ou falso Azul ou vermelho Feminino ou masculino 400 ou 300 etc.

Nibble Conjunto de 4 bits Interessante para hexadecimais Todo dígito hexadecimal pode ser representado por um nibble

Byte Conjunto de 8 bits Menor item de dados endereçável no 80x86 Cada byte comporta 2 nibbles

Word Uma palavra de 16 bits

Double word Palavra de 32 bits

Operações aritméticas 9h + 1h = 10h? 10h - 1h = 9h? Seu cérebro só pensa decimal!!! 1. Converta hex ou bin para decimal 2. Faça os cálculos 3. Converta o resultado para hex ou bin Ou: use uma calculadora!!

Deslocamentos Left Shift Multiplicação pela base Acrescenta-se zeros na direita Descarta-se os bits da esquerda Right Shift Divisão pela base Acrescenta-se zeros na esquerda Descarta-se os bits da direita 1234 SHL 1 = SHR 1 = 123?

Rotações Left rotate Right rotate

Caracteres ASCII 4 grupos 0 a 31 – Caracteres de controle 32 a 63 – pontuação, caracteres especiais e dígitos 0-9 Espaço: 20h Dígitos 0-9: 30h ao 39h 64 a 95 – letras maísculas e alguns símbolos 96 a 127 – letras minúsculas e alguns símbolos Bit 6Bit 5Grupo 0 0Caracteres de controle 0 1Dígitos e caracteres de pontuação 1 0Maiúsculos e especiais 1 1Minúsculos e especiais

Caracteres ASCII Relação Hexadecimal CaractDecimalHexa h h h h h h h h h h Bit 5 – diferencia maiúsculas e minúsculas

Organização de Sistemas Componentes básicos do sistema Arquitetura de John Von Newmann CPU Memória Dispositivos E/S

O barramento do Sistema Conjunto de fios entre os componentes no sistema pelos quais passam sinais elétricos São três: barramento de endereços barramento de dados barramento de controle.

Barramento de Dados Utilizados para transportar dados entre os componentes do computador Nos sistemas 80x86 o barramento de dados contém 8, 16, 32 ou 64 linhas 8086, 80186, e 80386SX – 16 bits 80386DX, e Pentium (Pro) – 32 bits

Barramento de Endereços Utilizado para indicar qual endereço (de memória ou de E/S) será utilizado O número de bits define o tamanho da memória endereçável e de posições de E/S Processador SX 80386DX Barramento 20 bits 24 bits 32 bits Memória endereçável 1 Megabyte 16 Megabytes 4 Gibabytes

Barramento de Controle Controla como o processador se comunica com o restante do sistema Por exemplo: Indicação de leitura ou escrita Memória ou dispositivo de E/S

A memória do Computador O que exatamente é uma posição de memória? Escrita: Memory[125] := 0;Leitura: CPU := Memory[125]

Temporização Em computadores reais as operações não ocorrem instantaneamente Certas operações precisam ser executadas em ordem I := J; I := I * 5 + 2; As CPUs do 80x86 utilizam um sinal alternado chamado clock do sistema

O clock do sistema Gerencia toda a sincronização dentro de um computador É um sinal elétrico no barramento de controle que fica alternando entre zero e um de acordo com uma determinada taxa cíclica Freqüência de clock: freqüência com que o clock alterna entre zero e um Período ou Ciclo de clock: tempo que ele leva para alternar de zero para um e voltar para zero Ex.: cicla a 66 milhões de Hertz - 66 MHz.

Estados de Espera É um ciclo de clock extra para dar a algum dispositivo o tempo para completar uma operação Exemplo: de 50 MHz tem um período do clock de 20 ns necessitamos de uma memória de 20 ns decodificadores e buffers lógicos consomem tempo Memórias rápidas são muito caras Solução: cache

Memória Cache Programas tendem a acessar as mesmas posições de memória repetidamente localidade temporal de referência localidade espacial de referência for i := 0 to 10 do A[i] := 0; A cache não é perfeita Em caso de erro, busca- se na memória principal Cache secundária aumenta acertos