Zaslal: so únor 16 2008, 20:18 Předmět: mapa paměti
zdravím, potřeboval bych software, který by dokázal z asm kódu pro 8051 vytáhnout použitá paměťova místa z celého programu. dále při symbolickém pojmenování: x equ 20h ;promená x , program vytáhne adresu(20h), název(x), komentář(proměnná x). Ušetřilo by mi to hodně času a zbytečných chyb. Ideálně kdyby program vygeneroval textovou tabulku s obsazením paměti do textového souboru. Existuje něco takového nebo mi nezbyde než si to naprogramovat sám?
Založen: Sep 10,
2004 Příspěvky: 19649 Bydliště: Jičín, Český ráj
Zaslal: so únor 16 2008, 22:41 Předmět:
Tys asi ještě s assemblerem nedělal, viď?
Jinak bys věděl, že jde o jazyk symbolických adres, který při překladu do strojového kódu ty symboly nahradí adresami skutečnými a symboly se nikam neukládají.
Ve zdrojovém kódu se při překladu vytvoří tabulka skutečných adres, ale to je také naposledy, co ji lze vidět. Do procesoru se už pálí s adresami z té tabulky. Bez symbolických názvů.
Při zpětném překladu se ti v instrukcích skoků a volání a v definicích objeví místo symbolu adresa, které byl symbol přiřazen.
Na tobě je, dát těm adresám jména - disassembler je nemá kde vyčíst.
Stejně jako komentáře, kterými si při psaní programu ulehčuješ orientaci, procesor na nic nepotřebuje a jen by tam překážely, proto se nepřekládají a neukládají.
Jednoduše - takový software neexistuje. Leda křišťálová koule.
s asseblerem pracuji pár měsiců, asi jsem se špatně vyjádřil. Když píši program(trochu složitější) ztrácím rychle přehled, která paměťová místa jsem využil, proto se ptám na program, který by mi dokázal vypsat využití uživatelské paměti - 30h až 7Fh, bitově adresovatelného prostoru 20h - 2Fh a portů z NEzkompilovaného programu(pro mcu atmel 89s51/52...). Zatím to dělám ručně, ale až příliš mě to zdržuje a je velká šance, že se přepíšu a způsobím si zbytečné komplikace.
Ukázka výpisu paměti:
Založen: Sep 10,
2004 Příspěvky: 19649 Bydliště: Jičín, Český ráj
Zaslal: ne únor 17 2008, 8:42 Předmět:
Tak ti nevím: všechny kompilátory pro Z80 na konci překladu vypsaly tabulku se seznamem návěští a adres, jen vytisknout nebo uložit.
Že by to kompilátory pro 2051 neuměly, když tu tabulku stejně potřebují?
Zkus najít jiný kompilátor na www.kvetakov.net
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: ne únor 24 2008, 23:39 Předmět:
Použijte, co radi Hill. Ta tabulka se obvykle nazývá mapa linkování a sestavuje ji linker, pokud se mu zadá příslušný přepínač. K obsazování paměti používejte direktovy kompilátoru, používejte relativní segmenty pro kód, absolutní jen tam, kde je to nezbytné - startovací rutina. Je to již docela dlouho, co jsem v asm51 dělal, ale myslím, že je možno symbolicky direktivami kompilátoru popsat obsazení veškeré paměti - i bitové a potom se to vše objeví v mapě.
pro editaci používám pspad a tam mám nastavený zatím cass51(zkoušel jsem i asm51 ale ani jeden to nejspíš neumí) jako kompilátor, protokol o překladu se mi vypíše dolů do logu a lze nastavit spuštění dalšího programu jehož log se automaticky otevře v další záložce, což by měla byt ta mapa paměti, začal jsem si psát proto zatím program sám, aspoň splní všechny mé pořžadavky , po dopsaní dám na program odkaz třeba to pomůže i někomu jinýmu,
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
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.