Assembly Saltos e Subrotinas
|
|
- Luna Benke Mirandela
- 5 Há anos
- Visualizações:
Transcrição
1 Aula 6 Assembly Saltos e Subrotinas 6.1 Objectivos Introdução Ciclos e outras estruturas de controlo Ciclos Estruturas if then else Escolha múltipla Subrotinas Escolha automática de instruções Utilização de segmentos recolocáveis Problemas Objectivos Consolidação de conhecimentos sobre a linguagem assembly da família 51. Familiarização com as instruções de salto e chamada de subrotinas. Utilização da pilha (stack) e respectivo apontador (stack pointer). 6.2 Introdução Conclui-se com este guião uma breve introdução à linguagem assembly da família 51. Apresentam-se aqui diversos problemas que obrigam à utilização de instruções de salto e à organização do código em subrotinas. Estude com cuidado os exemplos apresentados e as considerações que os acompanham e depois tente resolver em casa, antes da aula, todos os problemas propostos. Poderá tirar as dúvidas que lhe surgirem na aula teórico-prática. 1
2 2 AULA 6. ASSEMBLY SALTOS E SUBROTINAS 6.3 Ciclos e outras estruturas de controlo A linguagem assembly não dispõe de nenhum mecanismo que leve a programar de modo estruturado. Assim, a estrutura de um programa é mais uma das responsabilidades que o programador deve assumir. Felizmente é fácil implementar algumas estruturas de controlo existentes em linguagens de alto nível recorrendo a instruções de salto Ciclos A maneira mais fácil de controlar a execução de determinado grupo de instruções um número constante de vezes é utilizando a instrução DJNZ (decrement and jump if not zero) que admite como operando um registo ou um endereço de memória de dados interna: LOC OBJ LINE SOURCE 1 ;============================================== 2 ; Inicializaç~ao de um vector em memória 3 ; for(i=0;i<16;i++) { 4 ; temp[i]=0 5 ; } 6 ; jpsousa@fe.up.pt 7 ;============================================== SIZE equ 16 ; Tamanho do vector dseg at 40h temp: ds SIZE cseg at mov r0,#temp ; Endereço inicial 0002 E4 16 clr a F10 17 mov r7,#size ; Tamanho 0005 F6 18 next: ; Inicializa posiç~ao inc r DFFC 20 djnz r7,next end Repare-se, a propósito deste exemplo, na utilização da constante numérica SIZE definida na linha 9 e utilizada nas linhas 12 e 17. É também importante perceber o modo como se pode aceder de forma indirecta a uma variável: o apontador é inicializado (linha 15) e mais tarde (linha 18) utilizado para aceder às sucessivas posições que a variável ocupa. Um ciclo pode também ser do tipo enquanto ou do tipo repetir. O primeiro caracteriza-se por ter o teste de controlo logo no início o que faz com que o conjunto de instruções nele incluído possa nunca ser executado; o segundo caracteriza-se por ter o teste de controlo no fim pelo que o conjunto de instruções nele incluído é executado pelo menos uma vez: LOC OBJ LINE SOURCE 1 ;======================================= 2 ; Ciclo do tipo enquanto...
3 6.3. CICLOS E OUTRAS ESTRUTURAS DE CONTROLO 3 3 ; unsigned char x; 4 ; unsigned int y; 5 ; 6 ; while (x!=0) { 7 ; y=2*y; 8 ; x--; 9 ; } 10 ; jpsousa@fe.up.pt 11 ;======================================= dseg at 40h y: ds x: ds cseg at E tst: mov a,x ; Testa em A F 19 jz done ; Acaba se A= ; Multiplica por 2 um número de 16 bits 0004 C3 22 clr c 0005 E mov a,y+1 ; Processa LSB rlc a 0008 F mov y+1,a 000A E mov a,y ; Processa MSB 000C rlc a 000D F mov y,a F dec x ED 31 sjmp tst done: ;======================================= 38 ; Ciclo do tipo repetir ; unsigned char x; 40 ; unsigned int y; 41 ; 42 ; do { 43 ; y=2*y; 44 ; x--; 45 ; } while (x!=0); 46 ; jpsousa@fe.up.pt 47 ;======================================= cseg at 0100h E next: mov a,y+1 ; Processa LSB E0 52 add a,acc 0104 F mov y+1,a 0106 E mov a,y ; Processa MSB rlc a 0109 F mov y,a B D542F2 58 djnz x,next end Repare-se que o teste que determina o fim do ciclo (linha 19) é específico do acumulador pelo que não chega decrementar a variável de controlo (linha 30) mas é necessário copiá-la para o acumulador (linha 18). Já no segundo caso (linha 58) o teste é efectuado directamente sobre a variável de controlo.
4 4 AULA 6. ASSEMBLY SALTOS E SUBROTINAS Estruturas if then else As instruções de salto permitem uma implementação confortável deste tipo de estruturas de controlo nos programas escritos em assembly: LOC OBJ LINE SOURCE 1 ;======================================= 2 ; Teste de valores 3 ; #define MAXCNT ; unsigned int cont,val; 5 ; unsigned char state; 6 ; if(val==0) { 7 ; state++; 8 ; cont=maxcnt; 9 ; } else { 10 ; if(state==12) 11 ; state--; 12 ; } jpsousa@fe.up.pt 13 ;======================================= 14 3A98 15 MAXCNT equ dseg at 50h cont: ds val: ds state: ds cseg at 0h 0000 E mov a,val orl a,val A 25 jnz nzero inc state mov cont,#low(maxcnt) ; LSB 000B 75513A 28 mov cont+1,#high(maxcnt) ; MSB 000E sjmp done C 30 nzero: mov a,# B cjne a,state,done dec state done: 34 Algumas considerações sobre o exemplo apresentado: 1. Uma vez que a variável val (linha 18) ocupa 2 bytes o teste efectuado (linhas 22, 23 e 24) deve incluir ambos. 2. Nas linhas 26 e 27 foram utilizados dois operadores suportados pelo assemblador (low e high) que calculam, respectivamente, a metade menos significativa e mais significativa de um valor de 16 bits. 3. Repare-se finalmente nos códigos das instruções de salto utilizadas neste exemplo (linhas 24, 28 e 30) o último byte de cada instrução representa a distância entre o endereço da próxima instrução e o endereço destino do salto; respectivamente 10, 7 e 2 bytes. Nem todas as instruções de salto são relativas, algumas indicam de modo absoluto o endereço destino.
5 6.4. SUBROTINAS Escolha múltipla A instrução de comparação CJNE permite também implementar estruturas de escolha múltipla semelhantes às que existem em linguagens de alto nível: LOC OBJ LINE SOURCE 1 ;======================================= 2 ; Escolha múltipla 3 ; unsigned char op,pin; 4 ; switch (op) { 5 ; case 0: pin=100;break; 6 ; case 9: pin=200;break; 7 ; default: pin=0; 8 ; } 9 ; jpsousa@fe.up.pt 10 ;======================================= dseg at 50h op: ds pin: ds cseg at 100h 0100 E mov a,op 0102 B cjne a,#0,not0 ; A = 0? mov a,# sjmp Done 0109 B Not0: cjne a,#9,not9 ; A = 9? 010C 74C8 22 mov a,# E sjmp Done 0110 E4 24 Not9: clr a ; default F Done: mov pin,a end Algumas considerações sobre o exemplo apresentado: 1. A comparação (linhas 18 e 21) não estraga o acumulador pelo que basta carregá-lo uma vez (linha 17). 2. Novamente se nota nos códigos da instrução de comparação e salto (linhas 18 e 21) a distância entre o endereço da próxima instrução e o endereço destino do salto, 4 bytes nos dois casos deste exemplo. 3. A instrução MOV (linha 25) completa a execução. É sempre executada qualquer que seja a escolha feita. 6.4 Subrotinas As instruções de chamada de subrotinas 1 contribuem decisivamente para a estrutura dos programas ao permitirem dividir uma tarefa complexa em tarefas mais simples, cada uma executada por uma rotina que em devido tempo será chamada. 1 Os termos rotina e subrotina serão usados indistintamente para especificar um conjunto de instruções que executam uma tarefa específica no contexto da resolução de um problema mais abrangente.
6 6 AULA 6. ASSEMBLY SALTOS E SUBROTINAS LOC OBJ LINE SOURCE 1 ;======================================= 2 ; Atraso configurável 3 ; 4 ; delay(n) { 5 ; for(i=n;i>0;i--); 6 ; } 7 ; delay(50); 8 ; delay(100); 9 ; jpsousa@fe.up.pt 10 ;======================================= cseg at F32 13 mov r7,# lcall delay F64 15 mov r7,# D acall delay FE 17 stop: sjmp stop cseg at 0680h delay: nop ; Par^ametro de entrada em r nop 0682 DFFC 22 djnz r7,delay ; Repete R7 vezes ret end Algumas considerações sobre o exemplo apresentado: 1. A codificação manual da instrução LCALL (linha 14) é bastante mais simples e directa do que a da instrução ACALL (linha 16). Naquela aparece de forma evidente o endereço destino enquanto nesta parte do endereço é incorporada no código da instrução [1, páginas 17 e 36]. 2. A instrução de salto é necessária para encravar o programa, caso contrário depois de executada a instrução da linha 16 o programa executaria novamente a subrotina e corromperia a stack ao executar um RET sem ter executado primeiro o ACALL ou LCALL correspondente. 6.5 Escolha automática de instruções A escolha de uma entre as três instruções de salto incondicional que esta família suporta (ljmp, ajmp e sjmp) faz-se em função do tamanho do salto que se pretende dar. A maior parte dos assembladores actualmente existentes permite fazer essa escolha de uma forma automática: basta indicar como instrução a mnemónica genérica jmp que o próprio assemblador escolherá a instrução mais indicada das três. O mesmo se passa relativamente à chamada de subrotinas: basta utilizar a mnemónica genérica call que o assemblador escolherá a instrução lcall ou acall dependendo da distância a que estiver a rotina que se pretende chamar.
7 6.6. UTILIZAÇÃO DE SEGMENTOS RECOLOCÁVEIS Utilização de segmentos recolocáveis A utilização de segmentos absolutos, já abordada anteriormente [3], tem a grande desvantagem obrigar a um grande cuidado na sua utilização para garantir a inexistência de sobreposições entre segmentos do mesmo tipo. Para evitar esse trabalho e facilitar a reutilização de código é recomendável trabalhar sempre com segmentos recolocáveis. Ao contrário de um segmento absoluto, um segmento recolocável é aquele do qual não se sabe, a priori, o endereço inicial pois ele é definido pelo linker, isto é, depois da compilação. A figura 6.1 ilustra as fases necessárias à criação de um ficheiro executável. Os segmentos recolocáveis definidos no código fonte ainda não estão definidos nos ficheiros objecto, estando por isso incompleta a codificação das instruções. O processo de codificação é completado pelo linker antes da geração do ficheiro executável. Assemblador / Compilador Assemblador / Compilador Linker Ficheiro executável Ficheiros fonte Assemblador / Compilador Ficheiros objecto Figura 6.1: Processo de geração de um ficheiro executável A definição de um segmento recolocável faz-se com o comando segment e a sua activação com o comando rseg. O exemplo ilustra a sintaxe: rotinas segment code mensagens segment code vars segment data vars2 segment xdata ; Segmento recolocável em MP ; Segmento recolocável em MP ; Segmento recolocável em MDI ; Segmento recolocável em MDE rseg vars ; Activa o segmento de dados total: DS 2 ; Reserva dois bytes em MDI contador: DS 1 ; Reserva um byte em MDI rseg vars2 ; Activa o segmento de dados dados: DS 400 ; Reserva 400 bytes em MDE ; === Programa principal =============================================== cseg at 0000h ; Segmento absoluto em MP. ; Início do programa sempre no endereço 0.. ; --- Rotinas de E/S rseg rotinas ; Activa o segmento rotinas... ; === Mensagens do sistema ============================================= rseg mensagens ; Activa o segmento mensagens pin_msg: DB "Introduza o PIN: " ; Preenche 7 bytes algures em MP
8 8 AULA 6. ASSEMBLY SALTOS E SUBROTINAS No exemplo apresentado, a única conclusão que se pode tirar quanto a endereços é que o programa principal começa no endereço 0000h da memória de programas pois é o único segmento absoluto existente. Os endereços dos segmentos recolocáveis são definidos mais tarde, automaticamente, durante o processo de geração do código máquina. 6.7 Problemas Apresentam-se de seguida alguns problemas que requerem a utilização de instruções de salto e/ou de chamada de subrotinas. 1. Escreva um programa que calcule t = 19 i=0 y[i] supondo que: (a) os elementos do vector são todos inferiores a 13, (b) os elementos do vector são todos inferiores a 256. Declare as variáveis num segmento de dados absoluto com início em 30h. 2. Escreva um programa que implemente na variável Cont definida num segmento de dados recolocável um contador cíclico de 24 bits. Considere dois casos: (a) contagem crescente: 0, 1, 2,..., , 0, 1,..., (b) contagem decrescente. 3. Suponha um vector v com 50 elementos de um byte cada representados em complemento para 2. Escreva um programa que conte quantos elementos negativos, nulos e positivos existem no vector. As contagens devem ser guardadas nas variáveis nn, nz e np respectivamente. Declare todas as variáveis num segmento recolocável em MDI. Repita considerando agora que v está declarado num segmento recolocável em MDE. 4. Traduza para código máquina as soluções do problema anterior. 5. Escreva um programa que calcule a soma de controlo simples (soma efectuada sem considerar eventuais transportes) de uma zona de 256 bytes de memória com início apontado pelo registo R0. No fim: R0 fica a apontar para um endereço 256 posições acima do seu valor inicial e o resultado da soma deve ficar no acumulador. 6. Escreva uma rotina que calcule o valor mínimo de uma zona de memória de dados externa com início apontado pelo registo DPTR e comprimento indicado no registo R7. No fim, o mínimo deve ficar em R7. 7. Suponha já existente a rotina Upcase que converte para maiúscula a letra minúscula cujo código ASCII está no acumulador, devolvendo o resultado da conversão também no acumulador.
9 6.7. PROBLEMAS 9 (a) Escreva um programa que, recorrendo a essa rotina, converta para maiúsculas um texto em MDI com início apontado por R0 e cujo fim é indicado pelo código 0. (b) Escreva a rotina Upcase. 8. Suponha já existente a rotina CountBits que conta o número de bits a um do acumulador, devolvendo o resultado também no acumulador. (a) Escreva um programa que, recorrendo a essa rotina, conte o número de bits a um de uma zona de memória da dados interna com início apontado pelo registo R0 e comprimento indicado no registo R7. O resultado deve ficar em R7. (b) Escreva a rotina CountBits.
10 10 AULA 6. ASSEMBLY SALTOS E SUBROTINAS
11 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] Sousa, João Paulo; Assembly: Primeiros passos; FEUP, Setembro de [4] Atmel Wireless and Microcontrollers; 89C51 data sheet; Setembro de [5] Ferreira, José Manuel; Introdução ao Projecto com Sistemas Digitais e Microcontroladores; FEUP Edições, 1998, ISBM
Programação em Linguagem Assembly (Saltos e Subrotinas)
Programação em Linguagem Assembly (Saltos e Subrotinas) João Paulo Sousa jpsousa@fe.up.pt Setembro 2005 Conteúdo 1 Objectivos 2 2 Introdução 2 3 Ciclos e estruturas de controlo 2 3.1 Ciclos for()............................................
Leia mais5 Programação modular em Linguagem Assembly
5 Programação modular em Linguagem Assembly (Família 51) jpsousa@fe.up.pt 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 maisProf. 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 mais7. 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 maisFaculdade de Engenharia. Microprocessadores. Apoio às Aulas Práticas
Faculdade de Engenharia Microprocessadores Apoio às Aulas Práticas 4 a Edição, Setembro 2005 Departamento de Engenharia Electrotécnica e de Computadores Primeiros Passos na Programação em Linguagem Assembly
Leia maisProgramaçã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 maisAs 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 maisTempos de execução, programação modular e processamento de interrupções
Tempos de execução, programação modular e processamento de interrupções jpsousa@feuppt Conteúdo 1 Objectivos 2 2 Introdução 2 3 Ciclos-máquina 2 31 Cálculo do tempo de execução 3 32 Ajuste do tempo de
Leia maisContador crescente e decrescente...
Contador crescente e decrescente... Hardware Quatro LEDS (P1.7 a P1.4) Um interruptor (P1.0) LEDS e interruptor activos a zero f x = 12MHz P1 VCC Problema Visualizar nos LEDs uma contagem cíclica entre
Leia maisAssembly Primeiros Passos
Aula 5 Assembly Primeiros Passos 5.1 Objectivos......................... 1 5.2 Introdução........................ 2 5.3 Programação em linguagem assembly........ 3 5.4 Modelo de programação................
Leia maisFamiliarizaçã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) jpsousa@fe.up.pt Setembro 2005 Conteúdo 1 Objectivos 2 2 Introdução 2 3 O ambiente de desenvolvimento da Keil
Leia maisCONJUNTO 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 mais1. 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 maisSistemas 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 maisAssembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007
Assembly 8051 Aplicações de Microprocessadores 2006/2007 Sintaxe do Assembly [Label] Op-code [Operando] [Comentário] tabela: movc a,@a+dptr ; vai à tabela buscar o seu correspondente ASCII 2 2 Instruções
Leia maisFORMATO 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 maisSEL-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 maisMicrocontroladores. 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 maisSistemas Microprocessados
Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do ATmega8 satoutfpredubr Sobre o material Essas transparências foram baseadas no manual
Leia maisPorta série no dscope...
Porta série no dscope... Interface série - 22 Comunicação multiprocessador Porta série nos modos 2 ou 3 Bit 8 utilizado para distinguir dois tipos de tramas (0=dados, 1=endereços) Funcionamento de SM2
Leia maisEstudar os passos que devem ser feitos (ponto de partida até o objetivo)
Erros básicos Falta de conhecimento sobre o microcontrolador e assembly Falta de planejamento na hora de desenvolver o programa Estudar os passos que devem ser feitos (ponto de partida até o objetivo)
Leia maisLaborató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 maisTÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Leia maisLaborató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 3: Temporizadores e Display LCD Alunos: Matrícula:
Leia maisConjunto 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 maisEEC2104 Microprocessadores
EEC2104 Microprocessadores Edição 2005/2006 Sistemas de interrupções Interrupção... Acontecimento assíncrono, inesperado para um processador Resulta na invocação automática de uma subrotina desencadeada
Leia maisLaborató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 3: Temporizadores e Display LCD Alunos: Matrícula:
Leia maisInterrupção. Prof. Adilson Gonzaga
Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada
Leia maisLic. Engenharia de Sistemas e Informática
Conceitos de Sistemas Informáticos Lic. Engenharia de Sistemas e Informática 1º ano 2004/05 Luís Paulo Santos Módulo Arquitectura de Computadores Execução de Programas LPSantos, CSI: Arquitectura de Computadores,
Leia maisConjunto 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 maisEEC2104 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 maisLaborató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 3: Temporizadores e Display LCD Alunos: Matrícula:
Leia maisEXERCÍ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 maisCPU. 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 maisConjunto 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 maisAula teórica 7. Preparado por eng.tatiana Kovalenko
Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana
Leia maisSí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 maismov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1
--------------------------------------------------------------- Programa: primeiro.asm Move dado da acumulador para o registro B e vice-versa. Autor: Vargas Data:16:52 16/02/01 ---------------------------------------------------------------
Leia maisFamí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 maisRevisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Leia maisAJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:
Introdução aos Sistemas de Computação (4) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.
Leia maisMICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!
MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Aluno: Matrícula: UMA SOLUÇÃO POSSÍVEL Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!! 1. Escreva um pequeno, em assembly do
Leia maisTASM 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 maisIntroduçã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 maisLinguagem 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 mais7. A pilha e subrotinas
Cap7.1 7. A pilha e subrotinas 7.1 Organização da Pilha (stack) Stack: estrutura de dados de uma dimensão organizada em algum trecho (segmento) da Memória; o primeiro item adicionado é o último a ser removido
Leia maisMemória de dados interna
Memória de dados interna A MD interna na família 51 proporciona 128 bytes ou 256 bytes de MD interna (conforme a versão do componente) Os endereços 0 a 7FH incluem os bancos de registos R0 a R7, posições
Leia maisProf. 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 maisConjunto 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 maisLaboratório de Microprocessadores e Microcontroladores. Experimento 6:
Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico
Leia maisProgramação ao nível da máquina
Programação ao nível da máquina Ponto de vista do programador O nível Assembly Modelo de programação Assembler (processo de compilação da linguagem C) Que assembly para AC? Introdução ao assembly NASM
Leia maisEx.: Rotinas de tempo
Ex.: Rotinas de tempo ORG 0000h PORTA EQU P1 VBASE EQU 0800h Inicio: mov a,# 0ffh volta: mov PORTA,a cpl a ljmp volta end Microcontroladores - Prof: Demantova 1 Ex.: Rotinas de tempo ORG 0000h PORTA EQU
Leia maisIntrodução à Arquitetura de Computadores
LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES Introdução à Arquitetura de Computadores Tutorial do P3 Referência 2014 / 2015 INSTITUTO SUPERIOR TÉCNICO Paulo Lopes, José Costa 2014/2015 2 1.
Leia maisAula 14 Funcionamento de Processadores (Visão específica)
Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm
Leia maisNeander - características
NEANDER x RAMSES (Ou porque da necessidade de upgrade :-) Texto original: ftp://ftp.inf.ufrgs.br/pub/inf108/ramses-instrucoes.ppt Neander - características Largura de dados e endereços de 8 bits Dados
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisNEANDERWIN. 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 maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisINSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática Arquitectura de Computadores (ACom) LEIC-A, MEIC-A Acetatos das Aulas Teóricas Versão 1.0 - Português Aula
Leia maisSumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.
Sumário Aula Anterior Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits Aula 12 1 Sumário Nesta Aula Esclarecimento de dúvidas para o Exame Resolução
Leia maisPARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Leia maisInformática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisLaboratório de Programação II
Laboratório de Programação II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... 01 Introdução à linguagem C;
Leia maisSEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES
SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas
Leia maisTipos Primitivos, estruturas de iteração e decisão.
Tipos Primitivos, estruturas de iteração e decisão. André Luis Meneses Silva andreluis.ms@gmail.com http://br.geocities.com/programacao2ufs/ Agenda Tipos Primitivos de Dados Variáveis e Constantes es Comandos
Leia maisArquitectura de Computadores
Arquitectura de Computadores Geração do Código Objecto (10.7 e 10.8) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior
Leia maisComputador Cleópatra
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Computador Cleópatra Assembly Alexandre Amory Edson Moreno 2 / 36 Na Aula Anterior Vimos a máquina de estados da Cleo 3 / 36 Arquitetura Cleópatra - Von Neumann
Leia mais29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-5 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisTemporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso
Temporização Interrupções Prof: Evandro L. L. Rodrigues Rotinas de Atraso Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar
Leia maisEEC2104 Microprocessadores
EEC2104 Microprocessadores Edição 2005/2006 Contadores / Temporizadores Contadores/temporizadores em geral... Hardware para contagem de impulsos Externos Internos (derivados do relógio interno) Contagem
Leia maisOrganização de Computadores
Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização
Leia maisARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA III Março 2014 Índice Instruction Set Revisões Procedimentos Stack Comunicar com pessoas ASCII Programar em MIPS estrutura, input e output Programar em MIPS
Leia maisArquitectura de Computadores 2011/2012 2º Semestre 1º Teste - Repescagem - 27/06/2012
Arquitectura de Computadores 2011/2012 2º Semestre 1º Teste - Repescagem - 27/06/2012 Número: Nome: INSTRUÇÕES: - A duração da prova é de 2 horas. - Preencha imediatamente o seu número e nome de forma
Leia maisLaborató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 2: Teclado e Rotação de LEDs Alunos: Matrícula:
Leia maisGrupo I (5 valores) CD AB
Grupo I (5 valores) Ministério da Ciência, Tecnologia e Ensino Superior 1. [2] Considere o seguinte mapa de Karnaugh da função F(A,B,C,D). Simplifique a função de modo a obter uma soma de produtos, e um
Leia maisRevisão C++ - Parte 1
Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos
Leia maisLaboratório de Microprocessadores e Microcontroladores. Experimento 7:
Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 7: Conversor Analógico/Digital e Conversor Digital/Analógico
Leia maisArquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas
Arquitectura de Computadores 00/00 º Semestre º Teste (A) - 0/0/00 Número: Nome: INSTRUÇÕES: - A duração da prova é de, horas. - Responda apenas nesta Folha de Respostas ; nada mais será recebido. - Identifique
Leia maisMicroprocessadores 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#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Leia maisLaboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico
Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico
Leia maisProfessor: Dr. Rogério Rodrigues de Vargas.
UNIVERSIDADE ESTADUAL DE SANTA CRUZ DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Bacharelado em Ciência da Computação Software Básico Linguagem de Programação Assembly: Uma introdução no Linux/i386 (AT&T)
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisLaboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico
Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico
Leia maisTemporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I 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
Leia maisINSTITUTO SUPERIOR TÉCNICO
INSTITUTO SUPERIOR TÉCNICO Arquitectura de Computadores 2 o Semestre (2010/2011) LEIC-A, MEIC-A Departamento de Engenharia Informática 1 o Teste (A) - 7 de Abril de 2011 Duração: 1h30 + 0h30 Regras: O
Leia maisConjunto 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 maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisInformática I. Aula 9. Aula 9-27/09/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-27/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisLegibilidade do código fonte
Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere
Leia mais13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica
13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física
Leia maisProva de Arquitectura de Computadores (21010) Data: 12 de Fevereiro de 2010
Ministério da Ciência, Tecnologia e Ensino Superior Curso:... Prova de Arquitectura de Computadores (21010) Data: 12 de Fevereiro de 2010 Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:...
Leia maisAula 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 maisEstrutura do programa e programação Assembly com 8051. O que entende por linguagem assembly?
O que entende por linguagem assembly? i. Apresenta um nível de abstração intermédia entre os dois extremos: linguagem máquina e linguagem alto-nível ii. Facilita a programação pela substituição do código
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisLINGUAGEM C PARA O 8051
LINGUAGEM C PARA O 8051 Disciplina de Microcontroladores Prof. Rubão VARIÁVEIS E TIPOS DE DADOS SIMPLES Char 8 bits Short e int 16 bits Long 32 bits Float 32 bits Unsigned int 16 bits Unsigned long 32
Leia maisOrganização e Projeto de Computadores
Organização e Projeto de Computadores 1 Processamento no Computador Operações principais: leitura de instrução do programa leitura de dados processamento: execução da instrução escrita de resultado entrada/saída
Leia maisCircuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v
CIRCUITOS SEQUENCIAIS ESTRUTURA GERAL Varáveis de entrada Variáveis de saída Variáveis de estado Circ. combinatório Memória Circuito Combinatório Memória Actual Seguinte CIRCUITOS SEQUENCIAIS Exemplo :
Leia mais