Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

AT89C2051 a jeho PC

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
anonym






PříspěvekZaslal: čt květen 11 2006, 14:13    Předmět: AT89C2051 a jeho PC Citovat

Jak pracuje Program Counter u tohoto (a 8951 podobných) procesorů?
V pdf příručce popisující instrukční sadu jsem se dočetl, že různé instrukce jsou různě dlouhé (od jednoho do tří bajtů). Jak jsou potom seřazené?
U PICu mi to bylo jasné - co 14bit. instrukce to adresovatelný "řádek" programu. Adresovat PC čítač do poloviny instrukce je zhola nemožné.
Připadá mi, jako kdybych mohl na 8951 neúmyslným použitím např.funkce ACALL "natočit" PC přesně doprostřed instrukce, když bude v ROMce "rozlezlá" přes tři bajty..
Jak to funguje? Když procesor narazí na Opcode dané instrukce, nejspíš se dozví o kolik bajtů se má PC posunout (délka dané instrukce je naštěstí konstantní) ale co když použiju funkci ACALL?
Návrat nahoru
Tik
Neregistrovaný





PříspěvekZaslal: čt květen 11 2006, 17:20    Předmět: ATxx51 Citovat

Zrejme dobre nechapes instrukci ACALL.
Instrukce slouzi pro kratke volani podprogramu (pouze 2kB), takze jejim
parametrem je prima adresa kodu podprogramu ktery musi koncit instrukci RET.

ACALL cadr
Cinnost instrukce:
PC <- (PC)+2
SP <- (SP)+1
(SP) <- (lowPC)
SP = (SP)+1
(SP) <- (highPC)
PC /D0...D10/ <- cadr

RET
Cinnost instrukce:
(highPC) <- ((SP))
SP <- (SP)-1
(lowPC) <- ((SP))
SP = (SP)-1

Takto se chovaji vsechny procesory s 8bit pro kod.
Návrat nahoru
eljaro



Založen: Dec 03, 2004
Příspěvky: 441
Bydliště: Krnov

PříspěvekZaslal: čt květen 11 2006, 17:33    Předmět: Citovat

tak horký to není jak píšeš instrukce má skutečně od 1 do 3 bytů a zpravidla je to způsobeno tím co vlastně ta instrukce dělá ! asi ses trochu nechal zmást jeden byte obsahuje kod instrukce a těch je 00h až po ffh a zbytek záleží na instrukci samotné pokud instrukce pracuje i jinými registry než systémovými musí určit vlastně s jakými a ta jsou ty další 1 až dva byte kodu ! viz tebou míněná instrukce acall kád je pak F1h + adresa 11bitová . Mislím že by sis mněl napsat nějaký jednoduchý prográmek a spusti simulaci a bude ti to jasné !
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky AOL Instant Messenger MSN Messenger
eljaro



Založen: Dec 03, 2004
Příspěvky: 441
Bydliště: Krnov

PříspěvekZaslal: čt květen 11 2006, 17:45    Předmět: Citovat

ještě tak mimo soutěž tvuj dotaz postrádá loguku pokut používaš nějaký kompilátor tak to vědět nepotřebujěš ! jedíný případ je že chceš přímo mněnit pc podle vlastního uvážení na základě toho skákat v programovém kodu ?! ale i tak to znamená vytvořit vlastní kompilátor ?!
takže nechápu smyslnost ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky AOL Instant Messenger MSN Messenger
Tik
Neregistrovaný





PříspěvekZaslal: čt květen 11 2006, 17:55    Předmět: Pro eljaro Citovat

Asi si nebudeme rozumet, o jakem jadre pises???
Instrukce ACALL u vsech xx51 slouzi vyhradne k volani podprogramu a
jeji strojovy kod ma 2 byty /aaa10001/aaaaaaaa/,
doufam ze tady nebudu vyucovat zaklady programovani jadra x51.

PS.
x51 neprestanu milovat Laughing
Návrat nahoru
Tik
Neregistrovaný





