From: karthik b. g. <sdc...@ya...> - 2003-01-29 07:25:56
|
Hi, I am into using lookup table for a project and i want to know the usage of db . I think it is not mentioned in the manual . _asm; sdsea: db 0x002,0x003 mov dptr,#sdsea _endasm; I get the following error : ?ASXXXX-error -<o> in line 301 of kari.asm <o>.org in REL area or directive/mnemonic error removing kari.rel kari.rel : cannot open how to use db in sdcc ? any other alternative ?? karthik bala guru __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com |
From: Jesus Calvino-F. <Je...@ec...> - 2003-01-29 07:55:52
|
Hi Karthik, You don't know much about C, do you? Trying to program a microcontroller in C without knowing the C language first makes no sense to me. Anyhow, you can implement look up tables very easily in ANY C compiler: unsigned char sdsea[]={0x02, 0x03}; By the way, I would like to recommend you "The C Programming Language", Second Edition. by Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, Inc., 1988. It has been published in many languages and it is easy to read and cheap. Once you are done reading it, download and read "The Final word on the 8051" (search for it using www.google.com). Also download the data sheet for the microcontroller you are using and read it. Finally don't forget to read "sdccman.txt" which is someplace in the documentation directory of sdcc. If the answer you are looking for is not there, we will be happy to help you. Cheers Jesus At 11:25 PM 1/28/03 -0800, karthik bala guru wrote: >Hi, > >I am into using lookup table for a project and >i want to know the usage of db . I think it >is not mentioned in the manual . > >_asm; >sdsea: db 0x002,0x003 >mov dptr,#sdsea >_endasm; > >I get the following error : >?ASXXXX-error -<o> in line 301 of kari.asm > <o>.org in REL area or > directive/mnemonic error >removing kari.rel >kari.rel : cannot open > >how to use db in sdcc ? any other alternative ?? > >karthik bala guru > > > >__________________________________________________ >Do you Yahoo!? >Yahoo! Mail Plus - Powerful. Affordable. Sign up now. >http://mailplus.yahoo.com > > >------------------------------------------------------- >This SF.NET email is sponsored by: >SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! >http://www.vasoftware.com >_______________________________________________ >Sdcc-user mailing list >Sdc...@li... >https://lists.sourceforge.net/lists/listinfo/sdcc-user |
From: Masao K. <m_k...@yb...> - 2003-01-29 08:04:02
|
Use ".db". ----- Original Message ----- From: "karthik bala guru" <sdc...@ya...> To: <sdc...@li...> Sent: Wednesday, January 29, 2003 4:25 PM Subject: [Sdcc-user] db > Hi, > > I am into using lookup table for a project and > i want to know the usage of db . I think it > is not mentioned in the manual . > > _asm; > sdsea: db 0x002,0x003 > mov dptr,#sdsea > _endasm; |
From: karthik b. g. <sdc...@ya...> - 2003-01-29 13:42:26
|
Thanx for that .db worked well for hex values. sorry, it is my mistake . it is 0x0002 and 0x0003. THe following worked for hex values but for the strings , i want to know the technique to make it work . perfect implementation of .db ----------------------------- _asm; sdsea: .db 0x0002,0x0003 mov dptr,#sdsea _endasm; I found that using .db is the correct approach and just db is not needed. I am able to get the above correctly. But, how about moving a string of characters using db directive ? I tried the following with .db to move a string ----------------------------------------------- 1) _asm; sdsea: .db 'sdc' mov dptr,#sdsea _endasm The above didnt work. 2) _asm; sdsea: .db 's;','d;','c;' mov dptr,#sdsea _endasm THe above gave missing or improper delimiter error. 3) _asm; sdsea: .db '#s;','#d;','#c;' mov dptr,#sdsea _endasm The above got compiled but doesnt give the correct output except for the first character. 4) _asm; sdsea: .db 's;','d;','c;' mov dptr,#sdsea _endasm The above got compiled but did not give the correct output except for the first character 's'. How to use strings with .db directive ? How to move 'sdc' in to memory using directive and call it using the .db directive ? karthik bala guru --- Masao Kumagishi <m_k...@yb...> wrote: > Use ".db". > > ----- Original Message ----- > From: "karthik bala guru" <sdc...@ya...> > To: <sdc...@li...> > Sent: Wednesday, January 29, 2003 4:25 PM > Subject: [Sdcc-user] db > > > Hi, > > I am into using lookup table for a project and > i want to know the usage of db . I think it > is not mentioned in the manual . > > _asm; > sdsea: db 0x002,0x003 > mov dptr,#sdsea > _endasm; __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com |
From: Dave M. <mc...@ne...> - 2003-01-29 16:28:04
|
This is all in the documentation. See section 1.4.8, 1.4.9, and 1.4.10 of file asmlnk.doc in SDCC's as/doc subdirectory. Really. I'm as guilty as anyone when it comes to not reading in the docs thoroughly enough. But this one is plain and simple. -Dave On Wednesday, January 29, 2003, at 08:42 AM, karthik bala guru wrote: > Thanx for that .db worked well for hex values. > sorry, it is my mistake . it is 0x0002 and 0x0003. > > THe following worked for hex values but for > the strings , i want to know the technique > to make it work . > > perfect implementation of .db > ----------------------------- > > _asm; > sdsea: .db 0x0002,0x0003 > mov dptr,#sdsea > _endasm; > > I found that using .db is the correct > approach and just db is not needed. > > I am able to get the above correctly. > > But, how about moving a string of characters > using db directive ? > > I tried the following with .db to move a string > ----------------------------------------------- > > 1) > _asm; > sdsea: .db 'sdc' > mov dptr,#sdsea > _endasm > The above didnt work. > > 2) > _asm; > sdsea: .db 's;','d;','c;' > mov dptr,#sdsea > _endasm > THe above gave missing or improper delimiter > error. > > 3) > _asm; > sdsea: .db '#s;','#d;','#c;' > mov dptr,#sdsea > _endasm > The above got compiled but doesnt give > the correct output except for the first > character. > > 4) > _asm; > sdsea: .db 's;','d;','c;' > mov dptr,#sdsea > _endasm > The above got compiled but did not give > the correct output except for the first > character 's'. > > > How to use strings with .db directive ? > How to move 'sdc' in to memory using > directive and call it using the .db > directive ? -- Dave McGuire "Wear whatever you want...Just don't be surprised St. Petersburg, FL if you wind up with a blow-gun dart in your prosthetic boobies." -Kurt Huhn |
From: Masao K. <m_k...@yb...> - 2003-01-30 00:19:51
|
Yes, I agree. And you seems to misunderstand single quote(') and double quote("). They are unary operators like minus sign(-) in ASXXXX assembler. See section 1.3.1 of asmlnk.doc. I wrote like this before: _asm mov A,'s;' _endasm; But this semicolon followed by a single quote is just a trick to avoid sintax error by the compiler. I would write such a table as an array of C like this: code unsigned char sdsea[3] = {'s','d','c'}; code unsigned char sdsea2[4] = "sdc"; // ASCIZ string void main(void) { _asm mov dptr,#_sdsea ... _endasm; } Masao ----- Original Message ----- From: "Dave McGuire" <mc...@ne...> To: "karthik bala guru" <sdc...@ya...> Cc: <sdc...@li...> Sent: Thursday, January 30, 2003 1:27 AM Subject: Re: [Sdcc-user] db > > This is all in the documentation. See section 1.4.8, 1.4.9, and > 1.4.10 of file asmlnk.doc in SDCC's as/doc subdirectory. > > Really. I'm as guilty as anyone when it comes to not reading in the > docs thoroughly enough. But this one is plain and simple. > > -Dave > > On Wednesday, January 29, 2003, at 08:42 AM, karthik bala guru wrote: > > Thanx for that .db worked well for hex values. > > sorry, it is my mistake . it is 0x0002 and 0x0003. > > > > THe following worked for hex values but for > > the strings , i want to know the technique > > to make it work . > > > > perfect implementation of .db > > ----------------------------- > > > > _asm; > > sdsea: .db 0x0002,0x0003 > > mov dptr,#sdsea > > _endasm; > > > > I found that using .db is the correct > > approach and just db is not needed. > > > > I am able to get the above correctly. > > > > But, how about moving a string of characters > > using db directive ? > > > > I tried the following with .db to move a string > > ----------------------------------------------- > > > > 1) > > _asm; > > sdsea: .db 'sdc' > > mov dptr,#sdsea > > _endasm > > The above didnt work. > > > > 2) > > _asm; > > sdsea: .db 's;','d;','c;' > > mov dptr,#sdsea > > _endasm > > THe above gave missing or improper delimiter > > error. > > > > 3) > > _asm; > > sdsea: .db '#s;','#d;','#c;' > > mov dptr,#sdsea > > _endasm > > The above got compiled but doesnt give > > the correct output except for the first > > character. > > > > 4) > > _asm; > > sdsea: .db 's;','d;','c;' > > mov dptr,#sdsea > > _endasm > > The above got compiled but did not give > > the correct output except for the first > > character 's'. > > > > > > How to use strings with .db directive ? > > How to move 'sdc' in to memory using > > directive and call it using the .db > > directive ? |