Assembly Primeiros Passos

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

Download "Assembly Primeiros Passos"

Transcrição

1 Aula 5 Assembly Primeiros Passos 5.1 Objectivos Introdução Programação em linguagem assembly Modelo de programação Organização da memória Registos principais Grupos de instruções Regras de sintaxe O assemblador Características gerais Alguns comandos do assemblador da KEIL Formato das listagens Problemas Algumas resoluções Objectivos Familiarização com o modelo de programação simplificado da família 51, com a sintaxe da sua linguagem assembly e com alguns comandos do assemblador. 1

2 2 AULA 5. ASSEMBLY PRIMEIROS PASSOS 5.2 Introdução O paradigma do programa residente 1 obriga, como o próprio nome indica, a armazenar em memória um programa (conjunto de instruções) num formato que o microprocessador entenda. Essas instruções não são mais do que códigos binários que o microprocessador vai extraindo da memória, descodificando e executando. Um programa nessa forma diz-se estar em código máquina. Programar directamente em código máquina não é viável mesmo para programas pequenos. De facto, por simples inspecção constata-se que os programas em código máquina: a) são muito extensos, difíceis de perceber e depurar, b) não descrevem as tarefas a executar de um modo facilmente inteligível. Estes problemas podem ser parcialmente resolvidos atribuindo um nome simbólico (mnemónica) a cada código de instrução de modo a tornar o programa minimamente inteligível e mais fácil de escrever; chama-se a isso programar em linguagem assembly. Um exemplo ajudará a clarificar estes conceitos: considere-se um programa que adiciona o conteúdo da posição de memória 64 com o conteúdo da posição 65 colocando o resultado na posição de memória 66 e ignorando um eventual transporte (carry). Numa descrição de alto nível, considerando a memória representada pelo array mem[ ], o que este programa irá fazer é: mem[66] = mem[64] + mem[65] No caso particular da família 51 as operações aritméticas envolvem obrigatoriamente um registo o registo acumulador (A) que, antes da operação, guarda um dos operandos e depois recolhe o resultado. Tendo em conta esta restrição o programa poderá ser: 1. copiar para o acumulador o conteúdo da posiç~ao de memória com o endereço 64, 2. adicionar ao acumulador o conteúdo da posiç~ao de memória com o endereço 65 (ficando o resultado no acumulador), 3. copiar para a posiç~ao de memória com o endereço 66 o valor que ficou no acumulador. Na figura 5.1 pode ver-se a representação deste programa em código máquina e em linguagem assembly: consta de três instruções e ocupa seis bytes. código máquina E F5 42 }{{} Códigos linguagem assembly MOV A,64 ADD A,65 MOV 66,A }{{} Instruções Figura 5.1: Representação em código máquina e linguagem assembly 1 Cfr. aulas teóricas da primeira semana.

3 5.3. PROGRAMAÇÃO EM LINGUAGEM ASSEMBLY 3 De acordo com o estabelecido pelo fabricante 2 os códigos E5h, 25h e F5h representam, respectivamente, as três instruções referidas anteriormente e os códigos 40h, 41h e 42h representam os endereços de memória envolvidos na operação; note-se a necessidade de os converter para hexadecimal quando se programa directamente em código máquina. 5.3 Programação em linguagem assembly A tradução de um programa escrito em linguagem assembly para os códigos máquina correspondentes pode ser feita à mão, mediante uma tabela de conversão mas habitualmente é feita de forma automática recorrendo a uma ferramenta própria o assemblador fornecida (pelo menos em versões simples) gratuitamente pelo fabricante. A programação em linguagem assembly tem vantagens e desvantagens intrínsecas à própria linguagem. Como vantagens registe-se que: A existência de assembladores para todos os microprocessadores, muitos deles gratuitos ou de domínio público, faz com que seja sempre possível programar em assembly, qualquer que seja o microprocessador escolhido; o mesmo não acontece com linguagens de alto nível, onde nem sempre é possível encontrar um compilador adequado para um dado microprocessador. A facilidade de optimização do código permite aproveitar ao máximo as características particulares do hardware onde o programa vai ser executado, conseguindo deste modo melhores resultados quer em tempo de execução quer em tamanho de código gerado. E como desvantagens: A extrema simplicidade das instruções é responsável pela habitual desproporção entre as tarefas que o microprocessador é chamado a executar e o seu conjunto de instruções. Isto obriga à decomposição de cada tarefa a executar num conjunto de operações elementares que, além de ser um processo demorado e sujeito a erros, dificulta a estruturação dos programas. A necessidade de conhecer os detalhes internos de um microprocessador, em particular tudo o que se refere aos registos de trabalho disponíveis, registos privilegiados ou especiais, registo de estado e conjunto de instruções, tem como consequência uma reduzida portabilidade dos programas. A tendência actual em ambiente comercial é a favor de uma programação mista, usando principalmente linguagens de mais alto nível (C em particular) e recor- 2 Foi a Intel que originalmente desenvolveu a família 51 embora actualmente existam vários fabricantes com produtos compatíveis. A Philips Semiconductors é, actualmente, o fabricante com a maior gama de produtos compatíveis com esta família.

4 4 AULA 5. ASSEMBLY PRIMEIROS PASSOS rendo à linguagem assembly apenas em rotinas onde a eficiência do código seja o objectivo principal. Esta tendência explica-se por três motivos: a pressão do mercado obriga a encurtar o tempo de desenvolvimento e a aumentar a facilidade de manutenção do código, existem actualmente compiladores para a maioria dos microprocessadores, alguns até de domínio público, capazes de gerar código optimizado, os avanços na microelectrónica permitem que a rapidez de execução se consiga facilmente por aumento da frequência de funcionamento. Em ambientes académicos, especialmente se o objectivo é estudar o funcionamento interno de um microprocessador, o respectivo assembly é a linguagem mais adequada pelo que será intensivamente utilizada nesta disciplina. Em disciplinas que abordem de novo este assunto mas na perspectiva do desenvolvimento de aplicações para microprocessadores, será natural que se utilizem linguagens de mais alto nível. 5.4 Modelo de programação O modelo de programação de um microprocessador descreve os recursos disponíveis para o programador: organização da memória, registos de trabalho, registos especiais, eventuais agrupamentos de registos, instruções e modos de endereçamento disponíveis, etc. Para começar a escrever pequenos programas basta conhecer a organização da memória, os principais registos e os diferentes grupos de instruções. As secções seguintes apresentam estes componentes do modelo de programação para o caso particular da família Organização da memória Do ponto de vista da programação e de uma forma extremamente resumida podemos considerar que a família 51 permite o acesso a três zonas de memória distintas memória de dados interna (MDI), memória de dados externa (MDE) e memória de programas (MP) que poderá ser interna ou externa ao micro. A figura 5.2, adaptada da folha de características do componente [?], indica a capacidade de cada uma destas zonas para o caso do 89C51. Este elemento da família 51 possui internamente 128 bytes de RAM (que funciona como MDI) e pode endereçar até 64 kbytes de memória de dados externa adicional. Para armazenar o programa possui internamente 4 kbytes de Flash ROM que funciona como memória de programas. Alternativamente pode endereçar até 64 kbytes de memória de programas externa. Na maioria das aplicações a distinção entre memória de programas interna e externa é irrelevante para o programador pois ela é feita por hardware. No en-

5 5.4. MODELO DE PROGRAMAÇÃO 5 64 kbytes 60 kbytes 128 Bytes 4 kbytes MDI MDE MP Figura 5.2: Organização da memória do 89C51 tanto, na memória de dados a distinção é feita por software, existindo instruções específicas para lidar com uma e com outra Registos principais A arquitectura base da família 51 disponibiliza um número apreciável de registos dos quais se destacam os seguintes: Registos de trabalho R0 a R7, Registos privilegiados A (acumulador) e B, Registo apontador de 16 bits DPTR (data pointer), Registo de estado PSW (program status word). Os registos A e B são privilegiados no sentido de que existem algumas instruções que só podem ser executadas neles, por exemplo as operações aritméticas só podem ser efectuadas sobre o acumulador. O registo apontador de 16 bits é utilizado para aceder à memória externa. O registo de estado (PSW) dá, entre outras, indicações sobre a paridade do valor contido no acumulador e se houve ou não transporte na última operação aritmética efectuada; existem instruções específicas para testar estas condições Grupos de instruções As instruções disponíveis na família 51 podem dividir-se em cinco grupos consoante a sua função: 1. Instruções de movimentação de dados 2. Instruções aritméticas 3. Instruções lógicas (processamento de bytes) 4. Instruções de salto e chamada de subrotinas 5. Instruções booleanas (processamento de bits)

6 6 AULA 5. ASSEMBLY PRIMEIROS PASSOS As instruções de movimentação de dados permitem copiar valores de um registo para outro, de um registo para memória e de memória para um registo. As instruções aritméticas permitem efectuar as quatro operações aritméticas elementares considerando ou não a existência de eventuais transportes. É sempre necessário recorrer ao registo acumulador. As instruções lógicas permitem efectuar operações lógicas elementares AND, OR, XOR e NOT, sempre bit a bit sobre operandos de um byte, assim como rotações de bits para a esquerda ou para a direita. As instruções de salto e chamada de subrotinas permitem alterar a ordem de execução de um programa de forma condicional ou incondicional. As instruções booleanas permitem manipular bits individualmente. A maior parte delas obriga a utilizar a flag CY (carry) que funciona para o processamento booleano como o acumulador para o processamento aritmético e lógico. bit do psw O resumo de instruções [2] ou [1, páginas ] dá uma panorâmica geral das instruções disponíveis pelo que constitui um elemento de consulta indispensável. O livro recomendado [4, secção 8.7] ou o manual de programação editado por um dos fabricantes desta família [1] constitui a principal referência para estudo deste assunto. 5.5 Regras de sintaxe A forma geral de uma instrução assembly da família 51 é mnemónica [operando1[,operando2[,operando3]]] isto é, cada instrução é constituída por uma mnemónica eventualmente seguida de um, dois ou três operandos que podem ser: um número, representando um endereço de memória, um número, representando uma constante (se precedido pelo carácter #), o nome de um registo, o nome de um registo a funcionar como apontador (se precedido pelo Estas regras de sintaxe entendem-se melhor com a apresentação de exemplos. Nota: Tudo o que aparece após o carácter ; é considerado comentário até ao fim da linha. Assegure-se que entende completamente todas as instruções apresentadas no segmento de programa seguinte:

7 5.6. O ASSEMBLADOR 7 ; Copia para o registo R5... MOV R5,40h ;...o conteúdo da posiç~ao de memória 64. MOV R5,#40h ;...o valor 64. ; Coloca no registo DPTR o valor (C350h). MOV DPTR,#50000 ; Adiciona ao acumulador (acc) o registo R7. ADD A,R7 ; O resultado fica em acc. ; Faz o OU lógico (bit a bit) do acc com o valor F0h. ORL A,# b ; O resultado fica em acc. ; Copia para a posiç~ao de memória 65 o que está em acc. MOV 65,A ; Continua a execuç~ao do programa no endereço 4358h. LJMP 4358h ; Copia para o acumulador... MOV A,R0 ;...o que está em R0 MOV A,@R0 ;...o conteúdo da posiç~ao de memória ; de dados interna apontada por R0. Note-se que dos registos de trabalho R0 a R7, apenas R0 e R1 podem assumir o papel de apontadores. No manual de programação [1] a designação genérica Rn refere-se aos registos R0 a R7 mas a designação Ri refere-se apenas aos registos R0 e R1. A designação genérica direct refere-se a um endereço da memória de dados interna. 5.6 O assemblador Características gerais Uma ferramenta essencial quando se programa em linguagem assembly é o assemblador. Os primeiros assembladores pouco mais faziam do que a tradução para código máquina mas actualmente têm muitas outras capacidades permitindo nomeadamente: atribuir nomes simbólicos a endereços de memória, variáveis e grupos de instruções, trabalhar em diversas bases de numeração bem como converter caracteres nos seus códigos ASCII, efectuar cálculos aritméticos simples com constantes ou nomes simbólicos, definir os endereços de memória onde o programa e os dados irão ser armazenados, reservar áreas de memória para armazenamento temporário de informação, configurar a geração de código máquina e o formato das listagens produzidas, construir e utilizar bibliotecas de funções, ajudando a programar de forma modular e a reutilizar código já escrito em assembly ou noutras linguagens.

8 8 AULA 5. ASSEMBLY PRIMEIROS PASSOS Existem actualmente inúmeros assembladores comerciais e de domínio público para a família 51. Para o sistema operativo Windows um dos melhores é o da KEIL Software ( disponível em versão de demonstração, mas 90% funcional, no CD que acompanha o livro recomendado. Este assemblador está integrado num ambiente gráfico, o µvision-51, que inclui também um compilador de C e facilita muito o trabalho de edição dos programas. Um assemblador tão bom como o anterior mas de domínio público, disponível em fonte para Windows e para Linux, é o AS8051 (shop-pdp.kent.edu/ashtml/asxxxx.htm) utilizado no pacote SDCC Small Device C Compiler um compilador de C também de domínio público (scdd.sourceforge.net). Nas aulas serão utilizadas as versões de demonstração dos produtos da KEIL Alguns comandos do assemblador da KEIL Indicações gerais Não há distinção entre maiúsculas e minúsculas. Qualquer texto precedido do carácter ; é considerado comentário; um comentário prolonga-se sempre até ao fim da linha. O fim do código fonte é indicado pelo comando END; qualquer texto que apareça depois desse comando é ignorado pelo assemblador. Nomes simbólicos e operadores simples Uma das grandes vantagens de utilizar um assemblador é a possibilidade de poder definir nomes simbólicos. Para as constantes essa definição faz-se com os comandos EQU e DB e para as variáveis com o comando DS cuja sintaxe se depreende dos exemplos apresentados de seguida, adaptados de um programa para controlo de uma máquina de encher e empacotar garrafas: ; === Definiç~ao de Constantes ========================================= Garrafas EQU 12 ; Número de garrafas por caixa tempo equ 250 ; Tempo de engarrafamento (ms) V1 equ 8000h ; Endereço de E/S da válvula 1 V2 EQU V1+1 ; Endereço de E/S da válvula 2 V3 EQU V1+2 ; Endereço de E/S da válvula 3 init equ b ; Comando de inicializaç~ao prompt equ > ; Código ASCII do prompt do sistema CR EQU 0Ah ; Carriage return (ASCII) LF EQU 0Dh ; Line feed (ASCII) ; === Mensagens do sistema ============================================ Pin: DB CR,LF,"Introduza o seu PIN: " ; Reserva e preenche MP ; === Variáveis ======================================================= Contador: DS 1 ; Reserva um byte em MD Total: DS 2 ; Reserva dois bytes em MD

9 5.6. O ASSEMBLADOR 9 O comando DS apenas reserva espaço enquanto que o comando DB reserva e preenche; note-se a necessidade de : nestes comandos. A diferença entre DB e EQU é que o primeiro não gera qualquer código máquina enquanto o segundo preenche a memória com os valores indicados. A definição de nomes simbólicos para endereços de programa é feita implicitamente ao colocar uma etiqueta antes da instrução que se quer referenciar: mov cont,#100 ; Valor inicial do contador loop: dec cont ; Decrementa mov a,cont jnz loop ; Repete enquanto A n~ao for zero Segmentos Ao programar em assembly o programador pode escolher os endereços onde ficará o programa e onde ficarão os dados. Para isso é necessário definir segmentos de memória. Os segmentos podem ser absolutos ou recolocáveis. Os primeiros serão utilizados desde já enquanto que os segundos só nas próximas aulas. Um segmento absoluto é uma zona de memória com endereço inicial fixo. São definidos recorrendo, entre outros, aos comandos CSEG (para segmentos em memória de programa) e DSEG (para segmentos em memória de dados interna). A sintaxe destes comandos depreende-se do exemplo apresentado: ; === Variáveis ======================================================== DSEG AT 40h ; Segmento em MDI com início em 40h total: DS 2 ; Reserva dois bytes contador: DS 1 ; Reserva um byte ; === Programa principal =============================================== CSEG AT 0000h ; Segmento em MP com início em 0000h... ; --- Rotinas de E/S CSEG AT 007Fh ; Segmento em MP com início em 007Fh... ; === Mensagens do sistema ============================================= CSEG AT 0100h ; Segmento no endereço 0100h da MP Pin: DB CR,LF,"Introduza o seu PIN: " ; Preenche 23 bytes No exemplo apresentado, a variável total ocupará os endereços 40h e 41h da memória de dados e a variável contador ocupará o endereço 42h. O programa principal começa no endereço 0000h da memória de programas e há um conjunto de rotinas que ocupam uma zona com início em 007Fh da memória de programas. No endereço 0100h da memória de programas começam as mensagens do sistema.

10 10 AULA 5. ASSEMBLY PRIMEIROS PASSOS Formato das listagens O assemblador da KEIL permite definir vários parâmetros de formatação para as listagens que gera. Se nada for dito em contrário, as listagens são formatadas de modo a evidenciar o endereço de memória em que cada instrução começa e os códigos gerados para cada instrução. Mais uma vez um exemplo é elucidativo: LOC OBJ LINE SOURCE dseg at 40h cont: ds cseg at mov cont,# loop: dec cont 0005 E540 7 mov a,cont FA 8 jnz loop 9 10 end Examinando a 1 a coluna da listagem (endereços) facilmente se percebe que a variável cont (linha 2) ficou colocada no endereço 40h e examinando a 2 a coluna (códigos gerados) facilmente se vê que a primeira instrução (linha 5) gerou três bytes o primeiro é o código da instrução propriamente dita, o segundo o endereço da variável (40h) e o terceiro o valor que nela é colocado (64h=100). 5.7 Problemas A única maneira de aprender a programar em assembly é escrever programas em assembly! Apresentam-se de seguida alguns problemas básicos que podem ser resolvidos recorrendo a instruções aritméticas, lógicas e de movimentação de dados. Deverá ter sempre à mão o resumo das instruções. 1. Quais as sequências de instruções necessárias para efectuar as seguintes operações: (a) Copiar o conteúdo do registo R5 para R3. ( (b) Trocar entre si os conteúdos dos registos R5 e R3 sem estragar mais nenhum registo. ( ) 2. Apresente programas que, de dois modos diferentes, neguem o conteúdo da variável montante guardada em memória de dados interna no endereço 50. Em ambos os casos o resultado deve ficar na variável jusante guardada no endereço seguinte. Para cada caso considere duas alternativas: (a) É necessário preservar a variável montante. (b) Não é necessário preservar a variável montante. é impossível copiar directamente de um registo para outro que reparar utilizar a instrução xch )

11 5.7. PROBLEMAS 11 ( a máscara FFh ) pode complementar-se o valor ou fazer uma operação XOR com 3. Traduza à mão, para código máquina, as soluções do problema anterior. 4. Apresente três modos diferentes de multiplicar por 2 o valor da variável velocidade guardada em memória de dados interna num endereço à escolha. ( ) 5. Considerando que mem[ ] representa a memória de dados interna, escreva programas para efectuar as seguintes operações: (a) mem[22] = mem[21] mem[20]. (b) mem[21] = 3 mem[20], supondo que mem[20] é inferior a 86. Porquê? 6. Sabendo que a variável minutos pode variar entre 0 e 200, escreva um programa para efectuar a operação segundos = 60 minutos, considerando que as variáveis: (a) estão guardadas em endereços de memória de dados interna à escolha; (b) estão guardadas em endereços de memória de dados externa: i. inferiores a 100h; ii. superiores ou iguais a 100h. à esquerda. própria, multiplicar por dois, fazer uma rotação de um bit si a adicionar Nos problemas seguintes, as variáveis são guardadas em endereços de memória de dados interna à escolha. 7. Escreva um programa que calcule x = x + y para variáveis de 16 bits. 8. Escreva um programa que calcule x = x 2 considerando um valor inicial de x inferior a Escreva um programa que calcule x = x (complemento para 2) considerando que: (a) x é de 8 bits (b) x é de 16 bits 10. Escreva um programa que copie os 4 bits mais significativos de x para os 4 bits menos significativos de y, considerando que são variáveis de 8 bits. Os 4 bits mais significativos de y devem ser colocados a zero. 11. Considere que temptot contém a soma das medições de temperatura efectuadas em 16 pontos diferentes de uma estufa. Apresente 3 modos diferentes de calcular a temperatura média no interior da estufa. Suponha que está a trabalhar com variáveis de 8 bits e o resultado é guardado em tempmed. ( ). dividir por 16, rodar à direita quatro bits ou trocar as metades

12 12 AULA 5. ASSEMBLY PRIMEIROS PASSOS 5.8 Algumas resoluções A título excepcional, por ser a primeira vez que se resolvem problemas deste tipo, apresentam-se algumas soluções completas. LOC OBJ LINE SOURCE 1 ;====================================================================== 2 ; Possíveis resoluç~oes para alguns dos problemas 3 ;====================================================================== 8 9 ;-[1.b] CD 10 xch a,r5 ; Estraga acc mas acaba 0003 CB 11 xch a,r3 ; por recuperar o 0004 CD 12 xch a,r5 ; seu valor inicial ;-[2.a] FF 17 mask equ b ; Negar todos os bits dseg at montante: ds jusante: ds cseg at E mov a,montante ; Extrai valor 0002 F4 25 cpl a ; Complementa 0003 F mov jusante,a ; Guarda resultado mov jusante,montante ; Copia FF 29 xrl jusante,#mask ; Complementa ;-[4 (parcial)] dseg at C 34 velocidade: ds cseg at 100h 0100 E53C 37 mov a,velocidade C 38 add a,velocidade 0104 F53C 39 mov velocidade,a E53C 41 mov a,velocidade 0108 C3 42 clr c rlc a 010A F53C 44 mov velocidade,a ;-[5.a] C E mov a,21 010E C3 49 clr c 010F subb a, F mov 22,a ;-[5.b] E mov a, F mov b,# A4 56 mul ab 0119 F mov 21,a ;-[6 (parcial)] dseg at segundos: ds minutos: ds cseg at 200h 0200 E mov a,minutos F03C 67 mov b,# A4 68 mul ab 0206 F mov segundos,a F mov segundos+1,b ;-[7]

13 5.8. ALGUMAS RESOLUÇÕES vars segment data 75 prog segment code rseg vars x: ds y: ds rseg prog 0000 E500 F 82 mov a,x F 83 add a,y 0004 F500 F 84 mov x,a 0006 E500 F 85 mov a,x F 86 addc a,y+1 000A F500 F 87 mov x+1,a ;-[8] C E500 F 90 mov a,x 000E 8500F0 F 91 mov b,x 0011 A4 92 mul ab 0012 F500 F 93 mov x,a F000 F 94 mov x+1,b ;-[9.a] E500 F 98 mov a,x 0019 F4 99 cpl a 001A add a,#1 001C F500 F 101 mov x,a ;-[9.b] E E500 F 105 mov a,x 0020 F4 106 cpl a add a,# F500 F 108 mov x,a 0025 E500 F 109 mov a,x F4 110 cpl a addc a,#0 002A F500 F 112 mov x+1,a ;-[10] C E500 F 116 mov a,x 002E C4 117 swap a 002F 540F 118 anl a,# b 0031 F500 F 119 mov y,a ;-[11] valores segment data 124 rotinas segment code rseg valores temptot: ds tempmed: ds rseg rotinas 0000 E500 F 131 mov a,temptot F mov b,# div ab 0006 F500 F 134 mov tempmed,a E500 F 136 mov a,temptot 000A 54F0 137 anl a,# b 000C rr a 000D rr a 000E rr a 000F rr a 0010 F500 F 142 mov tempmed,a E500 F 144 mov a,temptot 0014 C4 145 swap a F 146 anl a,# b 0017 F500 F 147 mov tempmed,a end

14 14 AULA 5. ASSEMBLY PRIMEIROS PASSOS

15 Referências [1] Philips semiconductors; 80C51 family programmer s guide and instruction set; Setembro de [2] Ferreira, José Manuel; Resumo das instruções do 80C51 ; FEUP, Setembro de [3] Atmel Wireless and Microcontrollers; 89C51 data sheet; Setembro de [4] Ferreira, José Manuel; Introdução ao Projecto com Sistemas Digitais e Microcontroladores; FEUP Edições, 1998, ISBM

Assembly Saltos e Subrotinas

Assembly Saltos e Subrotinas Aula 6 Assembly Saltos e Subrotinas 6.1 Objectivos......................... 1 6.2 Introdução........................ 1 6.3 Ciclos e outras estruturas de controlo........ 2 6.3.1 Ciclos..........................

Leia mais

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

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

Leia mais

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

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários

Leia mais

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

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Como conhecer/estudar um Microprocessador/Microcontrolador As 5 partes fundamentais Programação de Microprocessadores Prof: Evandro L. L. Rodrigues Arquitetura

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

5 Programação modular em Linguagem Assembly

5 Programação modular em Linguagem Assembly 5 Programação modular em Linguagem Assembly (Família 51) [email protected] Conteúdo 1 Objectivos 1 2 Introdução 1 Nomes externos 2 4 Problemas 4 5 Soluções 6 1 Objectivos Consolidação de conhecimentos sobre

Leia mais

Familiarização com o ambiente de desenvolvimento da Keil Software. (uvision 51 e dscope 51)

Familiarização com o ambiente de desenvolvimento da Keil Software. (uvision 51 e dscope 51) Familiarização com o ambiente de desenvolvimento da Keil Software (uvision 51 e dscope 51) [email protected] Setembro 2005 Conteúdo 1 Objectivos 2 2 Introdução 2 3 O ambiente de desenvolvimento da Keil

Leia mais

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

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

Leia mais

Símbolos e abreviaturas utilizadas na descrição das instruções

Símbolos e abreviaturas utilizadas na descrição das instruções Símbolos e abreviaturas utilizadas na descrição das instruções acumulador registo A addr endereço de 16 bits data quantidade de 8 bits data 16 quantidade de 16 bits byte 2 segundo byte da instrução byte

Leia mais

CONJUNTO DE INSTRUÇÕES

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

Leia mais

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

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

EEC2104 Microprocessadores

EEC2104 Microprocessadores EEC2104 Microprocessadores Edição 2005/2006 Arquitectura de um microprocessador básico (Qual o hardware necessário para executar instruções e poder chamar subrotinas?) Uso da memória Guardar instruções

Leia mais

Aula 10 Microcontrolador Intel 8051 Parte 2

Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 INTROD À ORGANIZAÇÃO DE COMPUTADORES Prof Dr Marcelo A C Vieira SEL 415 Mapeamento das memórias internas Memória de dados interna (RAM) n 8051

Leia mais

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do 805 satoutfpredubr Sobre o material Essas transparências foram baseadas em materiais elaborados

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

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

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão Microcontroladores do 805 Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão Introdução Os microcontroladores: Têm instruções limitadas Precisam tratar os dados da forma correta

Leia mais

Programação em Linguagem Assembly (Saltos e Subrotinas)

Programação em Linguagem Assembly (Saltos e Subrotinas) Programação em Linguagem Assembly (Saltos e Subrotinas) João Paulo Sousa [email protected] Setembro 2005 Conteúdo 1 Objectivos 2 2 Introdução 2 3 Ciclos e estruturas de controlo 2 3.1 Ciclos for()............................................

Leia mais

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

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético Microprocessadores I Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético 4.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

Processador. Processador

Processador. Processador Departamento de Ciência da Computação - UFF Processador Processador Prof. Prof.Marcos MarcosGuerine Guerine [email protected] [email protected] 1 Processador Organização básica de um computador: 2 Processador

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

TASM DEFINIÇÃO DE UMA NOVA TABELA DE CONVERSÃO

TASM DEFINIÇÃO DE UMA NOVA TABELA DE CONVERSÃO TASM O TASM (Telemark Assembler) é um assemblador baseado em tabelas de conversão que corre em MS-DOS ou Linux. Código Assembly escrito de acordo com uma determinada sintaxe pode ser compilado usando o

Leia mais

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk Assembly 8051 Num sistema microprocessado, geralmente, não existe um sistema operacional; O programa desenvolvido pelo programador deve cuidar tanto da lógica do programa, bem como da configuração e acesso

Leia mais

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

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III Orientações: Esta lista de Exercícios deve ser entregue juntamente com a

Leia mais

FORMATO DO PROGRAMA FONTE

FORMATO DO PROGRAMA FONTE FORMATO DO PROGRAMA FONTE As declarações do programa fonte são constituídas pelos seguintes campos: 1) Campo do Rótulo: o primeiro caractere deve ser alfabético

Leia mais

Solução Lista de Exercícios Processadores

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

Leia mais

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

Aula 14 Funcionamento de Processadores (Visão específica) Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Constituída de seqüência de zeros (0) e uns (1) Cada instrução em ASSEMBLY constitui-se em um mnemônico (uma forma fácil de se lembra) de uma

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar

Leia mais

MATA49 Programação de Software Básico

MATA49 Programação de Software Básico MATA49 Programação de Software Básico Leandro Andrade leandrojsadcc.ufba.br PROF. LEANDRO ANDRADE 1 Introdução a linguagem de montagem com Nasm PROF. LEANDRO ANDRADE 2 Sintaxe básica Não é sensível

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

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

Introdução à Organização de Computadores. Aula 8 SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

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

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

Leia mais

Família 8051 (introdução) 2011/1

Família 8051 (introdução) 2011/1 Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama

Leia mais

EXERCÍCIOS RESOLVIDOS

EXERCÍCIOS RESOLVIDOS EXERCÍCIOS RESOLVIDOS Modos de endereçamento direto ; inclui no programa assembly o arquivo (REG51.inc) ORG 0000H ; o programa inicia na linha 0000H da EPROM MOV A,#01010101B ; carrego no ACC por binário

Leia mais

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

NEANDERWIN. Algumas características do processador Neander são: NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui

Leia mais

Organização e Arquitetura de Computadores I

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

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1 MICROPROCESSADORES E MICROCONTROLADORES PROVA 1 1. A expressão a seguir pode ser usada para avaliar o desempenho de um microprocessador. Comente cada um dos termos dessa expressão. Valor: 2,5 Tempo de

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

Conjunto de Instruções (ISA) I

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

Leia mais

Microprocessadores. Organização de Memória

Microprocessadores. Organização de Memória Microprocessadores Organização de Memória Prof. Clayrton Henrique rev. 01 fev. 2016 Roteiro Introdução; RAM Interna; Parte de Dados; Parte de SFR; Registradores; Assembly; Referências... 2 Introdução RAM

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Conhecida pelo PROCESSADOR Conhecida pelo Usuário COMPILADOR LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY 2 INSTRUÇÕES EM ASSEMBLY Para programar

Leia mais

Conjunto de Instruções (ISA) II

Conjunto de Instruções (ISA) II Conjunto de Instruções (ISA) II José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-18 José Costa (DEI/IST) Conjunto de Instruções

Leia mais

Organização de Memórias

Organização de Memórias Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1 MICROPROCESSDORES E MICROCONTROLDORES PROV 1 - Solução da Versão 1 (o final são apresentadas as soluções da questão 4 das versões 2 e 3) 1. Na comparação entre as arquiteturas CISC e RISC, faça comentários

Leia mais

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Apresentação do curso Critério de avaliação Média final = 0.8 * MP + 0.2 * ME onde MP = (P1 + P2) / 2 e ME = Notas

Leia mais

14/3/2016. Prof. Evandro L. L. Rodrigues

14/3/2016. Prof. Evandro L. L. Rodrigues SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores

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

Linguagem de Montagem do NeanderX

Linguagem de Montagem do NeanderX Universidade Estácio de Sá Curso de Informática Arquitetura de Computadores Linguagem de Montagem do NeanderX 11.5.2006 Geração Programa Executável Linguagens de Programação As linguagens de programação

Leia mais

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D -  26/04/ :56 1/16 PRÁTICAS Microcontroladores: (LT36D) Prof: DaLuz 1/16 Laboratório 01: - Laboratórios Instrução / diretiva (ORG e END), exemplos: ORG 0000h posiciona o código na linha 0000h da EPROM ORG 0100h posiciona

Leia mais

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES Prof. Juliana Santiago Teixeira [email protected] INTRODUÇÃO INTRODUÇÃO O processador é o componente vital do sistema de computação, responsável

Leia mais

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções

Leia mais

Organização Funcional

Organização Funcional Organização Funcional Modelo de Arquitectura de Von Neuman 26 Organização Funcional Modelo de Arquitectura de Von Neuman CPU Unidade Central de processamento (central process unit) Onde tudo se passa ;

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

SEBENTA INTRODUÇÃO Á ALGORITMIA

SEBENTA INTRODUÇÃO Á ALGORITMIA SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar

Leia mais

MÓDULO. Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação M 02

MÓDULO. Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação M 02 MÓDULO M 02 Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação OBJETIVOS Compreender o significado dos bits de estado no registrador de flags do 8086/88; Conhecer as representações

Leia mais

Conjunto de Instruções do 8051

Conjunto de Instruções do 8051 Apêndice B Conjunto de Instruções do 8051 A.G. e E.T.M. / 2001 (revisão) O 8051 apresenta 111 tipos de instruções, sendo 49 de um byte, 45 de dois bytes e 17 de três bytes. Levando-se em contas as variações

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha [email protected] Conceitos básicos Linguagem/código

Leia mais

Unidade de Controle. UC - Introdução

Unidade de Controle. UC - Introdução Unidade de Controle Prof. Alexandre Beletti (Cap. 3 Weber, Cap.8 Monteiro, Cap. 10,11 Stallings) UC - Introdução Para gerenciar o fluxo interno de dados e o instante em que ocorrem as transferências entre

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Motor de Passo e Display LCD Alunos: Matrícula:

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha [email protected] Material do prof. Sílvio Fernandes - UFERSA

Leia mais

ção de Computadores I

ção de Computadores I Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores I Aula 2 1. Projeto da Arquitetura

Leia mais

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários

Leia mais

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 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

Leia mais

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

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

Leia mais

MICROPROCESSADORES 2º TESTE - A

MICROPROCESSADORES 2º TESTE - A MICROPROCESSADORES 2º TESTE - A Ano Lectivo: 2005/2006 Data: 8 de Maio de 2006 Ano Curricular: 1º Ano 2º Semestre Duração: 2h00 INFORMAÇÕES GERAIS 1. Identifique todas as folhas do enunciado com nome e

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

9. Software de Sistema - Montadores (capítulo 9 do livro texto)

9. Software de Sistema - Montadores (capítulo 9 do livro texto) 9. Software de Sistema - Montadores (capítulo 9 do livro texto) Compiladores Programas de Aplicação Depuradores Usuário Processador de Macro Montador Programas Utilitários Ligadores Carregadores Sistema

Leia mais

Classificação das linguagens de programação

Classificação das linguagens de programação Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra PROCESSAMENTO 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

Leia mais

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

Aula 5: Introdução a Arquitetura do Microcontrolador 8051 Microprocessadores - 2013-1 06/05/2013 Aula 5: Introdução a Arquitetura do Microcontrolador 8051 Professor: Eraldo Silveira e Silva [email protected] 1 Objetivos da Aula apresentar as principais características

Leia mais

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 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

Leia mais

NEANDERWIN - Resumo operacional

NEANDERWIN - Resumo operacional NEANDERWIN - Resumo operacional Sumário Listagem geral das instruções... 2 NOP... 2 LDI imed... 2 STA ender... 2 LDA ender... 3 ADD ender... 3 SUB ender... 3 OR ender... 4 AND ender... 4 NOT... 4 JMP ender...

Leia mais

Execução detalhada de instruções

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 ------------------------------------------------------------------------------------------------------------------------------------------------

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo Arquitetura de Von Neumann: Conceito de programa armazenado; Dados

Leia mais

1. Instruções de Desvio

1. Instruções de Desvio 1. Instruções de Desvio Def.: Estas instruções permitem que, de forma condicional ou não, seja feito um desvio na seqüência de uma programa. O desvio é efetuado fazendo com que o valor carregado no PC

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

Engenharia Civil. Representação da Informação. Introdução à Computação

Engenharia Civil. Representação da Informação. Introdução à Computação Engenharia Civil Representação da Informação Introdução à Computação Sumário Retomada... Representação de informação Bit, byte Conversão numérica Exercício Referência link na página 2.2.1 O bit, o byte,

Leia mais

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho

Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho Linguagem de Montagem e Assembly André Luiz da Costa Carvalho Linguagem de Montagem Todo programa para ser executado precisar ser convertido de linguagem fonte (alto nível) para um programa equivalente

Leia mais

Execução detalhada de instruçõ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 ------------------------------------------------------------------------------------------------------------------------------------------------

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

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

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto [email protected] [email protected] 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

Arquitetura de Computadores. Ciclo de Busca e Execução

Arquitetura de Computadores. Ciclo de Busca e Execução Arquitetura de Computadores Ciclo de Busca e Execução Ciclo de Busca e Execução Início Buscar a próxima instrução Interpretar a instrução Executar a instrução Término Funções realizadas pela UCP Funções

Leia mais

Conjunto de Instruções. Alisson Brito

Conjunto de Instruções. Alisson Brito Conjunto de Instruções Alisson Brito 1 1 O que é o Conjunto de Instruções? Instruction Set Architecture (ISA) Interface entre Programas e CPU A coleção completa de instruções reconhecidas pela CPU Programas

Leia mais

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 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

Leia mais

Linguagens de Programação Classificação

Linguagens de Programação Classificação Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.

Leia mais