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