Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Conceitos básicos de aritmética binária e representação de números negativos em Assembly, Notas de estudo de Eletrônica

Este documento fornece uma explicação sobre conceitos básicos de aritmética binária, tais como adição e subtração, e a representação de números negativos em assembly. Além disso, aborda a diferença entre char e unsigned char na linguagem c e como a cpu lida com operações aritméticas em assembly.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 09/02/2008

bruno-diego-10
bruno-diego-10 🇧🇷

5 documentos

1 / 4

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ RBT þ Curso de Assembly þ Aula N§ 02 ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
Por: Bruno Diego
ÕÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ ASSEMBLY II ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍ;
0 0
8 4
Mais alguns conceitos s o necess rios para que o pretenso
0 0
9 3
programador ASSEMBLY saiba o que est fazendo. Em eletr nica
0 0
8 2
digital estuda-se a algebra booleana e aritim tica com n£meros
0 0
8 2
0 0
8 4
bin rios. Aqui esses conceitos tamb m s o importantes... Vamos
0 0
8 7
0 0
8 2
come ar pela aritim tica bin ria:
0 0
8 7
0 0
8 4
0 0
8 4
A primeira opera o b sica - a soma - n o tem muitos
0 0
8 2
mist rios... basta recorrer ao equivalente decimal. Quando somamos
dois n£meros decimais, efetuamos a soma de cada algarismo em
0 0
8 7
0 0
8 4
separado, prestando aten o aos "vai um" que ocorrem entre um
algarismo e outro. Em bin rio fazemos o mesmo:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 1010b + 0110b = ? ³
³ ³
³ 111 <- "Vai uns" ³
³ 1010b ³
³ + 0110b ³
³ ÄÄÄÄÄÄÄÄÄ ³
³ 10000b ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ora, na base decimal, quando se soma - por exemplo - 9 e 2, fica
0 0
9 3
1 e "vai um"... Tomemos o exemplo do od metro (aquele indicador de
quilometragem do carro!): 09 -> 10 -> 11
0 0
8 2
Enquanto na base decimal existem 10 algarismos (0 at 9), na
0 0
9 3
base bin ria temos 2 (0 e 1). O od metro ficaria assim:
00b -> 01b -> 10b -> 11b
Portanto, 1b + 1b = 10b ou, ainda, 0b e "vai um".
0 0
8 7
0 0
8 4
0 0
8 2
A subtra o mais complicada de entender... Na base decimal
existem os n£meros negativos... em bin rio nao! (Veremos depois
como "representar" um n£mero negativo em bin rio!). Assim, 1b - 1b
= 0b (l¢gico), 1b - 0b = 1b (outra vez, evidente!), 0b - 0b = 0b
0 0
8 8
0 0
8 2
(hehe... voc deve estar achando que eu estou te sacaneando, n ?),
pf3
pf4

Pré-visualização parcial do texto

Baixe Conceitos básicos de aritmética binária e representação de números negativos em Assembly e outras Notas de estudo em PDF para Eletrônica, somente na Docsity!

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ RBT þ Curso de Assembly þ Aula N§ 02 ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

Por: Bruno Diego

ÕÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ ASSEMBLY II ³

ÔÍÍÍÍÍÍÍÍÍÍÍÍ;

0 0 Mais alguns conceitos s8 4 o necess rios para que o pretenso (^) 0 0 programador ASSEMBLY saiba o que est fazendo. 0 0 Em eletr9 3 nica digital estuda-se a algebra booleana e aritim8 2 tica com n£meros 0 0 8 2

0 0 bin rios. Aqui esses conceitos tamb 0 0 m s8 4 o importantes... Vamos

8 7

0 0 come ar pela aritim8 2 tica bin ria:

0 0 8 7

0 0 8 4

0 0 A primeira opera o b sica - a soma - n8 4 o tem muitos 0 0 mist8 2 rios... basta recorrer ao equivalente decimal. Quando somamos dois n£meros decimais, efetuamos a soma de cada algarismo em 0 0 8 7

0 0 separado, prestando aten (^) 8 4o aos "vai um" que ocorrem entre um algarismo e outro. Em bin rio fazemos o mesmo:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ 1010b + 0110b =? ³ ³ ³ ³ 111 <- "Vai uns" ³ ³ 1010b ³ ³ + 0110b ³ ³ ÄÄÄÄÄÄÄÄÄ ³ ³ 10000b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

