1 / 38

Technika Mikroprocesorowa 1

Technika Mikroprocesorowa 1. Arytmetyka liczb binarnych. Arytmetyka 2 /38. Arytmetyka binarnych liczb całkowitych Arytmetyka liczb stałopozycyjnych Arytmetyka liczb zmiennopozycyjnych.

arnav
Download Presentation

Technika Mikroprocesorowa 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technika Mikroprocesorowa 1 Arytmetyka liczb binarnych

  2. Arytmetyka 2/38 Arytmetyka binarnych liczb całkowitychArytmetyka liczb stałopozycyjnychArytmetyka liczb zmiennopozycyjnych

  3. Arytmetyka - NB 3/38 Dodawanie i odejmowanie liczb w NB Przeniesienie (CY) sygnalizuje: nadmiar przy dodawaniu NB pożyczkę przy odejmowaniu w NB

  4. Arytmetyka – U2 4/38 Dodawanie i odejmowanie liczb w U2 Zał. S1, S2, S - znaki argumentów i wyniku (ich najstarsze bity) Nadmiar: przy dodawaniu w U2 występuje gdy S1=S2S przy odejmowaniu w U2 występuje gdy S1S2 i CY=S

  5. Arytmetyka – BCD 5/38 Dodawanie i odejmowanie liczb w BCD Przeniesienie (CY) po korekcji sygnalizuje: nadmiar przy dodawaniu BCD pożyczkę przy odejmowaniu w BCD

  6. Arytmetyka – długie liczby 6/38

  7. i=X CY=x L1: 88 80 LW: X 02 X X L2: 35 C2 00 Arytmetyka – długie liczby 7/38 i=0 CY=0 88h + 35h + 0 = 0BDh i=1 CY=0 BD 80h + C2h + 0 = 142h 42 03 CY=1 i=2 02h + 00h + 1 = 03h CY=0 i=3 (>= m=3)

  8. Arytmetyka – długie liczby 8/38

  9. Arytmetyka – mnożenie bez znaku 9/38 UWAGA: ilość bitów potrzebnych do reprezentacji iloczynu równa się sumie liczby bitów czynników 1. Mnożenie przez wielokrotne dodawanie Zał: L1,L2 - 1-bajtowe czynniki, LW - 2-bajtowy iloczyn

  10. Arytmetyka – mnożenie bez znaku 10/38 2. Mnożenie restytucyjne 1215 10101 (21) x 204 x 110 (6) 4860 101010 2430 10101 247860 1111110 (126) Zał: L1,L2 - 1-bajtowe czynniki, LW - 2-bajtowy iloczyn

  11. Arytmetyka – mnożenie bez znaku 11/38 3. Przykłady mnożenia w asemblerze Z80

  12. Arytmetyka – mnożenie bez znaku 12/38

  13. Arytmetyka – mnożenie bez znaku 13/38

  14. Arytmetyka – mnożenie bez znaku 14/38 • 4. Mnożenie długich liczb • operowanie dłuższymi ciągami bitów; • wykorzystanie procedur pomocniczych mnożących np. bajtbajt: • mnożenie tetrad jako cyfr szesnastkowych przy użyciu tabliczki mnożenia - opłacalne tylko dla liczb w BCD; • mnożenie przyśpieszone.

  15. Arytmetyka – mnożenie bez znaku 15/38 • mnożenie przyśpieszone: • zał: x = Bx1 + x0 y = By1 + y0 (B=256) • w = xy = (Bx1 + x0)(By1 + y0) - 4 mnożenia 4 dodawania • niech: u = x1 - x0 i v = y1 - y0 wtedy: • uv = x1y0 + x0y1 - x1y1 - x0y0 x1y0 + x0y1 = uv + x1y1 + x0y0 • w = BBx1y1 + B(x1y0 + x0y1) + x0y0 = • = BBx1y1 + Buv + Bx1y1 + Bx0y0 + x0y0 = • = (BB + B)x1y1 + Buv + (B + 1)x0y0

  16. Arytmetyka – mnożenie bez znaku 16/38 5. Mnożenie przez stałą Zał: wartość stałej jest znana na etapie pisania programu. Każda stała K ma n-bitowe rozwinięcie binarne: K = Jeżeli ilość bitów ki = 1 jest niewielka (1..4) to można zastosować regułę: L  K = L  2i1 + L  2i2 + L  2i3 + L  2i4 gdzie i1, i2, i3, i4 oznaczają potęgi 2 dla których kiX = 1. Jeżeli K=2m to mnożenie jest równoważne m-krotnemu przesunięciu arytmetycznemu w lewo liczby L.

  17. Arytmetyka – mnożenie bez znaku 17/38

  18. Arytmetyka – dzielenie bez znaku 18/38 1. Dzielenie przez wielokrotne odejmowanie zał: L1,L2 - 1-bajtowa dzielna i dzielnik, LW - 1-bajtowy iloraz

  19. Arytmetyka – dzielenie bez znaku 19/38 2. Dzielenie przez potęgę 2 równoważne przesunięciu o odpowiednią ilość bitów w prawo

  20. Arytmetyka – dzielenie bez znaku 20/38 3. Dzielenie restytucyjne zał: L1,L2 - 1-bajtowa dzielna i dzielnik, LW - 1-bajtowy iloraz LD - 2-bajtowa zmienna pomocnicza (rejestr)

  21. -L2 L2: 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 Arytmetyka – dzielenie bez znaku 21/38 Przykład: kolejne stany LD przy dzieleniu L1=31 przez L2=7 LD: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 reszta iloraz

  22. Arytmetyka – dzielenie bez znaku 22/38 4. Przykłady dzielenia w asemblerze Z80 4.1. Dzielenie przez wielokrotne odejmowanie

  23. Arytmetyka – dzielenie bez znaku 23/38 4.2. Dzielenie restytucyjne

  24. Arytmetyka – mnożenie i dzielenie liczb ze znakiem 24/38 1. Można stosować przedstawione algorytmy mnożenia i dzielenia uwzględniając znak wyniku operacji zgodnie z regułami matematycznymi

  25. Arytmetyka – mnożenie i dzielenie liczb ze znakiem 25/38

  26. Arytmetyka – mnożenie i dzielenie liczb ze znakiem 26/38 2. Można stosować przedstawione algorytmy mnożenia i dzielenia po tzw. rozszerzeniu znakowym argumentów operacji Rozszerzenie znakowe zapisu liczby w kodzie U2 polega na podwojeniu długości reprezentacji binarnej poprzez poprzedzenie jej bitami ‘0’ gdy jest dodatnia albo bitami ‘1’ gdy jest ujemna. Przykładowo: -100: 0FF9Ch  0FFFFFF9Ch 1000: 03E8h  000003E8h Na tak „wydłużonych” liczbach realizuje się przedstawione wcześniej algorytmy działań, ograniczając uzyskany wynik do właściwej długości(np. 32 bitów po mnożeniu dwóch liczb 16-bitowych przed rozszerzeniem, 16 bitów po dzieleniu dwóch takich liczb, itp.). Jednak działania na tak wydłużonych liczbach skutkują zdwojonym zapotrzebowaniem na pamięć danych i znacznie dłuższym czasem obliczeń.

  27. Arytmetyka – zapis stałopozycyjny 27/38 1. Format stałopozycyjny liczby binarnej • zakres reprezentowanych wartości: 0 .. 2m-2-n • przykładowe reprezentacje wartości rzeczywistych przy m=8 i n=4: • 10,25  00001010.0100 10,20  00001010.0011 = 10,1875 • ilość pozycji części całkowitej (m) i ułamkowej (n) zależy od: • wymaganej dokładności reprezentacji liczb rzeczywistych; • zakresu użytkowego liczb rzeczywistych. • Do reprezentacji liczb ze znakiem stosuje się kod U2.

  28. Arytmetyka – zapis stałopozycyjny 28/38 Przykładowe formaty stałopozycyjne i osiągane w nich zakresy liczb: 2. Dodawanie i odejmowanie liczb stałopozycyjnych Operacje te przeprowadza się tak jak na liczbach całkowitych

  29. Arytmetyka – zapis stałopozycyjny 29/38 3. Mnożenie liczb stałopozycyjnych

  30. Arytmetyka – zapis stałopozycyjny 30/38 4. Dzielenie liczb stałopozycyjnych

  31. Arytmetyka – zapis zmiennopozycyjny 31/38 1. Zasada zapisu zmiennopozycyjnego

  32. Arytmetyka – zapis zmiennopozycyjny 32/38 Mantysa jest pamiętana zwykle w kodzie ZM (wyróżniony bit znaku). Cecha jest przechowywana wprost w kodzie U2 lub w tzw. przesuniętym U2:

  33. Arytmetyka – zapis zmiennopozycyjny 33/38 2. Wzory podstawowych operacji arytmetycznych

  34. Arytmetyka – zapis zmiennopozycyjny 34/38 3. Przykłady formatów zmiennopozycyjnych

  35. Arytmetyka – zapis zmiennopozycyjny 35/38

  36. Arytmetyka – zapis zmiennopozycyjny 36/38 4. Przykładowe algorytmy 4.1. Dodawanie i odejmowanie

  37. Arytmetyka – zapis zmiennopozycyjny 37/38 4.2. Mnożenie

  38. Arytmetyka – zapis zmiennopozycyjny 38/38 4.3.Dzielenie

More Related