PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Download "PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br"

Transcrição

1 - Aula 3 - O NÍVEL DA ARQUITETURA DO CONJUNTO DAS INSTRUÇÕES (ISA) (Nível Convencional de Máquina) 1. INTRODUÇÃO Este é o nível responsável por fazer a ligação entra a parte de hardware e a parte de software de um sistema computacional, é um nível convencional de máquina. Figura 1 - Níveis Os computadores foram divididos em diversas camadas para simplificar o desenvolvimento de aplicações e reduzir custos de produção. O entendimento dessas diferentes camadas permite entender o funcionamento interno do computador. Este nível está localizado entre o nível da microarquitetura e o nível de Sistema Operacional e foi desenvolvido antes de qualquer outro nível. Nos primeiros computadores só existiam nível de lógica digital e ISA. Este é o nível mais próximo do hardware em que o usuário pode programar. Conseqüência disso é que programar neste nível não é muito amigável. A solução para isso é trabalhar em camadas. Observe a figura abaixo: 1

2 Figura 2 - Interface software-hardware Como pode ser observado, cada nível da organização possui uma linguagem associada. À medida que a organização evolui em direção ao usuário, a linguagem se torna mais conveniente para ele. Assim, o usuário escreve um programa fonte em linguagem de alto nível ou em linguagem de montagem, mais amigáveis. O programa fonte é traduzido para programa objeto em uma linguagem intermediária (Linguagem de Máquina). Por fim, as instruções de máquina são interpretadas pelo Hardware. O hardware deve ser capaz de executar programas de nível ISA diretamente. Isto ocorre da mesma forma com que Java converte a codificação de alto nível para Bytecode. 2. METODOLOGIA EMPREGADA NOS SISTEMAS COMPUTACIONAIS Os programas em diversas linguagens de alto nível são traduzidos para uma mesma linguagem intermediária (nível ISA) para serem então executados em um hardware construído para executar diretamente instruções do nível ISA. Este nível define o aspecto da máquina para um programador da linguagem de máquina. O nível ISA define, ainda, a interface entre os compiladores e o hardware. Sendo assim, os compiladores devem saber transformar uma linguagem alto nível para uma linguagem do nível ISA. Para que haja este entendimento o nível ISA define como a máquina se apresenta a um programador de linguagem de máquina: - Quais as instruções disponíveis; - Qual modelo de memória utilizado; - Quais e quantos registrados existem; - Quais os tipos de dados suportados. As instruções do nível ISA são aquelas para as quais o compilador deve gerar código, que por sua vez gera chamadas adicionais ao Sistema Operacional para gerar um programa executável. Assim sendo, um projetista deve conhecer o conjunto de informações que definem o nível ISA. 2

3 Figura 3 - Nível ISA Em termos práticos a comparação entre as linguagens de cada nível será a seguinte: - Linguagem de alto nível: A=5; - Linguagem de montagem: MOVE A, #5; - Linguagem de máquina: A linguagem de montagem e a linguagem de máquina possuem uma relação de uma para um, ou seja, cada instrução de montagem possui uma instrução de máquina equivalente. A diferença entre elas é que a primeira é uma representação simbólica da segunda, que é puramente numérica; A linguagem de alto nível utiliza instruções que operam sobre estruturas de dados complexas. A compilação de uma seqüência de instruções em linguagem de alto nível geralmente gera uma seqüência maior de instruções ISA que operam sobre estruturas de dados mais simples e diversas daquelas presentes no programa fonte Modos de Utilização Este nível provê, no mínimo, dois modos de utilização: - Modo núcleo ou modo kernel. - Modo usuário MODO NÚCLEO O Sistema Operacional é executado neste modo. Permite executar qualquer instrução, sem restrições MODO USUÁRIO Executa programas do usuário. Possui acesso restrito a algumas instruções importantes e não é possível usar as instruções que manipulam a cache, por exemplo. 3

4 2.2. Características de projeto do nível ISA No nível de linguagem de máquina está definida a interface entre software e hardware: - Deve ser o mais simples possível, para facilitar projeto do hardware. - Deve facilitar a geração de código por parte do compilador. - Deve dar suporte aos níveis superiores, possibilitando o uso de estruturas de dados, tais como procedimentos, variáveis locais, variáveis globais, constantes, etc., utilizados pelas linguagens de alto nível. O conjunto de informações que definem o nível ISA são: a. Modelo de Memória da Máquina; b. Quais registradores são implementados; c. Tipos de dados utilizados; d. Quais instruções são disponíveis e o que cada uma executa; e. Fluxo de controle. Na maioria das arquiteturas, o nível ISA é especificado por meio de um documento formal, com seções normativas e informativas, visto que esta é uma obrigação das fabricantes de hardware. Este documento deve informar: a. O modelo de memória adotado; b. Quantos e quais registradores estão implementados; c. O que cada instrução faz; 3. MODELOS DE MEMÓRIA Antes de o programa ser executado em linguagem de máquina ele é armazenado na memória principal. A Memória é dividida em células referenciadas por endereços consecutivos, onde cada célula pode ter qualquer tamanho. Atualmente as memórias são formadas por grupos de 4 bytes (32 bits) ou de 8 bytes (64 bits). As palavras de 4 ou 8 bytes podem estar alinhadas ou não alinhadas com as fronteiras naturais da memória, como mostrado na figura abaixo. O acesso a memórias alinhadas são mais eficientes, porém a leitura de 1 endereço arbitrário requer um hardware mais sofisticado e mais caro. Mesmo quando alinhadas, os acessos a memória podem ser não alinhados devido a manutenção de compatibilidade com arquiteturas antigas (máquinas de 8 ou 16 bits). Isso é importante, pois antes de ser executado o programa em linguagem de máquina é armazenado na memória principal. As CPU's costumam transferir os bytes de uma palavra de uma só vez. Freqüentemente, a arquitetura utiliza apenas endereços múltiplos do tamanho da palavra. Neste caso, dados desalinhados teriam que ser buscados em duas referências à memória e os dados teriam de ser reconstruídos a partir das duas palavras lidas. 4

