pointerová aritmetika
Napsal: 24. 1. 2010 23:49
nějak jsem si na cvičení nezapamatoval/nepochopil jak s tím, tak se ptám tady.
situace:
jak vypadá vygenerovaný assembler? já si ho představuji zhruba takhle:
jenže instrukce ADDP nebere parametr, resp. přičítá int ze zásobníku. čili bych potřeboval nějakou dvojku, kterou jsem si vymyslel, dostat na zásobník.
jak na to? napadá mě vytvořit si nový literál speciálně pro tento případ. nebo si založit nový int a n-krát k němu přičítat jedničku, kterou máme slíbenou ze symbolových tabulek (což je ale poměrně debilní)
navíc zrovna ty MOA soubory k testům na tohle (20-22) jsou zjevně z minulého roku, ten kód v nich vypadá že pracuje s poli a nic moc se z toho vyčíst nedá.
nebo máte někdo správné MOA k tomu?
situace:
Kód: Vybrat vše
type babicka = record a,b,c:integer end;
procedure ahoj (var babi:babicka)
begin
babi.c := 7;
end;
Kód: Vybrat vše
LLDP [-1] // adresa pointeru na stacku
ADDP (2) // offset položky c
LDLITI [666] // hodnota "7"
XSTI
jak na to? napadá mě vytvořit si nový literál speciálně pro tento případ. nebo si založit nový int a n-krát k němu přičítat jedničku, kterou máme slíbenou ze symbolových tabulek (což je ale poměrně debilní)
navíc zrovna ty MOA soubory k testům na tohle (20-22) jsou zjevně z minulého roku, ten kód v nich vypadá že pracuje s poli a nic moc se z toho vyčíst nedá.
nebo máte někdo správné MOA k tomu?