


Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
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
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!
³ RBT þ Curso de Assembly þ Aula N§ 02 ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
Por: Bruno Diego
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! :) ?