5 Figura 4 - Alinhamento da memória 4. REGISTRADORES Os registradores são memórias rápidas usadas em execução de instruções dentro do processador com o objetivo de minimizar os acessos às memórias externas pelo processador. Todos os processadores têm um conjunto de registradores visíveis no nível ISA. Em geral, os registradores visíveis no nível de microarquitetura, não são visíveis para o nível ISA. O nível ISA disponibiliza um conjunto de registradores visíveis ao programador e podem ser classificados em duas categorias: a) Registradores de propósito específicos: cumprem funções específicas, como: - PC (Contador de Programa): ponteiro que armazena o endereço da próxima instrução a ser executada; - SP (Apontador de Pilha): aponta para o endereço no topo da pilha. - Registrador de Status (PSW - Program Status Word): contém bits necessários à operação do processador. Exemplo: habilitação de interrupções, modo de execução da máquina, códigos de condição, etc. Alguns só são usados pelo processador. b) Registradores de propósito geral: usados para armazenar variáveis locais e resultados intermediários; são, em geral, simétricos e intercambiáveis (usados indistintamente). É comum que os Sistemas Operacionais e compiladores adotem convenções sobre o uso dos registradores. Alguns podem ser utilizados para armazenar parâmetros de procedimentos e outros como registradores transitórios. Sem uma convenção os registradores que armazenam uma variável local pode perder seu conteúdo após um procedimento e o endereço de retorno pode ser perdido. 5

