cap2
9 pág.

cap2

Disciplina:Tecnologias Web3.196 materiais8.574 seguidores
Pré-visualização1 página
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.