DB - konstanta v paměti

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
pavoucisit
Příspěvky: 176
Registrován: 02 lis 2008, 00:00
Bydliště: Havířov

DB - konstanta v paměti

#1 Příspěvek od pavoucisit »

Dobrý den, začínám se učit na 2051, mám knížky od Matouška a trochu začínám chápat. Ale nechápu DPTR a pohyb v tabulce.Jak je možné, že tabulka TAB má za DB 4 hodnoty a tabulka DISPLEY má DB 3X, ale jen s jednou hodnotou.
TAB: DB 128,178,1,2
DISPLEY: DB 55h
DB 58h
DB 47h
Jak se teda prosím v tabulkách pohybuje.
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#2 Příspěvek od nekmil »

TAB: DB 128,178,1,2

DISPLEY: DB 55h, 58h, 47h

DISPLEY: DB 55h
DB 58h
DB 47h

Tyto zápisy jsou rovnocenné. Né ?
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#3 Příspěvek od Andrea »

pavoucisit píše:Dobrý den, začínám se učit na 2051, mám knížky od Matouška a trochu začínám chápat. Ale nechápu DPTR a pohyb v tabulce.Jak je možné, že tabulka TAB má za DB 4 hodnoty a tabulka DISPLEY má DB 3X, ale jen s jednou hodnotou.
TAB: DB 128,178,1,2
DISPLEY: DB 55h
DB 58h
DB 47h
Jak se teda prosím v tabulkách pohybuje.

Kód: Vybrat vše

TAB: db 128, 178, 1, 2

je z hlediska umístění v paměti totéž jako

Kód: Vybrat vše

TAB: db 128
     db 178
     db 1
     db 2

Do tabulky v programové paměti se leze instrukcí MOVC A,@A+DPTR,
kde do DPTR se dá adresa začátku tabulky (prvního bytu) a v akumulátoru je index do tabulky. Přečtená hodnota je v akumulátoru.
Pro přístup do tabulky v externí datové paměti slouží instrukce MOVX A,@DPTR. Posun v tabulce se musí dělat změnou hodnoty v DPTR.
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#4 Příspěvek od nekmil »

Jak jsme se krásně shodli. :)
Uživatelský avatar
pavoucisit
Příspěvky: 176
Registrován: 02 lis 2008, 00:00
Bydliště: Havířov

#5 Příspěvek od pavoucisit »

Děkuji za odpovědi, takže rozmístění v tabulce je spíše o přehledu programátora, kde co má + popis,který si k tomu napíše. Tzn že DB je omezeno jen 256 konstanty?

Jinak zajdem na pivo pane, jsem ze Šumbarku, Vás madam bych také pozval. ale Plzeň je z ruky (pivo máte výborný).
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#6 Příspěvek od Andrea »

pavoucisit píše:Děkuji za odpovědi, takže rozmístění v tabulce je spíše o přehledu programátora, kde co má + popis,který si k tomu napíše. Tzn že DB je omezeno jen 256 konstanty?

Jinak zajdem na pivo pane, jsem ze Šumbarku, Vás madam bych také pozval. ale Plzeň je z ruky (pivo máte výborný).

Pomocí DB se dá definovat libovolně velký blok dat (kolik je paměti), jen instrukce movc je omezená v indexaci pomocí akumulátoru na rozsah 256 bytů. Nic ale nebrání měnit kromě akumulátoru i DPTR.
A pivo stejně nepiju. :wink:
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“