• DPTR
..
Je registr, který se skládá ze dvou bajtů DPH a DPL. Využívá se jako ukazatel do paměti ROM, do té se nejprve uloží hodnoty a pak už je jen „čteme“.
Takže když MOV DPTR,#13H, nastavíme ukazatel pak příkazem
MOVC A, @A+DPTR pošleme hodnotu, která je v paměti ROM na adrese 13H do akumulátoru - ten se nejprve musí vymazat !!! ( MOV A, #0 ).
Jelikož existuje instrukce INC DPTR, která zvýší hodnotu celého 16-ti bitového DPTR o 1, můžeme se pohybovat s ukazatelem po paměti a vybírat její obsah ve smyčce.
Lze jím třeba počítat počet smyček, nechávat si v něm hodnoty a podobně jako u jakéhokoli volně použitelného registru.
!!! Nezapomínejte však, že je to 16-ti bitový reg. tedy MOV DPTR, R2 NELZE !!!
Na místo toho můžete použít MOV DPH, R6 a MOV DPL, R5.
Příklad :
Umístění v ROM
0000 ORG 0
0000 SJMP START ;JE NUTNE PRESKOCIT TABULKU
0002
0002 TAB: DB 183, 221, 183, 22 ;TABULKA HODNOT
0006
0006 START: MOV R4,#4 ;NASTAVENI POCET HODNOT
0008 MOV DPTR, #TAB ;TO SAME JAKO MOV DPTR,#0002H
000B CYKL: MOV A,#0 ;VYNULOVANI AKUMULATORU
000D MOVC A,@A+DPTR ;PRESUNUTI HODNOTY
000E MOV P3,A ;VYSLANI HODNOTY NA P3
0010 INC DPTR ;NAVYSENI DPTR O 1
0011 DJNZ R4,CYKL
0013 END
--> všimněte si skoku z 0002 na 0006 => to protože tam jsou uloženy ty hodnoty.
THE END
Tak tady máme konec poslední lekce kurzu Assembleru, doufám, že jsem některým pomohl projít školní horor s názvem Assembler a některým možná otevřel nový rozhled.
Vždy když nám ve škole přibyl nějaký předmět, ptal jsem se sám sebe: "Na co mi to bude?.."
A aby vám tento kurz k něčemu byl, tak jsem se na základě ankety rozhodl vytvářet články s názvem Hardware pro AT89S8252.
Zde uplatníme naše programování do praxe. Byl bych rád kdybyste se aktivně zapojili a posílali mi náměty, co byste chtěli s tímto mikroprocesorem vytvářet, můžu pak celé zapojení navrhnout a vydat na tento web.
Mé kontaktní údaje jsou v sekci Redakce, nebo pište do poradny.