04-08-2018, 09:17 PM
Ukoliko je asm kod mali možeš predvideti da ti sve promenljive stanu u registre. Tada za sve ovo:
; Increment Segment Counter + 1
lds R17, segmt
ldi R16, 0x01
add R16, R17
sts segmt, R16
možeš koristiti naredbu INC
Probaj, takođe da ovo:
ldi R17, 0x01
cp R16, R17
Zameniš sa CPI.
Zaboravio sam sve asemblerske naredbe treba da može.
Registrima možeš dodeliti imena (na početku si čini mi se tako radio) pa će ti biti lakše za čitanje programa.
Kodirane vrednosti za segmente su po prirodi konstante i smeštaju se u CSEG. Taj jedan instrukcijski ciklus koji pre pročitaš iz DSEG nego iz CSEG ti ne znači ama baš ništa. Mnogo je važnije da ti je softver regularan. Ne juri ni brzinu ni totalno optimizovan kod po pitanju veličine hex fajla. Mikrokontroleri sada imaju toliko flash memorije i jure na toliko megaherca da su ti te dve stvari manje važne od činjenice da sutra to što si napisao možeš i da pročitaš. I ne samo ti već i neko kome budeš prodao svoj kod.
; Increment Segment Counter + 1
lds R17, segmt
ldi R16, 0x01
add R16, R17
sts segmt, R16
možeš koristiti naredbu INC
Probaj, takođe da ovo:
ldi R17, 0x01
cp R16, R17
Zameniš sa CPI.
Zaboravio sam sve asemblerske naredbe treba da može.
Registrima možeš dodeliti imena (na početku si čini mi se tako radio) pa će ti biti lakše za čitanje programa.
Kodirane vrednosti za segmente su po prirodi konstante i smeštaju se u CSEG. Taj jedan instrukcijski ciklus koji pre pročitaš iz DSEG nego iz CSEG ti ne znači ama baš ništa. Mnogo je važnije da ti je softver regularan. Ne juri ni brzinu ni totalno optimizovan kod po pitanju veličine hex fajla. Mikrokontroleri sada imaju toliko flash memorije i jure na toliko megaherca da su ti te dve stvari manje važne od činjenice da sutra to što si napisao možeš i da pročitaš. I ne samo ti već i neko kome budeš prodao svoj kod.