Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;*******************************************************************
- ;* Digitális technika VIMIAA01 HF2 megoldás *
- ;* Adatvektor aktív egyes bitjeinek megszámolása, *
- ;* eredmény kijelzése a LED periférián *
- ;*******************************************************************
- DEF LD 0x80 ; LED adatregiszter (írható/olvasható).
- DATA
- ;*******************************************************************
- ;* Az adatvektor tárolása a memóriában *
- ;*******************************************************************
- DIGIT_CODE:
- DB 0x29, 0x7A, 0x37, 0x45, 0x16, 0x5B, 0x60 ; Digit kód: 2734156
- ;*******************************************************************
- ;* A HF2: Adatvektor 1 értékű bitjeinek megszámolása *
- ;* Regiszter használat: r0 = Adatpointer, *
- ;* r1 = Adatelem számláló, *
- ;* r2 = Bitszámláló *
- ;* r8 - r15 = Munkaregiszterek *
- ;*******************************************************************
- CODE
- start:
- MOV r0, #DIGIT_CODE ; Az adatvektor mutató betöltése.
- MOV r1, #0x07 ; Adatvektor bájtok száma.
- MOV r2, #0x00 ; A bitszámláló előkészítése.
- read:
- MOV r8, (r0) ; Aktuális adatelem betöltése memóriából.
- ADD r0, #0x01 ; Adatvektor mutató léptetése.
- bit_loop:
- SL0 r8 ; Shiftelés balra, nulla behozásával.
- ADC r2, #0x00 ; Átvitel hozzáadása a bájtszámlálóhoz.
- CMP r8, #0x00 ; Nincs további teendő, ha az akutális elem nulla.
- JNZ bit_loop ; Ha nem nulla, akkor folyatatjuk a shiftelést.
- SUB r1, #0x01 ; Adatvektor bájtjainak csökkentése.
- JNZ read ; Ha nem nulla, akkor még van feldolgozatlan elem.
- MOV LD, r2 ; Eredmény kiírása a LED-ekre.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement