Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DEF LD 0x80 ; LED adatregiszter (írható/olvasható)
- DATA
- D 00 DIGIT_CODE:
- D 00 DB 0x14, 0x37, 0x46, 0x27, 0x5C, 0x7D, 0x60
- ORG 0x10 ; cím beállítása
- D 10 SUM_LUT:
- D 10 DB 0x00, 0x01, 0x01, 0x02, 0x01, 0x02, 0x02, 0x03; 0-7-ig 1-esek száma
- D 18 DB 0x01, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x04; 8-15-ig 1-esek száma
- CODE
- C 00 init:
- C 00 C000 mov r0, #DIGIT_CODE[00] ; alaphelyzetbe állítás
- C 01 C107 mov r1, #0x07 ; hány bájt van hátra
- C 02 C200 mov r2, #0x00 ; egyes bitek száma
- C 03 read:
- C 03 F8D0 mov r8, (r0) ; bájt átmásolása
- C 04 480F and r8, #0x0F ; alsó 4 bit maszkolása
- C 05 C910 mov r9, #SUM_LUT[10] ; táblázat címének betölése
- C 06 F908 add r9, r8 ; a szükséges eredmény a 10+r8-adik helyen van
- C 07 FAD9 mov r10, (r9) ; eredmény átmásolása
- C 08 F20A add r2, r10 ; hozzáadás a számlálóhoz
- C 09 7800 swp r8 ; alsó-felső 4 bit felcserélése
- C 0A 480F and r8, #0x0F ; felső 4 bit maszkolása
- C 0B C910 mov r9, #0x10 ; táblázat címének betöltése
- C 0C F908 add r9, r8 ; eredmény címének meghatározása
- C 0D FAD9 mov r10, (r9) ; részeredmény betöltése a regiszterbe
- C 0E F20A add r2, r10 ; hozzáadása a számlálóhoz
- C 0F 0001 add r0, #0x01 ; lépés a következő elemre
- C 10 2101 sub r1, #0x01 ; hátralévő bájtok számának csökkentése
- C 11 B203 jnz read[03] ; ha van még hátra, a következő beolvasása
- 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