Buscar

Representação de Números e Caracteres

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 9 páginas

Prévia do material em texto

Cap2 – Representação de Números e Caracteres. 
Página 1 de 9 
2. Representação de Numeros e Caracteres. 
 
2.1 Conceitos básicos 
 
Bit = BInary digiT = vale sempre 0 ou 1 
 elemento básico de informação 
 
Byte = 8 bits processados em paralelo (ao mesmo tempo) 
 
Word = 2 bytes = 16 bits 
 
Double word = 2 words = 4 bytes = 32 bits 
 
Nibble = 4 bits (utilidade para BCD) 
 
 
Posição de bits: 
 
 
Para 1 byte: 7 6 5 4 3 2 1 0 
0 1 0 1 0 1 0 1 
 
 
Para 1 word: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
 byte alto (high byte) | byte baixo (low byte) 
 
 
Obs: 
Words são armazenados em bytes consecutivos em memórias de 8 bits. 
Byte baixo = byte inferior ou byte de menor ordem -> endereço N 
Byte alto = byte superior ou byte de maior ordem -> endereço N+1 
 
Cap2 – Representação de Números e Caracteres. 
Página 2 de 9 
2.2 Representação de números 
 
Números em base binária (base 2): 
 
a) 1 byte 
 
00100111b = 0.27 + 0.26 + 1.25 + 0.24 + 0.23 + 1.22 + 1.21 + 1.20 
 = 0 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 39d 
 = 2716 ou 27h 
 
b) 1 word 
 
0101011101101110b = 0.215 + 1.214 + ... + 1.22 + 1.21 + 0.20 
 = 22382d 
 = 576E16 ou 576Eh (mais fácil de representar!) 
 
 high byte = 0101 0111b = 57h 
 low byte = 0110 1110b = 6Eh 
 
 
Números em base octal (base 8): 
 
a) byte 
 
2578 = 2.82 + 5.81 + 7.80 
 = 128 + 40 + 7 = 175d 
 = 010_101_111b = 10101111b 
 
b) word 
 
0573268 = 0.85 + 5.84 + 7.83 + 3.82 + 2.81 + 6.80 
 = 0 + 20480 + 3584 + 192 + 16 + 6 = 24278d 
 = 000_101_111_011_010_110b = 0101111011010110b 
 
Cap2 – Representação de Números e Caracteres. 
Página 3 de 9 
Números em base hexadecimal (base 16): 
 
a) byte 
 
D516 = 13.161 + 5.160 
 = 208 + 80 = 288d 
 = 1101_0101b = 11010101b 
 
b) word 
 
A03916 = 10.163 + 0.162 + 3.161 + 9.160 
 = 40960 + 0 + 48 + 9 = 41017d 
 = 1010_0000_0011_1001b = 1010000000111001b 
 
 
Conversão entre bases numéricas: 
 
Tipo de conversão Procedimento 
 
Decimal => Binário Divisões sucessivas por 2 até se obter zero no 
quociente; leitura dos dígitos binários de baixo 
para cima. 
Binário = > Decimal Soma de potências de 2 cujo expoente é a 
posição do bit e cujo coeficiente é o próprio bit. 
Hexadecimal => Binário Expandir cada dígito hexa em quatro dígitos 
binários segundo seu valor. 
Binário => Hexadecimal Compactar cada quatro dígitos binários em um 
único dígito hexa segundo seu valor. 
Decimal => Hexadecimal Divisões sucessivas por 16 até se obter zero no 
quociente; leitura dos dígitos de baixo para cima. 
Hexadecimal => Decimal Soma de potências de 16 cujo expoente é a 
posição do dígito e cujo coeficiente é o valor do 
próprio dígito hexa. 
 
Cap2 – Representação de Números e Caracteres. 
Página 4 de 9 
2.3 Representação sinalizada e não sinalizada de números inteiros: 
 
 
Exemplo 1: 01110001b 
 
valor não sinalizado = 0.27 + 1.26 + 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 
 
 = 64 + 32 + 16 + 1 = 113d 
 
 
valor sinalizado bit de sinal = 0 => " + " (positivo) 
 
 = 1.26 + 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 
 
 = 64 + 32 + 16 + 1 = 113d logo: +113d 
 
 
Exemplo 2: 10110001b 
 
valor não sinalizado = 1.27 + 0.26 + 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 
 
 = 128 + 32 + 16 + 1 = 177d 
 
valor sinalizado bit de sinal = 1 => " - " (negativo) 
 
 10110001 <= número em complemento de 2 (C2) 
 
 01001110 <= número com todos os bits invertidos 
 + 1_ 
 01001111 <= valor do número (magnitude) 
 
 magnitude (7 bits) = 1.26 + 0.25 + 0.24 + 1.23 + 1.22 + 1.21 + 1.20 
 
 = 64 + 8 + 4 + 2 + 1 = 79d logo: - 79d 
Cap2 – Representação de Números e Caracteres. 
Página 5 de 9 
Exemplo 3: 70FFh = 0111000011111111b 
 
valor não sinalizado = 0.215 + 1.214 + ... + 1.22 + 1.21 + 1.20 
 
 
valor sinalizado bit de sinal = 0 => " + " (positivo) 
 
 = valor igual ao não sinalizado 
 
 
 
Exemplo 4: C777h = 1100011101110111b 
 
valor não sinalizado = 1.215 + 1.214 + ... + 1.22 + 1.21 + 1.20 
 
 bit de sinal = 1 => " - " (negativo) 
 
valor sinalizado = a ser calculado considerando o número em C2 
 
 
 
Alguns números em hexadecimal, em representação sinalizada: 
 
0FFFh positivo, 2 bytes 
EF0h positivo, 3 dígitos hexa, 2 bytes, byte alto 0Eh, byte baixo F0h 
1h positivo, 1 byte, 01h 
80h positivo, se 2 bytes => 0000000010000000b 
 negativo, se 1 byte => 10000000b 
8000h negativo, byte alto 80h, byte baixo 00h 
C321h negativo 
FFFFh negativo 
 
Cap2 – Representação de Números e Caracteres. 
Página 6 de 9 
2.4 Representação de caracteres ASCII: 
 
 
• Letras e pontuação não são representáveis diretamente em computadores 
e circuitos lógicos. 
 
• Utiliza-se alguns códigos binários de de 6, 7 ou 8 bits, que atribuem a cada 
combinação binária um caracter alfa-numérico. 
 
• código mais conhecido e utilizado é o ASCII (American Standard Code for 
Information Interchange). Veja a tabela 2.5, pagina 32 do livro-texto. 
 
• Exemplos: 
 
“A” – 42h ou 0100 0010 
“B” – 43h ou 0100 0011 
“X” – 58h ou 0101 1000 
“a” – 62h ou 0110 0010 
“x” – 78h ou 0111 1000 
“0” – 30h ou 0011 0000 
“9” – 39h ou 0011 1001 
“?” – 3Fh ou 0011 1111 
“ ” – 20h ou 0010 0000 
“ . ” – 2Eh ou 0010 1110 
 
 
 
 
Cap2 – Representação de Números e Caracteres. 
Página 7 de 9 
2.5 Exemplo de um programa processando números 
 
A especificação do programa SOMA: 
 
 - iniciar 
 - ler a variável A da memória 
 - ler a variável B da memória 
 - somar A + B 
 - converter o resultado para caracter ASCII 
 - exibir o caracter no monitor 
 - terminar 
 
O fluxograma: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Início 
Ler a variável A 
Ler a variável B 
Somar A + B 
Exibir caracter no monitor 
Fim 
Converter o resultado para 
caracter ASCII 
Cap2 – Representação de Números e Caracteres. 
Página 8 de 9 
O programa SOMA completo: 
 
TITLE PROGRAMA PARA SOMA DE DOIS NUMEROS 
.MODEL SMALL 
.STACK 100h 
; 
.DATA 
A DB 2 ;definicao e inicializacao da variavel A 
B DB 5 ;definicao e inicializacao da variavel B 
SUM DB ? ;definicao da variavel SUM (não inicializada) 
; 
.CODE 
;inicializacao de DS 
 MOV AX,@DATA 
 MOV DS,AX ;inicializa DS 
; 
;soma dos numeros 
 MOV AL,A ;AL recebe o conteudo de A 
 ADD AL,B ;AL contem A+B 
 MOV SUM,AL ;variavel SUM recebe o conteudo de AL 
; 
;conversao de hexa para ASCII 
 ADD SUM,30h ;somando 30h para compatibilizar a 
 ;quatidade em SUM com o caracter ASCII 
; 
;visualizacao do resultado na tela 
 MOV AH,02h ;funcao DOS para exibicao de caracter 
 MOV DL,SUM ;dado pronto para sair em DL 
 INT 21h ;exibe na tela 
; 
;saida do DOS 
 MOV AH,4Ch ;funcao de retorno para o DOS 
 INT 21h ;saida para o DOS 
 END 
 
Cap2 – Representação de Números e Caracteres. 
Página 9 de 9 
2.6 Atividades práticas: 
 
Rode o programa utilizando o TASM e o TLINK. 
 
Verifique o que ocorrerá se os valores definidos inicialmente nas variáveis A 
e B forem alterados para: 
 
a) –2 e 5 
b) 2 e – 5 
 
Troque a instrução ADD AX,B por SUB AX,B e use as variáveis: 
 
c) –2 e 5 
d) 2 e – 5 
 
Procure explicar os resultados obtidos com o auxílio da teoria de números 
sinalizados e com a tabela de caracteres ASCII. 
 
Tente agora especificar os valores iniciais de A e B em: 
 
a) Binário 
b) Hexadecimal 
 
Faça finalmente –2 e 5 expressos em binário e em hexadecimal. Use 
complemento de 2 para representar o número negativo. 
 
Se você desejar “formatar” a resposta que o programa exibe no monitor, 
procure incluir mudanças de linha e alguns “tabs” para mover o cursor na tela.

Outros materiais