Engenharia Electrotécnica/ Engenharia Informática Microprocessadores e Aplicações

Documentos relacionados
CONJUNTO DE INSTRUÇÕES

Sistemas de Numeração

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

Sistemas de Numeração e Conversão de Base

Introdução à Engenharia de

Notação Posicional. Introdução à Computação. Bases. Bases. Sistemas de Numeração. Exemplo:

Codificação 1. Introdução. C 2 R r {! + codificação

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

Sistemas de Numeração

Conversões em Sistemas de Numeração. José Gustavo de Souza Paiva

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

3. Sistemas de Numeração

Notas de aula #1 SISTEMAS NUMÉRICOS

Representação de Dados e Sistemas de Numeração

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Aula 5. Simplificação de funções lógicas (cont.) Sistemas de numeração

CAPÍTULO I. UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA Apostila de Eletrônica Digital. Sistemas de Numeração. 1.

Sistema de Numeração e Códigos. Sistemas de Informação CPCX UFMS Prof. Renato F. dos Santos

Universidade do Minho Departamento de Electrónica Industrial. Sistemas Digitais. Exercícios de Apoio - I. Sistemas de Numeração

Aula 6 Aritmética Computacional

Aritmética Binária e. Bernardo Nunes Gonçalves

1. Sistemas de numeração

Capítulo 2. Numéricos e Códigos Pearson Prentice Hall. Todos os direitos reservados.

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Representação de Dados

Lógica Combinacional Aula 01 Sistema de Numeração. Felipe S. L. G. Duarte

Conversão de Bases e Aritmética Binária

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Conversão Entre Bases Numéricas.

Aula 6. Sistemas de Numeração. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano

Matemática Aplicada à Informática

Ano letivo: 2012/2013. Sistemas de numeração. Pág.: 1/11. Escola profissional de Fafe SDAC. Trabalho elaborado por: Ana Isabel, nº905 TURMA 7.

Fabio Bento

Conversão de Bases Numéricas

Sistemas de Numeração

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Álgebra de Boole. Sistema de Numeração e Códigos. Prof. Ubiratan Ramos

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito da seguinte forma:

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Sistemas de Numerações.

Lista de Exercícios Sistemas de Numeração

Hardware de Computadores

Sistemas de Numeração

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

Universidade Federal de Itajubá Engenharia Elétrica - Eletrônica. Te-06c. Notas de aula Prof. Enio R. Ribeiro

SISTEMAS DE NUMERAÇÃO

3 Sistemas de Numeração:

Jeandervall. Roteamento

centena dezena unidade

Sistemas de Numeração

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

Circuitos Digitais Cap. 5

Genericamente qualquer sistema de numeração pode ser caracterizado por:

Capítulo 2. Representação de dados em sistemas computacionais

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos

Arquitetura de Computadores

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Aula 2 Sistemas de Numeração (Revisão)

Sistemas de Numeração. Bases Numéricas e Conversão entre bases

No microfone, sua saída pode assumir qualquer valor dentro de uma faixa de 0 à 10mV. 1 - Sistemas de numeração

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

SISTEMAS DE NUMERAÇÃO

Representação de Dados

Aula 3 - Sistemas de Numeração

O número é algo abstrato que representa a idéia de quantidade, expressos através de símbolos previamente acordados.

CURSO: Engenharia Elétrica e Engenharia de Computação. DISCIPLINA: Circuitos Lógicos I Z520234

Operações aritméticas

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistemas de Numeração. 1 Introdução aos sistemas numeração

Conjunto de Instruções do 8051

ELETRÔNICA. Changed with the DEMO VERSION of CAD-KAS PDF-Editor ( INTRODUÇÃO

Soluções de Questões de Matemática do Centro Federal de Educação Tecnológica Celso Suckow da Fonseca CEFET/RJ

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

Capítulo 9: Codificação. Prof.: Roberto Franciscatto

Disciplina: : ELETRÔNICA DIGITAL

ULA Sinais de Controle enviados pela UC

Prof. Luís Caldas Sistemas de Numeração e Transformação de Base NUMERAÇÃO, BASE NUMÉRICA E TRANSFORMAÇÃO DE UMA BASE

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Exemplo de Subtração Binária

REDES DE COMPUTADORES - I UNI-ANHANGUERA. CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROF. MARCIO BALIAN

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

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

Aula 08. Sistemas Numéricos Conversões. Prof. Dr. Dilermando Piva Jr.

Sistemas Numéricos Eletrônica Digital PROFESSOR LUCAS KOEPSEL ROSA

Prof. Rafael Gross.

Matéria: Matemática Assunto: Divisores e Múltiplos Prof. Dudan

METROLOGIA MEDIDAS E CONVERSÕES

QUESTÃO 1 ALTERNATIVA B

Solução da prova da 1 a fase OBMEP 2015 Nível 1. QUESTÃO 1 ALTERNATIVA E Como 2 x 100,00 126,80 = 200,00 126,80 = 73,20, o troco foi de R$ 73,20.

Transcrição:

Conversão de Binário para BCD A conversão de um número binário para BCD depende do valor a ser convertido: caso a: 0 a 99 (2 algarismos BCD) caso b: 0 a 255 (1 byte) caso c: 0 a 999 (3 algarismos BCD) caso d: 0 a 9999 (4 algarismos BCD) CASO a: Em R4 existe um número de 0 a 99. Converter o número para BCD e colocar o resultado em R6. Ao dividir o número por 10, as unidades são colocadas em B e as dezenas em A. BINBCD_99:MOV A,R4 ; A=0X B=0Y ; A=X0 B=0Y ; A=XY B=0Y MOV R6,A ;coloca em R6 o valor de A CASO b: Em R4 existe um número de 0 a 255. Converter o número para BCD e colocar o resultado em R7 e R6. Divide-se o número por 100 para separar as centenas. Assim já é possível utilizar a solução do caso a. BINBCD_255:MOV A,R4 0 ;separar as centenas (dividir por 100) ;R7 guarda o quociente (digito BCD mais sigf.) MOV A,B ;igual a BINBCD_99 MOV R6,A Ana Lopes 1/5 01-01-2005

CASO c: Em R5 e R4 existe um número de 0 a 999. Converter o número para BCD e colocar o resultado em R7 e R6. A solução utilizada consiste em somar 256 em R7 e R6 e decrementar R5 até que este seja 0; depois utilize-se uma rotina idêntica à BINBCD_255. BINBCD_999:CLR A ;Coloca A a zero ;Coloca R7 e R6 a zero para MOV R6,A ;receber os resultados MOV A,R5 JZ LB1 ;se R5=0 (0<= num <=255), seguir adiante; LB2: MOV A,R6 ADD A,#56H ;somar 256 BCD e decrementar ;R5 até que este chegue MOV R6,A ;a zero ADDC A,#2 DJNZ R5,LB2 ;decrementar R5; LB1: MOV A,R4 ;parecido com BINBCD_255 (0<= num <=255) 0 ADD A,R7 MOV A,B ADD A,R6 MOV R6,A ADDC A,#0 CASO d: Em R5 e R4 existe um número do 0 a 9999. Converter o número para BCD e colocar o resultado em R7 e R6. A solução adoptada no Caso c sugere um loop até que R5 seja zero. Mas para números grandes esse loop pode ser excessivo em termos de tempo. Uma solução a melhor consiste usar divisões por 1000, 100 e 10. O problema agora será como realizar divisões de 2 números de 16 bits utilizando a divisão de 8 bits disponível. Ana Lopes 2/5 01-01-2005

Uma maneira de solucionar este problema é converter o byte menos significativo para BCD e de seguida converter também o byte mais significativo para BCD, multiplicá-lo por 256 e somar com o anterior. Uma multiplicação por 256 é fácil: multiplicar por 200 (multiplicar por 2 e deslocar 2 posições para a esquerda); multiplicar por 50 (multiplicar por 5 e deslocar 1); multiplicar por 6 e por último somar os três resultados. Com esta solução pode-se pensar num caso e mais genérico: CASO e: Em R4 e R3 existe um número binário de 16 bits (0 a 9999). Converter o número para BCD e colocar o seu resultado em R7, R6 e R5. Na solução serão utilizadas algumas subrotinas auxiliares, tais como: Converter um byte do ACC para BCD e colocar o resultado em AUXH e AUXL BCD8:0 ;parecido com BINBCD_255 MOV AUXH,A MOV A,B DIV A,B MOV AUXL,A Receber um número BCD em R2 e R1 e o incrementá-lo o número de vezes especificado em R0 (R0 > 0). ROT_INC: MOV R1AUX,R1 MOV R2AUX,R2 DEC R0 R_INC: MOV A,R1AUX ADD A,R1 MOV R1,A MOV A,R2AUX ADDC A,R2 MOV R2,A DJNZ R0,R_INC Somar dois números BCD, em que um número está em R2 e R1 e o outro está indicado pelo ponteiro R0. O resultado deve ser guardado no endereço apontado por R0. Ana Lopes 3/5 01-01-2005

[@(R0+1) e @R0] [@(R0+1) e @R0] + [R2 e R1] SOMA:MOV A,@R0 ADD A,R1 ;soma os LSBs ;ajuste decimal da soma MOV @R0,A ;guarda a soma em @R0 INC R0 ;vai para proximo endereço MOV A,@R0 ADDC A,R2 ;soma os MSBs com Carry ;ajuste decimal da soma MOV @R0,A ;guarda o MSB da soma Subrotina principal: Os valores binários colocados em (R4, R3) serão colocados em BCD(R7, R6, R5) BCD16:MOV A,R3 ;coloca em A o LSB ACALL BCD8 ;converte o LSB p/ BCD ;e coloca o resultado em AUXH e AUXL MOV R5,AUXL ;o LSB em BCD vai para R5 e R6 MOV R6,AUXH MOV A,R4 ;coloca em A o MSB ACALL BCD8 ;converte o LSB p/ BCD ;e coloca o resultado em AUXH e AUXL MOV R2,AUXH ;o MSB em BCD vai para R1 e R2 MOV R0,#6 ACALL ROT_INC ;Calcula BCD(MSB)*6 MOV R0,#5 ;Para que a soma seja colocada em R5 e R6 ACALL SOMA ;(R6,R5) <- (R6,R5) + 6*BCD(MSB) CLR A ;Coloca A a zero RLC A ;houve carry? (por segurança) ;coloca carry em R7; MOV R2,AUXH ;AUXH e AUXL ainda guardam o BCD(MSB) MOV R0,#5 ACALL ROT_INC ;Calcula BCD(MSB)*5 ;A R2 R1 deslocar MOV A,R2; 0X 0X YZ uma MOV R0,#1 XCHD A,@R0 ; 0Z 0X YX posicao BCD ; Z0 0X YX para a XCH A,R1 ; YX 0X Z0 esquerda ; XY 0X Z0 (multipl. por 10) XCH A,R2 ; 0X XY Z0 MOV R0,#5 ;Para que a soma seja colocada em R5 e R6 ACALL SOMA ;(R6,R5) <- (R6,R5)+ 6*BCD(MSB)+50*BCD(MSB) Ana Lopes 4/5 01-01-2005

ADDC A,#0 ;acrescenta o carry a R7 MOV R2,AUXH ;AUXH e AUXL ainda guardam o BCD(MSB) MOV R0,#2 ACALL ROT_INC ;Calcula BCD(MSB)*2 MOV R0,#6 ;Para que a soma seja colocada em R6 e R7 ACALL SOMA Deve-se notar que existem muitas outras rotinas para converter BIN para BCD. Ana Lopes 5/5 01-01-2005