Co este ti norski studenti zvrzali, alebo, preco nemam rad nedorobky ako AVR...
Pavel Hudecek
phudecek@tiscali.cz
Středa Březen 12 12:35:53 CET 2008
Problém je následující: V asm uvnitř C pro PC bych napsal např toto:
mov al,x
Překladač si zjistí, co je zač proměnná x a podle toho rozhodne, jaký opcode
bude ten MOV mít, resp. celé to zahrne do optimalizace.
V asm pro AVR si musím předem vybrat, zda použiju MOV, když je x v registru,
nebo LD, když je x v paměti a něco na něj přímo ukazuje, případně LDD, kdyby
byl zrovna k dispozici ukazatel, ke kterému se má ještě něco přičíst. Nebo
by to taky mohla bejt konstanta a pak by tam zas muselo bejt LDI.
To znamená, že i kdyby asm pro AVR umožňoval napsat třeba ld r0,x, stejně to
nebude ono, protože mě to nutí lést do zelí optimalizátoru a vnutit mu
konkrétní adresovací režim.
PH
From: "Miroslav Sinko" <sinkomiro@rocketmail.com>
--- Pavel Hudecek <phudecek@tiscali.cz> wrote:
> tak není mo?nej
> rozumnej
> poístup k prominným z C poi kombinaci C+asm.
Neviem, aky prah mate na rozlisenie rozumneho a nerozumneho :-))) ale
pristup mozny je. Vid napr. priklad v kapitolke "C Stub Functions"
http://www.nongnu.org/avr-libc/user-manual/inline_asm.html
Teda, ak ste mysleli inline asm v C kode a nie kombinaciu C a ASM
zdrojakov vramci projektu.
miro
PS: ten inline asm vyzera hrozne, to uznavam, ale po pochopeni to nie
je az take zle.
Další informace o konferenci Hw-list