This is a multi-part message in MIME format.
------=_NextPart_000_0086_01C410EC.FC6F85F0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
TI provides the following two documents:
TMS320C55x DSP Mnemonic Instruction Set Reference Guide
TMS320C55x DSP Algebraic Instruction Set Reference Guide.
What's difference between Mnemonic Instruction Set and Algebraic =
Instruction Set? Both documents are very thick. Do I need to read both =
if I want to learn TI Assembly languge?=20
Thank you.
------=_NextPart_000_0086_01C410EC.FC6F85F0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt; =
mso-layout-grid-align: none">TI=20
provides the following two documents:</P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: =
none"> =20
TMS320C55x DSP Mnemonic Instruction Set Reference Guide</P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: =
none"> =20
TMS320C55x DSP Algebraic Instruction Set Reference Guide.</P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"> </P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: none">What's =
difference=20
between Mnemonic Instruction Set and Algebraic Instruction Set? Both =
documents=20
are very thick. Do I need to read both if I want to learn TI Assembly =
languge?=20
</P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"> </P>
<P class=3DMsoNormal=20
style=3D"MARGIN: 0in 0in 0pt; mso-layout-grid-align: none">Thank=20
you.</P><?xml:namespace prefix =3D o ns =3D=20
"urn:schemas-microsoft-com:office:office" =
/><o:p></o:p></DIV></BODY></HTML>
------=_NextPart_000_0086_01C410EC.FC6F85F0--
What's difference between Mnemonic Instruction Set and Algebraic Instruction Set
Started by ●March 23, 2004
Reply by ●March 23, 20042004-03-23
Peter Xu wrote:> TI provides the following two documents: > > TMS320C55x DSP Mnemonic Instruction Set Reference Guide > > TMS320C55x DSP Algebraic Instruction Set Reference Guide. > > > > What's difference between Mnemonic Instruction Set and Algebraic > Instruction Set? Both documents are very thick. Do I need to read both > if I want to learn TI Assembly languge? > > > > Thank you.You need to learn at least one set to write programs. You need to learn both if you expect to read programs that others have written. You don't need to memorize every instruction. It's reasonable to write programs with a reference card in hand. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●March 23, 20042004-03-23
On 2004-03-23, Jerry Avins <jya@ieee.org> wrote:> Peter Xu wrote: > >> TI provides the following two documents: >> >> TMS320C55x DSP Mnemonic Instruction Set Reference Guide >> >> TMS320C55x DSP Algebraic Instruction Set Reference Guide. >> >> >> >> What's difference between Mnemonic Instruction Set and Algebraic >> Instruction Set? Both documents are very thick. Do I need to read both >> if I want to learn TI Assembly languge? >> >> >> >> Thank you. > > You need to learn at least one set to write programs. You need to learn > both if you expect to read programs that others have written. You don't > need to memorize every instruction. It's reasonable to write programs > with a reference card in hand.examples: Mnemonic: mov ax, bx mul cx add ax, dx Algebraic: ax = bx ax = ax * cx ax = ax + dx Both generate the same opcodes, only the syntax differs. It's all style. I like algebraic better because you don't have to remember which way the moves flow! -- different MP3 every day! http://gweep.net/~shifty/snackmaster . . . . . . . . ... . . . . . . "Maybe if you ever picked up a goddamn keyboard | Niente and compiler, you'd know yourself." -Matthew 7:1 | shifty@gweep.net
Reply by ●March 23, 20042004-03-23
This is a multi-part message in MIME format. ------=_NextPart_000_00E9_01C41108.4FC46CA0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Thank you all. Now I understand the difference. It seems that algebraic instructions are easier to remember. However, the *.out code after disassembling are mnemonic instructions. ----- Original Message -----=20 From: "Crackpot" <shifty@sidehack.sat.gweep.net> Newsgroups: comp.dsp Sent: Tuesday, March 23, 2004 6:24 PM Subject: Re: What's difference between Mnemonic Instruction Set and = Algebraic Instruction Set> On 2004-03-23, Jerry Avins <jya@ieee.org> wrote: > > Peter Xu wrote: > > > >> TI provides the following two documents: > >>=20 > >> TMS320C55x DSP Mnemonic Instruction Set Reference Guide > >>=20 > >> TMS320C55x DSP Algebraic Instruction Set Reference Guide. > >>=20 > >> =20 > >>=20 > >> What's difference between Mnemonic Instruction Set and Algebraic=20 > >> Instruction Set? Both documents are very thick. Do I need to read =both=20> >> if I want to learn TI Assembly languge? > >>=20 > >> =20 > >>=20 > >> Thank you. > > > > You need to learn at least one set to write programs. You need to =learn=20> > both if you expect to read programs that others have written. You =don't=20> > need to memorize every instruction. It's reasonable to write =programs=20> > with a reference card in hand. >=20 >=20 > examples: > Mnemonic: mov ax, bx > mul cx > add ax, dx >=20 > Algebraic: ax =3D bx > ax =3D ax * cx > ax =3D ax + dx >=20 > Both generate the same opcodes, only the syntax differs. It's > all style. I like algebraic better because you don't have to > remember which way the moves flow! >=20 >=20 >=20 >=20 > --=20 > different MP3 every day! =http://gweep.net/~shifty/snackmaster> . . . . . . . . ... . . . . =. .> "Maybe if you ever picked up a goddamn keyboard | Niente=20 > and compiler, you'd know yourself." -Matthew 7:1 | shifty@gweep.net------=_NextPart_000_00E9_01C41108.4FC46CA0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns:o =3D "urn:schemas-microsoft-com:office:office"><HEAD> <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Diso-8859-1"> <META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV> <DIV>Thank you all. Now I understand the difference.</DIV> <DIV>It seems that algebraic instructions are easier to remember.</DIV> <DIV>However, the *.out code after disassembling are mnemonic</DIV> <DIV>instructions.</DIV> <DIV><FONT face=3DArial></FONT> </DIV> <DIV>----- Original Message -----=20 <DIV>From: "Crackpot" <<A=20 href=3D"mailto:shifty@sidehack.sat.gweep.net">shifty@sidehack.sat.gweep.n= et</A>></DIV> <DIV>Newsgroups: comp.dsp</DIV> <DIV>Sent: Tuesday, March 23, 2004 6:24 PM</DIV> <DIV>Subject: Re: What's difference between Mnemonic Instruction Set and = Algebraic Instruction Set</DIV></DIV> <DIV><BR></DIV>> On 2004-03-23, Jerry Avins <<A=20 href=3D"mailto:jya@ieee.org">jya@ieee.org</A>> wrote:<BR>> > = Peter Xu=20 wrote:<BR>> ><BR>> >> TI provides the following two=20 documents:<BR>> >> <BR>> >> = TMS320C55x=20 DSP Mnemonic Instruction Set Reference Guide<BR>> >> <BR>>=20 >> TMS320C55x DSP Algebraic Instruction = Set=20 Reference Guide.<BR>> >> <BR>> >> <BR>> = >>=20 <BR>> >> What's difference between Mnemonic Instruction Set and = Algebraic <BR>> >> Instruction Set? Both documents are very = thick. Do I=20 need to read both <BR>> >> if I want to learn TI Assembly=20 languge?<BR>> >> <BR>> >> <BR>> >> = <BR>>=20 >> Thank you.<BR>> ><BR>> > You need to learn at least = one set=20 to write programs. You need to learn <BR>> > both if you expect to = read=20 programs that others have written. You don't <BR>> > need to = memorize=20 every instruction. It's reasonable to write programs <BR>> > with = a=20 reference card in hand.<BR>> <BR>> <BR>> examples:<BR>>=20 Mnemonic: mov ax, bx<BR>>=20 = mul=20 cx<BR>>=20 = add ax,=20 dx<BR>> <BR>> Algebraic: ax =3D bx<BR>>=20 = ax =3D ax=20 * cx<BR>>=20 = ax =3D ax=20 + dx<BR>> <BR>> Both generate the same opcodes, only the syntax=20 differs. It's<BR>> all style. I like algebraic better = because you=20 don't have to<BR>> remember which way the moves flow!<BR>> = <BR>>=20 <BR>> <BR>> <BR>> -- <BR>>=20 different MP3 every=20 day! <A=20 href=3D"http://gweep.net/~shifty/snackmaster">http://gweep.net/~shifty/sn= ackmaster</A><BR>>=20 . =20 . . =20 . . . . . = ...=20 . . . . =20 . .<BR>> "Maybe if you ever picked up a = goddamn=20 keyboard | Niente <BR>> and = compiler, you'd know yourself." -Matthew 7:1 | <A=20 href=3D"mailto:shifty@gweep.net">shifty@gweep.net</A></DIV></BODY></HTML>= ------=_NextPart_000_00E9_01C41108.4FC46CA0--
Reply by ●March 24, 20042004-03-24
In article 4_ydnZdQoJLBQf3dRVn-sw@wideopenwest.com, Peter Xu at xu@ieee.org wrote on 03/23/2004 19:54:> Thank you all. Now I understand the difference. > It seems that algebraic instructions are easier to remember.i dunno why, but i have always felt differently about it. to me, the 56K instruction set was always easier than the SHArC. (but then, the SHArC had all those exceptions to the rules, like which registers you could multiply-accumulate to.) r b-j> However, the *.out code after disassembling are mnemonic > instructions.wouldn't it be nice if a disassembler could spit out C code? r b-j
Reply by ●March 24, 20042004-03-24
robert bristow-johnson <rbj@surfglobal.net> writes:> In article 4_ydnZdQoJLBQf3dRVn-sw@wideopenwest.com, Peter Xu at xu@ieee.org > wrote on 03/23/2004 19:54: > > > Thank you all. Now I understand the difference. > > It seems that algebraic instructions are easier to remember. > > i dunno why, but i have always felt differently about it. to me, the 56K > instruction set was always easier than the SHArC. (but then, the SHArC had > all those exceptions to the rules, like which registers you could > multiply-accumulate to.)TI is like that, too. Here's an inexcusable inconsistency of the 54x assembler that bit me recently. The instruction "LD #k9, DP" loads the 9-bit constant "k9" into the 9 DP bits (in ST0, status register 0). Well, what would you expect should happen if k9 is an external symbol? I would think it would take the *lower* 9 bits. But NOOOOOO..., TI in their infinite wisdom decided to have the linker select the _upper_ 9 bits of that symbol. Yeah, sure, it's more convenient IF you know about it (the DP is kinda like a page register that selects the upper 9 bits of the address when doing certain types of addressing on the 54x, for those of you like r b-j who have never programmed a TI device). Also, I'd like to state for the record that algebraic assembly is an evil device foisted upon the unwary assembly programmer and should be avoided at all costs. -- Randy Yates Sony Ericsson Mobile Communications Research Triangle Park, NC, USA randy.yates@sonyericsson.com, 919-472-1124
Reply by ●March 25, 20042004-03-25
"Randy Yates" <randy.yates@sonyericsson.com> wrote in message news:xxpwu5amhgm.fsf@usrts005.corpusers.net...> robert bristow-johnson <rbj@surfglobal.net> writes: > > Also, I'd like to state for the record that algebraic assembly is an > evil device foisted upon the unwary assembly programmer and should be > avoided at all costs.Why? I think it's great! It's so easy to understand and read, especially years after you've written it. I love the explicitness about it--no ambiguity about which way the data is moving, where the results end up, etc..
Reply by ●March 25, 20042004-03-25
In article xxpwu5amhgm.fsf@usrts005.corpusers.net, Randy Yates at randy.yates@sonyericsson.com wrote on 03/24/2004 09:45:> robert bristow-johnson <rbj@surfglobal.net> writes: > >> In article 4_ydnZdQoJLBQf3dRVn-sw@wideopenwest.com, Peter Xu at xu@ieee.org >> wrote on 03/23/2004 19:54: >> >>> Thank you all. Now I understand the difference. >>> It seems that algebraic instructions are easier to remember. >> >> i dunno why, but i have always felt differently about it. to me, the 56K >> instruction set was always easier than the SHArC. (but then, the SHArC had >> all those exceptions to the rules, like which registers you could >> multiply-accumulate to.) > > TI is like that, too. > > Here's an inexcusable inconsistency of the 54x assembler that bit me > recently. The instruction "LD #k9, DP" loads the 9-bit constant "k9" > into the 9 DP bits (in ST0, status register 0). Well, what would you > expect should happen if k9 is an external symbol? I would think it > would take the *lower* 9 bits. But NOOOOOO..., TI in their infinite > wisdom decided to have the linker select the _upper_ 9 bits of that > symbol. Yeah, sure, it's more convenient IF you know about it (the > DP is kinda like a page register that selects the upper 9 bits of > the address when doing certain types of addressing on the 54x, for > those of you like r b-j who have never programmed a TI device).even Motorola did it in one aspect: http://groups.google.com/groups?threadm=34164B1C.1CF7%40viconet.com i couldn't believe that the Mot guys were defending their inconsistency, but even given their "rules", they screwed up on one assembly thing and i pointed it out. i think they fixed the bug that they admitted to. r b-j> Also, I'd like to state for the record that algebraic assembly is an > evil device foisted upon the unwary assembly programmer and should be > avoided at all costs.
Reply by ●March 26, 20042004-03-26
"Jon Harris" <goldentully@hotmail.com> writes:> "Randy Yates" <randy.yates@sonyericsson.com> wrote in message > news:xxpwu5amhgm.fsf@usrts005.corpusers.net... >> robert bristow-johnson <rbj@surfglobal.net> writes: >> >> Also, I'd like to state for the record that algebraic assembly is an >> evil device foisted upon the unwary assembly programmer and should be >> avoided at all costs. > > Why?Proof by assertion. -- % Randy Yates % "Rollin' and riding and slippin' and %% Fuquay-Varina, NC % sliding, it's magic." %%% 919-577-9882 % %%%% <yates@ieee.org> % 'Living' Thing', *A New World Record*, ELO http://home.earthlink.net/~yatescr
Reply by ●March 26, 20042004-03-26
On Thu, 25 Mar 2004 09:46:09 -0800, Jon Harris wrote:> "Randy Yates" <randy.yates@sonyericsson.com> wrote in message > news:xxpwu5amhgm.fsf@usrts005.corpusers.net... >> robert bristow-johnson <rbj@surfglobal.net> writes: >> >> Also, I'd like to state for the record that algebraic assembly is an >> evil device foisted upon the unwary assembly programmer and should be >> avoided at all costs. > > Why? I think it's great! It's so easy to understand and read, especially years > after you've written it. I love the explicitness about it--no ambiguity about > which way the data is moving, where the results end up, etc..Well, even algebraic assemblers aren't uniformly algebraic: some instructions just have the form of statements, rather than functions. Then there's the assembler pseudo-ops, which are always statement-shaped, I think. What do algebraic assemblers do for instructions that produce multiple results? How about instruction variants, like add vs add-with-cary? Jumps, calls and returns would still be statements, right? I've used algebraic assembly on an AT&T DSP32C. I didn't think that it made any significant difference, compared to the mnemonic assemblers that I normally use. You still have to understand how the machine works, and what the various instruction formats allow. -- Andrew






