Anyone have or know of any good resources for learning assembly language? Particularly for DSP applications?
Thanks!
Thanks!
Believe me, this isn't a problem. Assembly is entirely different between chips. However, something you may need to understand is the arch... That is, what all it assumes it has, what it's registers are, etc. You need as much as possible about your chip itself, which helps greatly in learning the instruction set.Ohh okay that makes sense. Well its for DSP applications so something more along the lines of TI's C55xx series chips or something rather than x86.
So should there be a TI assembly programming manual type of thing?
I am a bit concerned that they will assume some knowledge of assembly, which i have none...
Hmm can you be more specific? Cuz this seems to go against everything i've found/been told on the subject... in fact, TI's DSPLib functions are all in assembly for efficiency...most DSP applications/Programs written for microcontrollers are usually better written in C or another high level programming language other than assembly, especially when running FFT algorithms or routines..... there just isn't a very efficient way of doing those calculations in assembly...
Ooohhh okay cool! Good to know. I will dig around a bit more. So the assembly programming manual should be included with all the other datasheets for the chip i assume, right? Thanks again for the tips!Believe me, this isn't a problem. Assembly is entirely different between chips. However, something you may need to understand is the arch... That is, what all it assumes it has, what it's registers are, etc. You need as much as possible about your chip itself, which helps greatly in learning the instruction set.
Interesting! Yeah, i've seen the source code and whatnot... i just don't have the slightest clue what i am looking at haha. I don't know assembly syntax even... other than a semi-colon means a comment haha! Good resource though, thanks!Most DSP chip makers supply optimised libraries for such things as FFT and filter algorithms.
If you look at the makers web sites (TI, Microchip etc) you may find source code in the download or application notes areas.
OK, just checked - example code on the Microchip site:
http://www.microchip.com/stellent/id...GE&nodeId=1408
and app notes:
http://www.microchip.com/stellent/id...GE&nodeId=2560
(Not looked at it in detail, hope it's some use).
Except scripting languages, languages with emulated machine code (java), and basic (considered by some to be an assembly dialect) are compiled into assembly. Therefore, assembly makes nice glue between various other languages. Many languages, including C/C++, have an __asm directive to include assembly code in it. Once something is in assembly, it's hard to identify what language it originated in. Though, for all intents and purposes, since it's written in asesmbly, it theoretically would be no problem to interface those libs with assembly, too. It depends a bit on the libs, though.Hmm can you be more specific? Cuz this seems to go against everything i've found/been told on the subject... in fact, TI's DSPLib functions are all in assembly for efficiency...
Usually it's a separate manual, but yes, it SHOULD be among them (reality is much different, however, as many devices are closed and so forth).Ooohhh okay cool! Good to know. I will dig around a bit more. So the assembly programming manual should be included with all the other datasheets for the chip i assume, right? Thanks again for the tips!
Assembly syntax varies between assembler, not even the cpu. Compare GAS and FASM syntaxes for the x86, and you'll find that the "destination oprand" and the "source oprand" are swapped.Interesting! Yeah, i've seen the source code and whatnot... i just don't have the slightest clue what i am looking at haha. I don't know assembly syntax even... other than a semi-colon means a comment haha! Good resource though, thanks!
;Copy ebx into eax
mov eax, ebx ;Fasm/masm/(in fact, most common syntax)
movd %ebx, %eax ;GAS (I hate gas, so i'm not 100% sure on the specifics here.)