Dodawanie 8 bit przepełnienia.

0

mam taki problem, mam wyjaśnić kiedy zapalają się flagi CY - carry i OV - overflow, przy dodawaniu liczb na procesorze 8 bit (8051)

jak na przykład mam liczby
100 + 100 CY = 0 OV = 1
70 + 43 0 0

dlaczego jest tak a nie inaczej

0

bo 100+100 na 8 bitach da liczbę ujemną.

0

ale dlaczego??
Poprosiłbym o jakieś wyjaśnienie tego

0

Bo 2^8 daje nam 256, a wiec dla liczb ze znakiem bedzie to od -127 do 128 jak wiemy 100 + 100 daje wiecej niz 128. Natomiast dla liczb bez znaku bedzie ok. Procesor daje instrukcje dla dodawania obu 'typow'.

0

no to wiem że przekracza zakres ale jakim cudem to ma być liczba ujemna.

0

Kod uzupełnień do dwóch - poszukaj informacji o tym.

0

Jest tak po prostu przyjęte. Jeśli liczba nie mieści się na 7bitach i musi wykorzystać najstarszy ósmy bit czyli liczba >= 128 to cpu zapala flagę przepełnienia.
Np. http://pl.wikipedia.org/wiki/Kod_uzupe%C5%82nie%C5%84_do_dw%C3%B3ch

0

czyli mam rozumieć że 100 + 100 = 200 czyli liczba 8 bitowa, a 8 bit powinien być zarezerwowany dla znaku. I tylko dlatego OV się zapala??
to to dlaczego dla 71 + 165 OV jest równe 0? I proszę was jakoś to rozpisać bo siedzę już nad tym 4h, i nic nie rozumiem.

0

A Ty korzystasz z jakiejś dokumentacji w ogóle? Szybki wpis w google mówi:

The Overflow (OV) bit is set if there is a carry-out of bit 6 or out of bit 7, but not both. In other words, if the addition of the Accumulator, operand and (in the case of ADDC) the Carry flag treated as signed values results in a value that is out of the range of a signed byte (-128 through +127) the Overflow flag is set. Otherwise, the Overflow flag is cleared.

0

Jak by była po polsku to bym przeczytał, a szukam jakiś przykładów na necie a nie mogę znaleźć, dlatego PROSZĘ was o rozpisanie mi jednego przykładu, co i skąd się wzięło.
Jak by to była rzecz która jestem w stanie sam zrobić to bym się nieodzywań. Miałem jeszcze jakieś wiaderka rysować ale to tym bardziej nie wiem o co chodzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1