Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.                 DEF LD 0x80                         ; LED adatregiszter (írható/olvasható)
  2.  
  3.                     DATA    
  4.  
  5. D 00            DIGIT_CODE:
  6. D 00                DB      0x14, 0x37, 0x46, 0x27, 0x5C, 0x7D, 0x60
  7.  
  8.                     ORG     0x10                    ; cím beállítása
  9.  
  10. D 10            SUM_LUT:
  11. D 10                DB      0x00, 0x01, 0x01, 0x02, 0x01, 0x02, 0x02, 0x03; 0-7-ig 1-esek száma
  12. D 18                DB      0x01, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x04; 8-15-ig 1-esek száma
  13.  
  14.                     CODE    
  15. C 00            init:
  16. C 00    C000        mov     r0, #DIGIT_CODE[00]     ; alaphelyzetbe állítás
  17. C 01    C107        mov     r1, #0x07               ; hány bájt van hátra
  18. C 02    C200        mov     r2, #0x00               ; egyes bitek száma
  19.  
  20. C 03            read:
  21. C 03    F8D0        mov     r8, (r0)                ; bájt átmásolása
  22. C 04    480F        and     r8, #0x0F               ; alsó 4 bit maszkolása
  23. C 05    C910        mov     r9, #SUM_LUT[10]        ; táblázat címének betölése
  24. C 06    F908        add     r9, r8                  ; a szükséges eredmény a 10+r8-adik helyen van
  25. C 07    FAD9        mov     r10, (r9)               ; eredmény átmásolása
  26. C 08    F20A        add     r2, r10                 ; hozzáadás a számlálóhoz
  27.  
  28. C 09    7800        swp     r8                      ; alsó-felső 4 bit felcserélése
  29. C 0A    480F        and     r8, #0x0F               ; felső 4 bit maszkolása
  30. C 0B    C910        mov     r9, #0x10               ; táblázat címének betöltése
  31. C 0C    F908        add     r9, r8                  ; eredmény címének meghatározása
  32. C 0D    FAD9        mov     r10, (r9)               ; részeredmény betöltése a regiszterbe
  33. C 0E    F20A        add     r2, r10                 ; hozzáadása a számlálóhoz
  34. C 0F    0001        add     r0, #0x01               ; lépés a következő elemre
  35. C 10    2101        sub     r1, #0x01               ; hátralévő bájtok számának csökkentése
  36. C 11    B203        jnz     read[03]                ; ha van még hátra, a következő beolvasása
  37.  
  38. C 12    9280        mov     LD[80], r2              ; ha végeztünk, az eredmény kijelzése
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement