Postat: 8 december 2008, 18:09:33
Inline assembler? hmmm nu ramlar vi genast in på kod struktur... 
Föredrar å det starkaste att inte ha inline assembler.
Bättre är isåfall att göra C-koden i en C-fil och assembler koden i en assembler-fil, låta dem bli kompilerade var för sig och sedan länka ihop dem till ett slutresultat.
Varför? Jo genom inline assembler har man genast gjort sin C-kod oportabel gentemot olika typer av *toolchains* (alltså fortfarande bygga för samma cpu men med tex någon köpe-kaka istället för gcc)
Assembler skiljer sig inte bara från cpu-typ till cpu-typ utan alltsom oftast även toolchain till toolchain och asm("blablabla") är ett utmärkt sätt att måla in sig i ett hörn.
Håller dock med Nerre i sak om att även när man programmerar i högnivå språk (såsom C) så är det mycket användbart att förstå assememblern för cpu'n. Frågan är iofs om det är det första man behöver lära sig. Man kanske kan komma ganska långt som nybörjare med att använda ett färdigt exempel projekt, modifiera lätt för allehanda saker, och vips en dag finner man sig själva läsa om hur man ska autoincrementera registret som innehåller pekaren till ursprungsdata samtidigt som man kopierar till en ny address.
Föredrar å det starkaste att inte ha inline assembler.
Bättre är isåfall att göra C-koden i en C-fil och assembler koden i en assembler-fil, låta dem bli kompilerade var för sig och sedan länka ihop dem till ett slutresultat.
Varför? Jo genom inline assembler har man genast gjort sin C-kod oportabel gentemot olika typer av *toolchains* (alltså fortfarande bygga för samma cpu men med tex någon köpe-kaka istället för gcc)
Assembler skiljer sig inte bara från cpu-typ till cpu-typ utan alltsom oftast även toolchain till toolchain och asm("blablabla") är ett utmärkt sätt att måla in sig i ett hörn.
Håller dock med Nerre i sak om att även när man programmerar i högnivå språk (såsom C) så är det mycket användbart att förstå assememblern för cpu'n. Frågan är iofs om det är det första man behöver lära sig. Man kanske kan komma ganska långt som nybörjare med att använda ett färdigt exempel projekt, modifiera lätt för allehanda saker, och vips en dag finner man sig själva läsa om hur man ska autoincrementera registret som innehåller pekaren till ursprungsdata samtidigt som man kopierar till en ny address.