Ora, na base decimal, quando se soma - por exemplo - 9 e 2, fica 0 0 1 e "vai um"... Tomemos o exemplo do od9 3 metro (aquele indicador de quilometragem do carro!): 09 -> 10 -> 11

0 0 Enquanto na base decimal existem 10 algarismos (0 at 0 0 8 2 9), na base bin ria temos 2 (0 e 1). O od9 3 metro ficaria assim: 00b -> 01b -> 10b -> 11b

Portanto, 1b + 1b = 10b ou, ainda, 0b e "vai um".

0 0 8 7

0 0 8 4

0 0 A subtra o (^) 8 2 mais complicada de entender... Na base decimal existem os n£meros negativos... em bin rio nao! (Veremos depois como "representar" um n£mero negativo em bin rio!). Assim, 1b - 1b = 0b (l¢gico), 1b - 0b = 1b (outra vez, evidente!), 0b - 0b = 0b 0 0 8 8

0 0 (hehe... voc deve estar achando que eu estou te sacaneando, n8 2 ?),

mas e 0b - 1b = ?????

0 0 8 7

0 0 8 4

0 0 A solu o (^) 8 2a seguinte: Na base decimal quando subtraimos um algarismo menor de outro maior costumamos "tomar um emprestado" para que a conta fique correta. Em bin rio a coisa funciona do mesmo 0 0 jeito, mas se n8 4 o tivermos de onde "tomar um emprestado" devemos indicar que foi tomado um de qualquer forma:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ 0b - 1b =? ³ ³ ³ ³ 1 <- Tomamos esse um emprestado de algum lugar! ³ 0 0 ³ 0b (n8 4 o importa de onde!) ³ ³ - 1b ³ ³ ÄÄÄÄÄÄ ³ ³ 1b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 Esse "1" que apareceu por m gica (^) 8 2conhecido como BORROW. Em um n£mero bin rio maior basta usar o mesmo artificio:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ 1010b - 0101b =? ³ ³ ³ 0 0 ³ 1 1 <- Os "1"s que foram tomados emprestados s8 4 o ³ ³ 1010b subtra¡dos no proximo digito. ³ ³ - 0101b ³ ³ ÄÄÄÄÄÄÄÄÄ ³ ³ 0101b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 Fa8 7 a a conta: 0000b 0 0 - 0001b, vai acontecer uma coisa interessante! Fa8 7 a a mesma conta usando um programa, ou calculadora cientifica, que manipule n£meros bin rios... O resultado vai ser 0 0 8 7

0 0 ligairamente diferente por causa da limita (^) 8 4o dos digitos suportados 0 0 pelo software (ou calculadora). Deixo a conclus8 4 o do "por que" 0 0 8 7

0 0 8 8

0 0 desta diferen a para voc ... (Uma dica, fa8 7 a a conta com os "n" 0 0

8 7

0 0 digitos suportados pela calculadora e ter a explica (^) 8 4o!).

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ Representando n£meros negativos em bin rio ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

Um artificio da algebra booleana para representar um n£mero

0 0 8 2

0 0 , de -128 at8 2 -1.

Em "C" (ou PASCAL), a mesma l¢gica pode ser aplicada aos "int" e "long" (ou INTEGER e LONGINT), s¢ que a quantidade de bits ser maior ("int" tem 16 bits de tamanho e "long" tem 32).

0 0 8 4

0 0 8 7

0 0 N o se preocupe MUITO com a representa (^) 8 4o de n£meros negativos em bin rio... A CPU toma conta de tudo isso sozinha... mas, as 0 0 vezes, voc 0 0 8 8 tem que saber que resultado poder ser obtido de uma

8 7

0 0 8 4

0 0 opera o aritim8 2 tica em seus programas, ok?

0 0 8 7

0 0 9 4

0 0 8 7

0 0 As outras duas opera 0 0 es matem ticas b sicas (multiplica (^) 8 4o e 8 4

0 0 8 2

0 0 8 4

0 0 divis o) tanb m est o presentes nos processadores 80x86... Mas, n 0 0 8 4 o necessitamos ver como o processo (^) 8 2feito a n¡vel bin rio. Confie na CPU! :) ?