PříspěvekZaslal: čt květen 11 2006, 18:11    Předmět: Pro eijaro Citovat

Pro uplnost!!!

Instrukce LCALL dela to stejne ale ma 3byty.
Strojovy kod: /0001010/high cadr/low cadr/

a tak tomu bude navzdy!!!
Návrat nahoru
anonym






PříspěvekZaslal: čt květen 11 2006, 19:23    Předmět: Citovat

eljaro: Ano, chci si vytvořit pro 8951 vlastní kompilátor.Hlavně mě zajímá jak to pracuje - tj.je PC na aktuálně čtené adrese FLASH ROM nezávislý? Nebo se posouvá podle Opcode (tedy prvního byte) instrukce?
Návrat nahoru
Tik



Založen: May 11, 2006
Příspěvky: 3
Bydliště: Brno

PříspěvekZaslal: čt květen 11 2006, 20:38    Předmět: Citovat

Ano, pri normalnim behu se PC zvysuje o tolik bytu kolik jich ma instrukce na kterou ukazuje (to je dane).
V pripade skoku (tech je u x51 nejvice (1Cool) pouziva kazdy kompilator navesti (pro ziskani relativni adresy kam ma skocit) a ta je operandem instrukce, tim se zabrani skoku do neznama.
Vubec mi neni jasne k cemu by byla instrukce MOV PC,data
na stesti neexistuje ale s PC lze delat malou obklikou cokoliv (vyssi divci).
Aby to melo nejaky smysl tak je to o vlastnim kompilatoru protoze
zadny existujici takove prasarny nedovoli.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
anonym






PříspěvekZaslal: čt květen 11 2006, 20:54    Předmět: Citovat

Děkuju za odpovědi. Asm rozumím, napsal jsem již jednoduchý kompilátor a disassembler pro procesory PIC a ta lapále z různě dlouhými instrukcemi 8951 mě zmátla.Takže číslo PC uvedené v návěstí adresuje vždy první byte instrukce, je to tak?
Opravdu nemám v úmyslu dělat z PC nějaké prasárny.
Návrat nahoru
Tik



Založen: May 11, 2006
Příspěvky: 3
Bydliště: Brno

PříspěvekZaslal: čt květen 11 2006, 21:05    Předmět: Citovat

Ano, uz si rozumime.
Tesim ze na dalsi ??zahady??
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
eljaro



Založen: Dec 03, 2004
Příspěvky: 441
Bydliště: Krnov

PříspěvekZaslal: pá květen 12 2006, 7:05    Předmět: no pončin vlastního programu je chvályhodná věc ! Citovat

osobně všechny takové obdivuji já už se moc do učení nehrnu a jde mi líp ten hadware ! a pak věkově to už není moje parketa ! Ale itak přeji hodně štěstí při vývoji ! Ale osobně bych rád ši potkal někoho kdo dokáže mluvit s periferiemi pod xp - žádné složitosti prostě načíst a zobrazit nějaký data a pořípadě je i vrátit - ale jak se ukazuje je to dysciplína jen pro otrlé a už se začínám bát že se to fakt budu muset začít učit sám !
Question pro inspiraci Exclamation http://www.vaultbbs.com/pinnacle/ koukni sem ! jejich x51 studio jede ve demu až do 2kb kodu a i pak stojí jen 99$ tak není důvod možná ani to vyvíjet ?! ale itak dej vědět jak to dopadlo ! Já sice už utekl k pic ale to je jiná kapitola ! Tak tedy hodně zdaru ! Twisted Evil
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky AOL Instant Messenger MSN Messenger
eljaro



Založen: Dec 03, 2004
Příspěvky: 441
Bydliště: Krnov

PříspěvekZaslal: pá květen 12 2006, 7:08    Předmět: Citovat

PS: co takle se stát neanonymním ? Razz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky AOL Instant Messenger MSN Messenger
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.13 sekund