Arquitetura de Computadores I

Documentos relacionados
Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Aritmética dos Computadores

Prof. Leonardo Augusto Casillo

Capítulo 6 Aritmética Digital: Operações e Circuitos

Aritmética Computacional (Multiplicação e Divisão) Capítulo 4

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Capítulo 6 Aritmética Digital: Operações e Circuitos

Sistemas Digitais. Circuitos Aritméticos. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

Introdução à Computação

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

Arquitetura e Organização de Computadores

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Operações com números binários

Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos

Operações Aritméticas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Ciências da Computação & Engenharia Eletrônica

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Aritmética de Inteiros

Circuitos Digitais. Conteúdo. Soma de Números Binários. Soma de Números Binários. Exemplos. Exemplos. Aritmética Binária

Unidade 3 Aritmética Computacional Uma breve introdução

Multiplicação Divisão

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

Sistemas Digitais (SD) Circuitos combinatórios: somadores, subtractores e comparadores

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

MAT115 Introdução ao Processamento de Dados Professor: Ibirisol Fontes Ferreira DCC: Departamento de Ciência da Computação

Representação da Informação no Computador

CIRCUITOS SOMADORES = = =

Binários: Operações matemáticas

Capítulo 04 : Sistemas Numéricos

Organização e Arquitetura de Computadores I

MATA49 Programação de Software Básico

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Sistemas Digitais Circuitos Aritméticos e Unidades Aritméticas e Lógicas (ALUs)

Eletrônica Digital I (EDL I)

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Sistemas de Numeração. Sistemas de Numeração. Sistemas de Numeração. RUIDO em Sistemas Computacionais. Arquiteturas de Computadores

Unidade III. Sistemas Numéricos e o Computador

Baseado nos slides de Anna Tostes SISTEMA NUMÉRICO

Circuitos Lógicos Aula 22

Arquitetura e Organização de Computadores. Professor: Lucas Cambuim Aula: Conversão de Bases e Aritmética Computacional

Representação de Dados

ARITMÉTICA BINÁRIA. Adão de Melo Neto

Processadores

Aritmética Binária e Caminho de Dados. Aritmética Binária Caminho de Dados

Representação de quantidade(número) Expressão de significância posicional

Arquitetura e Organização de Computadores. Sistemas Numéricos

Disciplina: Introdução à Engenharia da Computação

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Sistemas de Numeração

MULTIPLEXADOR E DEMULTIPLEXADOR (Unidade 4)

Sistemas de Numeração

Sistemas Digitais Módulo 8 Introdução aos Circuitos Aritméticos

Capítulo V Sistemas Numéricos

Circuitos Lógicos Aula 5

Sistemas Numéricos e Representação de Dados. Heitor S. Ramos

Computação e Programação

Eletrônica Digital. Conversão de base e operações aritméticas com números binários. Professor: Francisco Ary

Organização de Computadores

Arquitetura de Computadores

Aula 9. Aritmética Binária. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 3 - Representação de Dados

Sistemas Digitais Módulo 2 Representações com Sinal e Aritmética Digital

Introdução à Computação

Aula 10. Circuitos Aritméticos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Índice. 1.2 Sistemas Numéricos em uma Base B Qualquer

Técnicas Digitais para Computação

Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-09

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

Introdução à Computação

Prof. Leonardo Augusto Casillo

Sistemas de Computação

ELETRÔNICA DIGITAL I

PCS 3115 Sistemas Digitais I Códigos Prof. Dr. Marcos A. Simplicio Jr.

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS

Arquitetura e Organização de Computadores

Organização de Computadores I

FACULDADE PITÁGORAS PRONATEC

CALCULADORA SIMPLES COM ULA

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Projetos de Circuitos Digitais em VHDL e FPGA

Aritmética Binária. Adição. Subtração. Aqui tudo nasce do cálculo.

EELi02 Circuitos Lógicos

Transcrição:

Arquitetura de Computadores I Aritmética Computacional - Inteiros - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Sumário A unidade lógico-aritmética Representação de números inteiros Aritmética de números inteiros

Unidade lógico-aritmética Executa os cálculos Os demais componentes de computação existem em função desta unidade Manipula números inteiros Pode manipular números de ponto flutuante Integrado ao chip do processador Separado em um co-processador (obsoleto)

Unidade lógico-aritmética Baseada em dispositivos digitais simples, capazes de Armazenar valores binários Efetuar operações simples de lógica booleana Dados fornecidos a partir de Registradores de entrada Armazenados em registradores na saída Pode sinalizar situações especiais Associadas as operações realizadas (flags)

Unidade lógico-aritmética Mas como interpretar os valores armazenados? Bits são apenas Bits!! Sem nenhum significado inerente Ex.: o que é: 10100101???? Podem representar Número, instrução, pixel (luminância), amostra de voz, etc. O que podemos representar com N bits? Apenas 2 N coisas! Logo: Bom para coisas limitadas (contáveis) Ex.: 26 Letras: 5 bits é suficiente Caracteres ASCII: 7 bits (de 8) (A,a,!) Caracteres UNICODE: 16 bits (caracteres dos idiomas conhecidos)

