Re: Pøeklad do assembleru
Jan Waclawek
konfera na efton.sk
Neděle Říjen 8 20:34:28 CEST 2023
[preposielam]
Ahoj,
>>>
Můžete mi prosím někdo napstat jak se přeloží v C++ na AtMega
byte b1,x;
if(b1==x){PORTA &=0xFE;};
popřípadě zda se dá vymyslet *časově* úspornější zápis pro shození bitu?
Přerušení je po tu dobu zakázané. Příkazů if bude v přerušení celkem 24
a potřebuji přerušení vyvolat dost často, tak aby vůbec ještě nějaký čas
procesoru zbyl.
>>>
Moj rucny asm-kod za predpokladu, ze bude funkcny, vysiel nasledovne:
; byte b1,x;
; if(b1==x){PORTA &=0xFE;};
LDS Rx, ADR_b1
LDS Ry, ADR_x
CPSE Rx, Ry
RJMP L1:
CBI PORTA,0
L1:
24 x 5 = 120 instrukcii, plus nejaky overload tej rutiny, to je cca
130instrukcii. Kolko to zaberie casu, zalezi na frekvencii oscilatora.
To uz musite ale doriesit Vy.
A.
Další informace o konferenci Hw-list