Načtení dat z tabulky
Vyzkoušíme jednoduchý program,který bude rozsvěcovat znaky na 7-segmentovce. Výhodou načtení dat je, že je máme umístěna v tabulce a znaky lehce měníme.
MOV DPTR,#TAB ; do 16 bit registru se načte adresa tabulky
MOV R0,#0FFH ; naplnění registru R0
START : MOV A, R0 ; hodnota registru R0 se přesune do A
INC A ; přičtení 1- v prvním okamžiku se akumulátor ; vynuluje
CJNE A, #10, SEM ; porovnávám hodnotu v akumulátoru s číslem ; 10 (počet řádků tabulky)
CLR A ; pokud se hodnoty rovnají, dojde k vynulování; znovu k načítání do 10
SEM: MOV R0, A ; pokud se hodnoty nerovnají, hodnota A se ; přesune(schová )do R0
MOVC A,@A+DPTR ; do A se přesune hodnota,která se nachází na ;adrese (tabulky + hodnota A)
MOV P1,A ; zobrazení na port P1
CALL S1 ; čas 1 sekundy
JMP START ; opakování stále dokola
TAB:DB 01000000B; libovolná data
DB 01111001B
DB 00100100B
DB 00110000B
DB 00011001B
DB 00010010B
DB 00010010B
DB 01111000B
DB 00000000B
DB 00010000B
INCLUDE(CAS.ASM)
END
Jiná možnost je (aby se nemusely počítat řádky tabulky), umístit na konec tabulky hodnotu třeba FF. Ptáme se, zda jsme už na konci. Tabulka pak může mít různý počet řádků pro stejný program.