Ir para conteúdo

Dúvido sobre Carry e Borrow


bleszerd

Posts Recomendados

Olá estou seguindo um livro sobre assembly (especificamente este) e estou um pouco confuso quanto ao conceito de carry e borrow.

Eu entendi que, utilizando a base binária como exemplo, 0b10 + 0b10 = 0b00 com o carry setado. Da mesma forma que 0b00 - 0b01 resultará em 0b11 com um borrow (não sei se entendi o que seria esse borrow, mas creio que utiliza-lo nesse contexto esteja correto).

A parte que me deixou confuso foi a seguinte na imagem. Pelo que eu entendi X = 1 + (-1) = 0 com o carry setado, e da mesma forma X = 1 - 1 = 0 com o carry setado também, e isso não tem lógica na minha cabeça já que na segunda operação (1 - 1) ele não precisa de uma nova casa "emprestada".

image.thumb.png.c53412105eb87fa79f47d305a2d0b228.png

Por favor corrijam qualquer besteira que eu disse e, se possível, me indiquem materiais para leigos em assembly e microprocessadores. Thanks!! :)

Link para o comentário
Compartilhar em outros sites

Voltemos às aulas da Tia Jandira, lá no ensino fundamental...

Como é que conseguíamos subtrair 7 de 3 na subtração 33 - 17? Você "pega emprestado" 1 do 3 e faz 13-7 = 6... e na próxima posição o 3 torna-se 2 porque você  "pegou 1 emprestado" e teremos 2 - 1 = 1 e, portanto o resultado e 16, não é?

Esse "pega emprestado" é o borrow (literalmente, em inglês, "empréstimo").

Aliás, em binário: 0 - 0 = 0 (e o borrow [carry] = 0).

PS: E sim... o lance do Borrow ser complementar ao Carry está errado, basta ver a tabela verdade das duas operações com relação aos Carry e Borrow. No texto, o imbecil do autor enfiou os pés pelas mãos ao afirmar isso... Merece um esporro!

O que o autor quis dizer com complementação do carry e borrow é em relação às operações de soma e adição... No exemplo, 1 - 1 resulta em borrow zerado (não há "pegação de empréstimo"), mas na operação 1 + (-1) há o "vai um" (porque -1, em complemento 2 é ele mesmo - se usarmos apenas 1 bit)... Numa operação com mais de um bit (8, por exemplo), -1 = 0b11111111, o que causará o mesmo efeito.

É apenas uma informação útil...

Para entender "carry" e "borrow" basta lembrar como se faz em decimal com os "vai uns" (carry" e "pega 1" (borrow), em cada algarismo de uma operação (adição e subtração, respectivamente).

Link para o comentário
Compartilhar em outros sites

Entendi! Faz todo o sentido agora, inclusive queria algum dia conversar com o autor em algum fórum na internet pra ver se ele toma vergonha na cara e para de passar as coisas erradas nos seus livros.

De qualquer forma, dá pra continuar seguindo esse material? Minha ideia é aprender sobre sistemas operacionais no futuro, mas pelo que eu percebi o conteúdo na internet é bem superficial.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...