6 4.1. Registradores da arquitetura 8086 da Intel Registradores de Uso Geral Segmento Registradores AH/AL AX (EAX) Acumulador CS Segmento de Código BH/BL BX (EBX) Base DS Segmento de Dados CH/CL CX (ECX) Contador SS Segmento da Pilha DH/DL DX (EDX) Dados ES Segmento Extra (FS) 386 e mais novos (Exx) indica registrador bits (GS) 386 e mais novos Registradores Ponteiro Registradores de Pilha SI (ESI) Índice da Origem SP (ESP) Ponteiro da Pilha DI (EDI) Índice do Destino BP (EBP) Ponteiro da Base IP Ponteiro da Instrução Registradores de Estado F E D C B A `--- CF Flag de Carry `--- 1 `--- PF Flag de Paridade `--- 0 `--- AF Flag Auxiliar `--- 0 `--- ZF Flag Zero `--- SF Flag de Sinal `--- TF Flag Armadilha (Trap Flag para Single Step) `--- IF Flag de Interrupção `--- DF Flag de Direção `--- OF Flag de Overflow `----- IOPL Nível de Privilégio I/O (apenas 286+) `----- NT Flag de Tarefa Aninhada (Nested Task, apenas 286+) ` `----- RF Flag de Continuação (Resume Flag - apenas 386+) ` VM Flag de Modo Virtual (apenas 386+) Registradores Especiais (apenas 386+) CR0 Registrador de Controle 0 CR2 Registrador de Controle 2 CR3 Registrador de Controle 3 DR0 Registrador de Debug 0 DR1 Registrador de Debug 1 DR2 Registrador de Debug 2 DR3 Registrador de Debug 3 DR6 Registrador de Debug 6 6

7 DR7 Registrador de Debug 7 TR4 Registrador de Teste 4 TR5 Registrador de Teste 5 TR6 Registrador de Teste 6 TR7 Registrador de Teste 7 Registrador Segmento Default Overrides Válidos BP SS DS, ES, CS SI ou DI DS ES, SS, CS DI strings ES Nenhum SI strings DS ES, SS, CS 4.2. Uso dos Registradores É comum que Sistemas Operacionais e compiladores adotem convenções sobre o uso dos registradores. Alguns podem ser utilizados para armazenar parâmetros de procedimentos e outros como registradores transitórios. Sem uma convenção os registradores que armazenam uma variável local pode perder seu conteúdo após um procedimento, dessa forma o endereço de retorno pode ser perdido. Os registradores de propósito específicos são usados apenas pelo Sistema Operacional e são acessados em modo núcleo. Compiladores e usuários não necessitam saber que eles existem. Figura 5 - Registradores do Pentium 4 7

8 5. TIPOS DE DADOS Embora o hardware possa ser tipado ele não verifica compatibilidade de tipos. Os tipos suportados vão depender da utilização do computador. Neste caso, a disponibilização de registros de precisão dupla pode ser implementado em software se seu uso for raro, não sendo necessária sua implementação em hardware. Os tipos de dados mais comuns são: - Numéricos: inteiros, ponto-flutuante, BCD - Não numéricos: ASCII e UNICODE, Strings, Booleanos, Ponteiros. Algumas instruções são específicas para tratar ou ajudar o tratamento desses tipos. No Pentium II temos os seguintes tipos de dados, que variam desta para outras arquiteturas: - Números inteiros em complemento de dois. - Números inteiros sem sinal. - Números decimais codificados em binário (BCD). - Números em ponto flutuante padrão IEEE Strings de caracteres ASCII de comprimento conhecido. - Strings de caracteres ASCII de comprimento desconhecido (final da string marcado por caractere especial). Tabela: Tipos de dados do Pentium II Tipo 8 Bits 16 Bits 32 Bits 64 Bits Inteiro com sinal X X X Inteiro sem sinal X X X Inteiro BCD X Ponto flutuante X X Figura 6 - formato de dados (números Inteiros) 6. FORMATO DAS INSTRUÇÕES Em geral as instruções pequenas são mais atraentes do que as grandes, pois a banda passante (número de bits por segundo que a memória é capaz de liberar) da memória tem crescido menos que a velocidade dos processadores. As memórias atuais não têm a capacidade de suprir instruções e operandos na velocidade que o processador pode consumi-las. Um programa feito com instruções de 16 bits gasta metade do espaço de memória de um programa com instruções de 32 bits. Assim, deve-se considerar, também, a taxa de crescimento do preço de memória e a taxa de crescimento do tamanho dos programas. Por outro lado, a 8

9 minimização do tamanho das instruções pode dificultar muito a sua decodificação. O projetista é obrigado a usar um conjunto restrito de códigos para as instruções e o projeto pode não ser flexível para aumento da quantidade de instruções. Importante: O tamanho ideal de uma instrução deve considerar, além do preço da memória, o tempo de decodificação e de execução de uma instrução. Como os processadores modernos são capazes de executar várias instruções no mesmo ciclo de clock, torna-se imperativo um mecanismo de busca de várias instruções em cada ciclo de clock (memórias cache). Quando uma instrução tem endereços, o tamanho do endereço deve ser compatível com o tamanho máximo da memória do computador. No entanto, memórias maiores requerem endereços mais longos, resultando em instruções maiores. São dois os campos essenciais em uma instrução: - Código de operação (OP CODE): identifica a operação a ser realizada pelo processador. Deve identificar de forma única cada ação a ser executada pelo processador. Pode ser de tamanho fixo ou variável. - Endereço: indica a localização do dado (operando) a ser manipulado pela instrução. Em geral indica um endereço de memória ou de um registrador onde está contido o dado, ou onde ele será armazenado. Cada instrução pode possuir 0, 1, 2 ou mais campos de endereço. Figura 6 Formato Típico de Instrução Na prática os formatos de instrução são bem mais complexos. O conjunto de instruções pode possuir formatos diferentes e o comprimento das instruções também pode ser variável, geralmente múltiplo ou submúltiplo do tamanho da palavra. - Instruções menores que uma palavra; - Instruções maiores que uma palavra; - Instruções do tamanho de uma palavra. 9

10 Figura 7 Relação entre instrução e palavra Uma instrução com código de operação de 4-bits e três campos de endereços de 4-bits seria representada conforme figura abaixo. Figura 8 - Código de Operação expandido Figura 9 - Código de operação expandido Os campos xxxx, yyyy, and zzzz correspondem aos 4-bits de endereços. 7. ENDEREÇAMENTO Em geral, as instruções utilizam pequena quantidade de bits para o código de operação, grande quantidade para especificar endereços dos dados, como por exemplo: instrução de adição: - Precisa dos endereços dos dois valores a serem somados. - Precisa do endereço do local onde o valor deve ser armazenado. 10

11 - Supondo que os endereços de memória sejam de 32 bits: são necessários 96 bits de endereços. - Os endereços dos operandos na memória principal devem ser determinados em tempo de compilação Modos de Endereçamento ENDEREÇAMENTO IMEDIATO Parte da instrução contém o operando, não requerendo referência extra à memória. É limitado pelo tamanho do campo. Exemplo: Instrução imediata para carregar 4 no registro 1: MOV R ENDEREÇAMENTO DIRETO Parte da instrução contém o endereço do operando e a instrução acessa sempre a mesma posição na memória, podendo ser usado para acessar variáveis globais. O conteúdo da memória pode ser alterado, mas não o endereço. Exemplo: Soma o valor 9 ao no endereço de memória (4). ADD (4) ENDEREÇAMENTO POR REGISTRADOR Similar ao endereçamento direto, mas utiliza um registrador ao invés de uma posição de memória. Muito útil quando necessita se diversas vezes da mesma variável. A vantagem é que o acesso ao registrador é mais rápido, contudo o número de registradores é limitado. MOV AL BH 11

12 ENDEREÇAMENTO INDIRETO POR REGISTRADOR O endereço de uma variável é armazenado em um registrador. Registrador funciona como um ponteiro. Usa o conceito de memória de rascunho, onde está armazenado o endereço do dado na memória principal. O endereço intermediário é que é chamado de ponteiro. Quando esse se encontra em um registrador é possível acessar um endereço de memória através de um endereço de registrador. MOV AL [BX] ENDEREÇAMENTO INDEXADO A palavra da memória é referenciada pela soma de dois registradores. Endereço fornecido por registrador_base + registrador (+offset). Permite acessar palavras da memória a partir de um deslocamento conhecido (índice), a partir de um determinado endereço base (offset) ENDEREÇAMENTO POR PILHA O objetivo é fazer com que as instruções fiquem tão curtas quanto possível. Instruções baseadas em pilha não precisam usar endereços e as operações são realizadas sobre os operandos que estão no topo da pilha. Pilhas são usadas para suporte a procedimentos, cálculo de expressões, etc. Utiliza um registrador Ponteiro de Pilha (SP - Stack Pointer) que aponta para o topo da pilha (último item armazenado). As instruções para gerenciar a pilha são: PUSH X Empilha X SP := SP+1; (SP) := X; POP Y Desempilha em Y Y := (SP); SP := SP-1; Algumas instruções de pilha não necessitam especificar endereço. Os dados são buscados a partir de SP. 12

13 Figura 10 - Funcionamento da pilha Exemplo: Adição de dois valores usando endereçamento via estrutura de Pilha: - Dois valores são desempilhados, - Os valores são somados. - O resultado é empilhado. 8. TIPOS DE INSTRUÇÕES As instruções representam a principal característica do nível ISA. Sempre existem instruções aritméticas, booleanas, LOAD, STORE, MOVE, etc. As instruções do nível ISA podem ser agrupadas segundo suas funcionalidades: 8.1. Instruções de Movimento de Dados Compreende, na verdade, uma duplicação de dados. Cria-se um novo objeto, com a mesma configuração de bits do objeto original. O conteúdo original da memória não é apagado (pelo menos de imediato). É preciso especificar o endereço de origem e destino Operações Diádicas Operações diádicas são aquelas que combinam dois operandos para produzir um resultado. São exemplos operações aritméticas (adição, subtração, multiplicação e divisão), funções booleanas (AND, OR, NOR, NAND,...) 13

14 8.3. Operações Monádicas Operações monádicas são aquelas que utilizam apenas um operando e produzem um único resultado, como por exemplo o NOT lógico, negação, deslocamento, rotação e incremento. Instruções de movimentação de dados MOV DST, SRC Move SRC para DST PUSH SRC Coloca SRC na pilha POP DST Tira valor da pilha e armazena em DST XCHG DS1, DS2 Troca DS1 com DS2 Instruções aritméticas ADD DST, SRC Soma DST (destino) com SRC (fonte) SUB DST, SRC Subtrai DST de SRC MUL SRC Multiplica o valor de EAX por SRC INC DST Soma uma unidade a DST DEC DST Subtrai uma unidade de DST NEG DST Nega DST (subtrai seu valor de 0) Instruções booleanas AND DST, SRC AND booleano entre SRC e DST OR DST, SRC OR booleano entre SRC e DST XOR DST, SRC EXCLUSIVE OR booleano entre SRC e DST NOT DST Substitui DST por seu complemento a 1 Instruções de deslocamento/rotação SAL/ DST, #N SAR Desloca DST para esquerda/direita #N bits ROL/ DST, #N ROR Rotaciona DST para esquerda/direita #N bits 8.4. Exemplo de Instruções de Transferência de Dados Observe na figura abaixo os registradores AC e MQ. Eles são usados como operando em toda operação aritmética ou lógica executada. 14

15 Figura 11 - Organização IAS Tabela: Instruções de Transferências de Dados: opcode mnemônico Significado LOAD MQ AC MQ LOAD MQ,M(X) MQ mem(x) STOR M(X) mem(x) AC LOAD M(X) AC mem(x) LOAD M(X) AC mem(x) LOAD M(X) AC abs(mem(x)) LOAD M(X) AC -abs(mem(x)) Tabela: Instruções de Desvio Incondicional: opcode mnemônico Significado JUMP M(X,0:19) prox. instr.: metade esq. de mem(x) JUMP M(X,20:39) prox. instr.: metade dir. de mem(x) Tabela: Instruções de Desvio Condicional: opcode mnemônico Significado JUMP +(X,0:19) se AC >= 0, prox. instr.: metade esq. de mem(x) JUMP +M(X,20:39) se AC >= 0, prox. instr.: metade dir. de mem(x) 15

16 Tabela: Instruções Aritméticas: opcode mnemônico Significado ADD M(X) AC AC + mem(x) ADD M(X) AC AC + mem(x) SUB M(X) AC AC mem(x) SUB M(X) AC AC mem(x) MUL M(X) AC:MQ MQ * mem(x) DIV M(X) MQ:AC AC / mem(x) LSH AC AC * 2 (shift esq.) RSH AC AC / 2 (shift dir.) Tabela: Instruções de Alteração de Endereço: opcode mnemônico Significado STOR M(X,8:19) Subst. o campo de endereço a esq. De mem(x) pelos 12 bits mais a dir. de AC STOR M(X,28:39) subst. o campo de endereço a dir. de mem(x) pelos 12 bits mais a esq. de AC 8.5. Comparações e Desvios Condicionais Os programas precisam ter a capacidade de testar seus dados e alterar a seqüência de execução de suas instruções com base nos resultados desses testes. Instruções em linguagem de máquina geralmente testam algum bit da máquina e desviam para um label (rótulo) de acordo com o valor do bit testado. Figura 12 - Uso de Instruções de Comparação e Desvio CMP SRC1, SRC2 JMP ADDR Jxx ADDR Liga os flags com base em SRC1 e SRC2 Desvia para ADDR Desvia condicionalmente para ADDR 16

17 8.6. Instruções de Chamadas a Procedimento Um procedimento (sub-rotina, método ou função) pode ser definido como um grupo de instruções que realizam uma determinada tarefa e que podem ser chamadas (invocadas) a partir de diversas posições de um programa (inclusive de outro procedimento ou do mesmo procedimento - recursão). Quando um procedimento é chamado através de instrução de chamada de procedimento (CALL), o programa é desviado para a primeira instrução do procedimento. Quando o procedimento termina sua tarefa o programa é desviado para a instrução imediatamente seguinte a instrução de sua chamada através de instrução de retorno de procedimento (RET). O endereço de retorno pode ser armazenado numa pilha, permitindo que um procedimento chame outro procedimento. Se o procedimento é terminado o endereço de retorno é desempilhado e colocado no PC. CALL ADDR Chama o procedimento em ADDR RET Retorno de procedimento 8.7. Controle de Loop Todos os esquemas de instruções para implementar um controle de loop baseiam-se em um contador que cresce ou decresce de uma constante, sempre que se completar uma passagem pelo loop. É possível dois tipos de implementação: com teste no final ou com teste no inicio do laço Entrada/Saída (E/S) Atualmente existem 3 esquemas diferentes para a realização de operações de E/S em computadores pessoais: 17

18 a. E/S programada com espera ocupada Mais simples de todos os métodos Comumente implementada nos microprocessadores de baixa performance (sistemas embarcados ou em sistemas em tempo real) Esses processadores tem, em geral, uma única instrução de saída. Na operação de E/S, um único caractere é transferido entre um registrador fixo do processador e o dispositivo de E/S selecionado na instrução. Existe um tempo de espera para que um bit de controle avise que um caractere pode ser lido ou escrito de, ou para, um dispositivo de E/S. Essa metodologia é conhecida como espera ocupada 1. Instruções IN e OUT são providas para ler e escrever nos registradores b. E/S dirigida por interrupção Neste método o processador apenas inicia uma operação de E/S com um dispositivo e sai do processo, levando o dispositivo a interrompê-lo ao término da operação. A desvantagem deste método é que existe a necessidade de se gerar uma interrupção para cada caractere transmitido, pois o processamento de interrupções é caro. c. E/S com acesso direto a memória (DMA) Neste esquema agrega-se um componente ao processo de E/S programada, um chip controlador conhecido como DMA (Direct Memory Access - Acesso Direto à Memória). Este dispositivo tem acesso direto ao barramento. O DMA recebe informações sobre o um endereço de memória, a quantidade de bytes a ser transferido, o número do dispositivo a ser acessado e a direção (leitura ou escrita) dos dados. Com essas informações o DMA é capaz de transferir dados entre a memória e o dispositivo de E/S, via barramento, sem intervenção do processador. Assim o processador fica livre para realizar outras operações Fluxo de Controle Entende-se por fluxo de controle a seqüência na qual as instruções são dinamicamente executadas. O fluxo de controle normal é alterado por desvios, chamadas de procedimentos, co-rotinas, armadilhas (traps) e interrupções FLUXO SEQÜENCIAL DE CONTROLE E DESVIOS A execução da maioria das instruções de uma máquina não altera o fluxo de controle. Em geral, o processador vai à memória para buscar a instrução armazenada no endereço seguinte àquela que acabou de ser executada. 1 Espera Ocupada: mantém o processador ocioso enquanto realiza operação de entrada ou saída. 18

19 PROCEDIMENTOS Uma chamada a procedimento altera o fluxo de controle exatamente do mesmo modo que um desvio. Mas, o procedimento, ao contrário do desvio, quando termina sua tarefa retorna o controle para o comando ou a instrução seguinte à instrução de chamada. Mais ainda, o corpo de um programa pode ser visualizado como uma instrução de nível mais alto. Um tipo especial de procedimento é o procedimento recursivo, um procedimento que chama a si próprio, de forma direta ou indireta, via uma cadeia de chamadas a outros procedimentos. Para implementar procedimentos recursivos precisamos de uma pilha para armazenar parâmetros e variáveis locais para cada chamada. Cada vez que o procedimento é chamado, um novo quadro de pilha é alocado para o procedimento, e esse quadro é colocado no topo da pilha CO-ROTINAS Considere um procedimento A, que chama outro procedimento B, como mostra a Figura abaixo. Esta figura ilustra o funcionamento de um procedimento A que chama B várias vezes. Neste caso, sempre que B é chamado ele é executado do início ao fim e depois o controle é retornado ao procedimento A (na instrução seguinte à chamada de B). Figura 13 - Co-rotinas Quando um procedimento é chamado, sua execução sempre começa por sua primeira instrução. 19

20 TRAPS Um trap é uma espécie de chamada a procedimento automático, iniciado sempre que ocorrer alguma condição específica causada pela execução de um programa. O Overflow é um bom exemplo de uma dessas condições. Quando há ocorrência de um trap o fluxo de controle é alterado para um endereço fixo de memória em vez de para a instrução seguinte. Nesse endereço fixo há uma instrução de desvio para um procedimento, conhecido como procedimento de tratamento do trap, que executa algumas ações convenientes, como, por exemplo, a impressão de uma mensagem de erro. Quando ocorre uma trap, o fluxo de controle é alterado para uma posição fixa da memória, que contém uma chamada para uma rotina de tratamento de trap. É importante saber que as traps são causadas pelo próprio programa. As traps são ditas síncronas, já que, na medida em que toda vez que um programa é executado com uma mesma entrada, a trap é gerada sempre no mesmo ponto INTERRUPÇÕES As interrupções são modificações no fluxo de controle de um programa causadas por um evento externo ao processamento do programa, usualmente eventos relacionados a operações de E/S. Como nos traps, as interrupções também param o processamento do programa atual e transferem o controle para uma rotina de tratamento de interrupção, que executa ações apropriadas. A diferença essencial entre um trap e uma interrupção é que os traps são síncronos e as interrupções assíncronas. Os traps acontecem sincronamente porque resultam da execução do próprio programa enquanto que as interrupções podem ser causadas por agentes externos (Exemplo: o apertar de uma tecla do teclado) Instruções mais comuns na família de processadores Intel Tabela: Instruções mais comuns na família Intel x86 Instrução Frequência para Inteiros Load 22% Desvio condicional 20% Comparação 16% Store 12% Add 8% And 6% Sub 5% trasf. registrador-registrador 4% call (chamada de procedimento) 1% return (retorno de procedimento) 1% Total 96% 20

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2004 ISA: Arquitetura de Conjunto de Instruções Roteiro Introdução Classificação de conjuntos de instruções Endereçamento

Leia mais

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

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. Unidade II Aula 1 Nível ISA Posicionado entre a microarquitetura e o SO Define a arquitetura (Conjunto de Instruções) É a interface entre o Software e o

Leia mais

CAPÍTULO 3 NÍVEL ISA. 3.1 Introdução ao Nível de Arquitetura do Conjunto de Instruções

CAPÍTULO 3 NÍVEL ISA. 3.1 Introdução ao Nível de Arquitetura do Conjunto de Instruções CAPÍTULO 3 NÍVEL ISA 3.1 Introdução ao Nível de Arquitetura do Conjunto de Instruções O Nível de Arquitetura do Conjunto de Instruções (ISA - Instruction Set Architecture) é a interface entre software

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32 Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32 Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 CHIP Ano MHz Transistors Mem 8086 1978 5

Leia mais

Linguagem de Montagem

Linguagem de Montagem Linguagem de Montagem Organização do PC Slides baseados em material associado ao livro Introduction to Assembly Language Programming, Sivarama Dandamudi 1 Processador Pentium Lançado em 1993 Versão melhorada

Leia mais

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

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

Leia mais

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I: Unidade: Unidade Lógica e Aritmética e Registradores Unidade I: 0 Unidade: Unidade Lógica e Aritmética e Registradores UNIDADE LÓGICA E ARITMÉTICA E REGISTRADORES O Processador é um chip com milhares de

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Nível da Arquitetura do Conjunto das Instruções

Nível da Arquitetura do Conjunto das Instruções Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Fluxo Seqüencial de Controle e Desvios (1) Fluxo de Controle: É a seqüência na qual instruções são dinamicamente executadas Isto

Leia mais

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional Capítulo 5 Nível ISA Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional Compatibilidade com os níveis ISA anteriores!! => Pressão

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza Software Básico Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo

Leia mais

28/3/2011. Família Intel 80x86. Arquitetura dos Processadores Intel 80x86

28/3/2011. Família Intel 80x86. Arquitetura dos Processadores Intel 80x86 Arquitetura de Computadores Arquitetura dos Processadores Intel 80x86 Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Família Intel 80x86 Ao se falar

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Linguagem de Montagem 2. Operações e Operandos

Linguagem de Montagem 2. Operações e Operandos Linguagem de Montagem 2 Operações e Operandos Revisão Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer Esse conjunto de instruções chamamos de algoritmo

Leia mais

x86 Assembly Mini-Course

x86 Assembly Mini-Course x86 Assembly Mini-Course Part 1 Bruno P. Evangelista bpevangelista@gmail.com Introdução Assembly é uma linguagem de programação de baixo nível em formato mnemonico Ela possibilita trabalhar diretamente

Leia mais

1. SINTAXE DA LINGUAGEM ASSEMBLY

1. SINTAXE DA LINGUAGEM ASSEMBLY 1. SINTAXE DA LINGUAGEM ASSEMBLY Antes de se escrever em assembly, é conveniente construir um fluxograma do programa. Um fluxograma não faz referência à linguagem a utilizar, pelo que pode ser utilizado

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 3.1 CPU: Unidade de Processamento Central Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Unidade de Processamento Central (CPU): Memória Principal Unidade de Processamento

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

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

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes

Leia mais

Evolução dos Processadores

Evolução dos Processadores Evolução dos Processadores Arquitetura Intel Arquitetura x86 Micro Arquitetura P5 P6 NetBurst Core Processador Pentium Pentium Pro Pentium II Pentium III Pentium 4 Pentium D Xeon Xeon Sequence Core 2 Duo

Leia mais

2. NÍVEL DE SISTEMA OPERACIONAL

2. NÍVEL DE SISTEMA OPERACIONAL 2. NÍVEL DE SISTEMA OPERACIONAL Nos períodos anteriores foram mostrados os níveis iniciais da organização de um computador, quando vimos em Circuitos Digitais os detalhes do Nível 0 (zero) de Lógica Digital.

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cap1.1 ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM 1. Conceitos básicos Bit = BInary digit = vale sempre 0 ou 1 elemento básico de informação Byte Word = 8 bits processados em paralelo (ao

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Linguagem de Montagem

Linguagem de Montagem Linguagem de Montagem Procedimentos e a Pilha Slides baseados em material associado ao livro Introduction to Assembly Language Programming, Sivarama Dandamudi 1 O que é a pilha? A pilha é uma estrutura

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Linguagem de programação Linguagem de Alto Nível próximo ao ser humano, escrita de forma textual. Ex: if (a==b) a=b+c; Linguagem de Montagem (Assembly) próximo à linguagem de máquina, escrita em códigos

Leia mais

Programação ao nível da máquina. Operações lógicas e aritméticas

Programação ao nível da máquina. Operações lógicas e aritméticas Programação ao nível da máquina Operações lógicas e aritméticas Operações lógicas e aritméticas Operações: aritméticas: add, sub, inc, dec, cmp lógicas: and, or, xor, not Realizadas pela ALU (Arithmetic

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

Unidade 11: A Unidade de Controle Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 11: A Unidade de Controle Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da Unidade de Controle. Bibliografia: - STALLINGS,

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: Organização Básica de um Computador Digital Introdução à Engenharia de Computação 2 Componentes de um Computador Computador Eletrônico Digital É um sistema

Leia mais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc. Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software Prof. MSc. Hugo Souza Continuando nossas aulas relativas ao Módulo 1, veremos a seguir

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

Estrutura de um Computador

Estrutura de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de

Leia mais

MODELO DE S.O. DEFINIÇÕES

MODELO DE S.O. DEFINIÇÕES MODELO DE S.O. Organização em camadas A: hardware B: núcleo (kernel) drivers, gerenciador de tarefas, controlador de interrupções, gerenciador de memória C: Gerenciador de arquivos e controle de I/O D:

Leia mais

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel O Nível ISA Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel Nível ISA (Instruction Set Architecture) Tipos de dados Inteiros (1, 2, 4 ou 8 bytes) Servem também para representar

Leia mais

Gerenciamento Básico B de Memória Aula 07

Gerenciamento Básico B de Memória Aula 07 BC1518-Sistemas Operacionais Gerenciamento Básico B de Memória Aula 07 Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Introdução Espaço de Endereçamento Lógico vs. Físico Estratégias

Leia mais

Sistemas Operacionais Aula 2

Sistemas Operacionais Aula 2 Sistemas Operacionais Aula 2 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE 1/38 O que

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins Organização de Computadores 1 1 - INTRODUÇÃO Prof. Luiz Gustavo A. Martins Arquitetura Define os elementos que impactuam diretamente na execução lógica do programa. Corresponde aos atributos visíveis veis

Leia mais

Projeto 1 - Bootloader

Projeto 1 - Bootloader Projeto 1 - Bootloader IF677 - Infra-Estrutura de Software Centro de Informática - UFPE Autor: Thyago Porpino (tnp) Objetivos Desmistificar o processo de inicialização de um computador. Entender como um

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes

Leia mais

Acetatos de apoio às aulas teóricas

Acetatos de apoio às aulas teóricas Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 24 de Outubro de 2004 Microprocessadores

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Universidade Federal do Pampa Campus-Bagé Arquitetura e Organização de Computadores Aula 2 Revisão de Conceitos e Introdução a Desempenho Prof. Julio Saraçol juliosaracol@gmail.com Slide1 Aula 2 REVISANDO

Leia mais

Arquitetura de Computadores. Linguagem de Máquina

Arquitetura de Computadores. Linguagem de Máquina Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

Leia mais

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

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander Objetivos Gerais Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2005 ISA Parte II: Arquiteturas-Exemplo Simuladores e Máquinas Reais Demonstrar os conceitos genéricos

Leia mais

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for FICHA DE TRABALHO Nº 1 MÓDULO: EQUIPAMENTOS ACTIVOS DE REDES DATA: / 03 / 2010 FORMADOR: EDUARDO SEQUEIRA FICHA LABORATORIAL 1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através

Leia mais

Algoritmos e Programação Aula 01 Introdução a Computação

Algoritmos e Programação Aula 01 Introdução a Computação Algoritmos e Programação Aula 01 Introdução a Computação Felipe S. L. G. Duarte Felipelageduarte+fatece@gmail.com Baseado no material do Prof. Luis Otavio Alvares e do Prof. Dr. Rodrigo Fernandes de Mello

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores Introdução à Arquitetura de Computadores Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Programando o computador IAS

Programando o computador IAS Programando o computador IAS Edson Borin e Rafael Auler 21 de março de 2012 1 Introdução O computador IAS foi um dos primeiros computadores a implementar o conceito do programa armazenado. Neste paradigma,

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 8: 04 de maio de 2010 1 Formatos de instruções MIPS 2 Endereçamento de operandos imediatos de 32 bits Endereçamento em desvios Modos de endereçamento do MIPS 3

Leia mais

Sistemas de Computação

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

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

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

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

Leia mais

IDENTIFICAÇÃO MANUTENÇÃO

IDENTIFICAÇÃO MANUTENÇÃO IDENTIFICAÇÃO MANUTENÇÃO ESTRUTURA DOS MICROS PADRÃO PC AULA 01 Sobre aula 1 Números binários e hexadecimais Dispositivos digitais e analógicos Circuitos integrados Estrutura dos micros padrão PC Micros

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

PROFESSOR ÉVERSON MATIAS DE MORAIS SISTEMAS OPERACIONAIS. Sistemas operacionais (so) Roteiro

PROFESSOR ÉVERSON MATIAS DE MORAIS SISTEMAS OPERACIONAIS. Sistemas operacionais (so) Roteiro PROFESSOR ÉVERSON MATIAS DE MORAIS Graduação em Processamento de Dados Especialização em Ciência da Computação Mestrado em Ciência da Computação SISTEMAS OPERACIONAIS Aula 1 Sistemas operacionais (so)

Leia mais

7. Instruções lógicas, de deslocamento e de rotação

7. Instruções lógicas, de deslocamento e de rotação 7. Instruções lógicas, de deslocamento e de rotação São instruções que permitem mudar o padrão de bits num byte (8 bits) ou numa palavra (16 bits). Linguagens de alto nível (exceto C) não permitem manipular

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

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

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

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: O Computador como uma Máquina Multinível (cont.) José Gonçalves - LPRM/DI/UFES Introdução à Engenharia de Computação Máquina Multinível Moderna Figura 1 Máquina

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Algoritmos DCC 119. Introdução e Conceitos Básicos

Algoritmos DCC 119. Introdução e Conceitos Básicos Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 2- Exemplo de Microarquitetura

Leia mais

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO O seguinte artigo apresenta uma UCP hipotética construída no software simulador DEMOWARE Digital Works 3.04.39. A UCP (Unidade Central de Processamento)

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES 2.1 Organização de um Computador Típico : Armazena dados e programas. Processador (CPU - Central Processing Unit): Executa programas armazenados na memória, interpretando

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

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

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

Leia mais

Laboratório de Sistemas Processadores e Periféricos

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

Leia mais

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO Engenharia Electrotécnica Microprocessadores 2ºano - 1ºsemestre Microprocessador 8085 Exercícios de Programação em Linguagem

Leia mais

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

LISTA DE EXERCÍCIOS - Nro. 01

LISTA DE EXERCÍCIOS - Nro. 01 Professor responsável: Fernando Santos Osório Semestre: 2010/2 Horário: Quarta 21h00 [Arquiteturas Clássicas] USP ICMC SSC SSC0510 - Arquitetura de Computadores E-mail: fosorio icmc.usp.br fosorio gmail.com

Leia mais

http://www.risesecurity.org Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@risesecurity.org

http://www.risesecurity.org Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@risesecurity.org Ataques Polimórficos Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@risesecurity.org A idéia - Detectores de intrusos utilizam-se de assinaturas de ataques para identificação dos mesmos - Sistemas

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

Leia mais

Conceitos básicos. Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas

Conceitos básicos. Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Conceitos básicos Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Um computador

Leia mais

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre? Introdução ULA: Faz os Cálculos UC: Controla a execução do programa (ordem de leitura das instruções) Traz dados da memória e dispositivos para os registradores Comanda a ULA Como isso tudo ocorre? A UNIDADE

Leia mais

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções (Aula 11) Visão Geral do Nível ISA 8 Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos:

Leia mais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Componentes básicos de um sistema computacional. Cap. 1 (Stallings) Componentes básicos de um sistema computacional Cap. 1 (Stallings) 1 Sistema de Operação Explora recursos de hardware de um ou mais processadores Provê um conjunto de serviços aos utilizadores Gerencia

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) O programa usa endereços virtuais É necessário HW para traduzir cada endereço virtual em endereço físico MMU: Memory Management Unit Normalmente

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

Arquitetura do 8086/8088

Arquitetura do 8086/8088 Arquitetura do 8086/8088 Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Copyright (c) Walter Fetter Lages p.1 Introdução

Leia mais

Modos de entrada/saída

Modos de entrada/saída Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Modos de entrada/saída Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01 Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções

Leia mais

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores UNIP - UNIVERSIDADE PAULISTA Arquitetura de computadores ORGANIZAÇÃO DE COMPUTADORES Bibliografia: MONTEIRO, M. A. Introdução à organização de computadores. 4 ed. RJ. LTC 2001. TANEMBAUM, A. S. Organização

Leia mais

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios 2 o semestre de 2014 - Turmas E/F Prof. Edson Borin Questão 1. Qual a diferença entre as formas de armazenamento de dados

Leia mais