Sumário A unidade lógico-aritmética Representação de números inteiros Aritmética de números inteiros

Representação numérica Base binária (base 2) : Símbolos: 0,1 Ex.: 124 10 = 1111100 2 Base octal (base 8): Símbolos: 0,1,2,3,4,5,6,7 Ex.: 124 10 =1748 8 Base decimal (base 10): Símbolos: 0,1,2,3,4,5,6,7,8,9 Ex.: 124 10 = 124 10 Base hexadecimal (base 16): Símbolos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Ex.: 124 10 = 7C 16

Representação numérica sem sinal Generalização de cálculo do valor Dado um valor representado por n dígitos na base B (d n-1 d n-2 d n-3...d 2 d 1 d 0 ) B O valor de representação pode ser obtido pela fórmula n: número de posições i: posição corrente d i : valor da posição corrente B: base de representação

Representação numérica sem sinal Intervalo de representação de um valor binário sem sinal Considerada apenas os valores positivos Apoiado por algumas linguagens de programação Ex. C/C++ int e unsigned int Menor valor é sempre 0 Maior valor alcançado quando todos os bits estão em 1 Exemplo de 8 bits 0000 0000 (2) = 0 (10) 0000 0001 (2) = 1 (10) 0000 0010 (2) = 2 (10)... 1111 1100 (2) = 252 (10) 1111 1101 (2) = 253 (10) 1111 1110 (2) = 254 (10) 1111 1111 (2) = 255 (10) Cálculo genérico do intervalo Valor mínimo = 0 Valor máximo = B n 1 Onde, B: base de representação n: número de dígitos da representação

Representação numérica com sinal Mas nem só de representações sem sinal vive a computação Qual o mecanismo mais adequado para representar valores com sinal Sinal e magnitude 000 = +0 001 = +1 010 = +2 011 = +3 100 = -0 101 = -1 110 = -2 111 = -3 Complemento de um 000 = +0 001 = +1 010 = +2 011 = +3 100 = -3 101 = -2 110 = -1 111 = -0 Complemento de dois 000 = +0 001 = +1 010 = +2 011 = +3 100 = -4 101 = -3 110 = -2 111 = -1 Qual a melhor?

Complemento de 2 A regra baseia-se no fato de que a soma de um número com sua representação invertida deve ser -1: x x 1 x x 1 0 Intervalo de representação O bit mais significativo representa o menor valor negativo alcançável Menor valor: MSb=1, demais em 0; Fórmula geral: menor valor=(-1)* 2 n Maior valor MSb=0, demais em 1; Fórmula geral: maior valor=2 n -1 x 1 x

Sumário A unidade lógico-aritmética Representação de números inteiros Aritmética de números inteiros

Somador de 1 bit Tipos básicos de construção Half adder Circuito lógico que executa uma adição de dois operandos binários de 1 bit cada, produzindo o resultado da soma e um carry Full adder Circuito lógico que executa uma adição de dois operandos binários de 1 bit cada, produzindo o resultado da soma e um carry

Somador de 1 bit Soma A + B + vem 1 Gera Resultado e vai um Tabela Verdade: Entradas Saídas A B Vem 1 Soma Vai 1 Comentários 0 0 0 0 0 0+0+0 = 00 0 0 1 1 0 0+0+1 = 01 0 1 0 1 0 0+1+0 = 01 0 1 1 0 1 0+1+1 = 10 1 0 0 1 0 1+0+0 = 01 1 0 1 0 1 1+0+1 = 10 1 1 0 0 1 1+1+0 = 10 1 1 1 1 1 1+1+1 = 11

Somador de múltiplos bits Somador em cascata (ripple carry) Características Múltiplos full adder em cadeia para a produção da soma de números de n bits O primeiro somador pode ser half adder O carry é propagado entre somadores Método similar ao lápis e papel!!!

Somador de múltiplos bits Dois extremos de desempenho Ripple carry Vantagem Facilita o projeto do somador (reuso de módulos) Desvantagem O somador é lento (caminho crítico) Pois: Soma de produtos / produto de somas Vantagem Lógica extremamente rápida (circuito específico) Desvantagem Circuito complexo para cálculos de muitos bits (custo alto)

Somador de múltiplos bits Carry look-ahead (meio termo) Característica Mescla ripple carries (4bits) Antecipa se gerará / propagará carry Geração: g i = a i and b i a0 b0 a1 b1 a2 b2 a3 b3 CarryIn CarryIn ALU0 P0 G0 C1 pi gi ci + 1 Result0--3 Carry-lookahead unit Propagação: p i = a i or b i Assim C 1 = g 0 or (p 0 and c 0 ) C 2 = g 1 or (p 1 and c 1 ) Vantagem Acelera o processo de computação de soma dos operandos Propagação do carry é bem mais rápido a4 b4 a5 b5 a6 b6 a7 b7 a8 b8 a9 b9 a10 b10 a11 b11 a12 b12 a13 b13 a14 b14 a15 b15 CarryIn ALU1 P1 G1 CarryIn ALU2 P2 G2 CarryIn ALU3 P3 G3 C2 C3 C4 pi + 1 gi + 1 ci + 2 pi + 2 gi + 2 ci + 3 pi + 3 gi + 3 ci + 4 Result4--7 Result8--11 Result12--15 CarryOut

Subtração A subtração é obtida somando-se o minuendo ao complemento a 2 do subtraendo, ou seja, a b a ( b 1) BInvertido CarryIn OP1 OP0 A0 0 1 Resultado 0 B0 0 1 + 2 CarryOut

Multiplicação Mais complicado que a soma Construídos a partir de somas e deslocamentos Reflete em mais Tempo de execução ou Área Base de operação Opera-se o produto parcial de cada dígito Desloca-se o produto parcial uma casa à esquerda Adiciona-se os produtos parciais

Multiplicação Exemplo: multiplicando multiplicador produto 1000 x 1001 1000 0000 0000 1000 1001000 Número de dígitos: multiplicando + multiplicador. 32 bits x 32 bits = 64 bits.

Multiplicação Cálculo feito como no coleginho Simplesmente coloque um cópia do multiplicando (1 x multiplicando) no lugar apropriado, se o digito do multiplicando for igual a 1, ou Coloque 0 (0 x multiplicando) no lugar apropriado, se o dígito do multiplicando for igual a 0; Veremos a seguir 3 versões do algoritmo de multiplicação para 32 bits (32 x 32 bits)

Multiplicação Versão 1 Algoritmo início Multiplicador0=1 1a. Produto = Produto + Multiplicando 1. teste do Multiplicador 0 Multiplicador0=0 2. Desloque Multiplicando 1 bit à esquerda 3. desloque Multiplicador 1 bit à direita Fim sim 32 repetições? não

Multiplicação Versão 1 Implementação em hardware

Multiplicação Versão 2 Algoritmo início Multiplicador0=1 1a. Some o multiplicando à metade esquerda do produto 1. teste do Multiplicador0 Multiplicador0=0 2. Desloque o registrador de Produto 1 bit à direita 3. Desloque o registrador Multiplicador 1 bit à direita Fim sim 32 repetições? não

Multiplicação Versão 2 Implementação em hardware

Multiplicação Versão 3 Algoritmo início Produto0=1 1a. Some o multiplicando à metade esquerda do produto 1. teste do Produto0 Produto0=0 2. desloque o registrador de Produto 1 bit à direita Fim sim 32 repetições? não

Multiplicação Versão 3 Implementação em hardware Vantagens: ULA de 32 bits. Apenas 1 registrador de 64 bits.

Divisão Característica Operação menos freqüente que a multiplicação e mais complexa embora baseada nos mesmos princípios Oferece oportunidade de efetuar operação matemática inválida Divisão por zero. Representação dividendo = quociente x divisor + resto

Divisão Comportamento implementado Operação envolve repetidas execuções de soma, subtração e deslocamento Os bits do dividendo são analisados da esquerda para a direita, até que um número de representação maior ou igual ao divisor seja obtido Enquanto não ocorrer são inseridos é 0 s no quociente da esquerda para a direita

Divisão Comportamento implementado Quando encontrado um número maior ou igual (diz-se que o divisor divide o número) é colocado um bit em 1 no quociente e o divisor é subtraído do dividendo parcial O resto é chamado de resto parcial. A partir deste ponto, a divisão segue o mesmo padrão cíclico. A cada ciclo, bits adicionais do dividendo são anexados ao resto até que o resultado seja maior ou igual ao divisor. O processo segue até que todos bits do dividendo sejam examinados.

Divisão Solução para a/b: subtrações sucessivas, n passos; Deslocamento n+1 P A - + n+1 n+1 n Controle n+1 0 B Quatro passos de operação: 1 (1) desloca P&A p/ esq 1 bit; (2) P<- P-B; (3) se (P<0), A0=0 else A0 =1; (4) If (P<0), restaura P fazendo P<-P+B. n

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 4 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 4 5 00110-00101 = 001

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 4 0 0 0 0 1 1 1 0 0 1 0 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 4 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 5

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 4 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 5 0 0 0 1 1 1 0 0 1 0 0

Divisão A/B - Exemplo A = 11011 (27) B = 00101 (5) A cada volta, mostra-se P e A após executar o passo: 1) na primeira linha 4) na segunda linha Passos: 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B P (conterá o resto) A (conterá a divisão) volta 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 4 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 5 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 Resto = 2 Quociente = 5