Subject: simple assembler program

From: "Roman Mashak" <[email-masked]>
Date: Wed, 21 Jul 2004 14:17:14 +0900

Hello!

    I tried to compile simple assembler program:

#define a 1
#define b 2

.ent main
.global main
main:
        li $3, a
        li $2, b
        addu $4, $2, $3
.end main

I use SDE-lite kit version 5.03.06 and compile with sde-as:
#sde-as test.S -o testtest.S: Assembler messages:
test.S:9: Error: absolute expression required `li'
test.S:10: Error: absolute expression required `li'

When I eliminate #define and use just 'li $3, 1' and so on - everything is
compiled correctly. Where is my problem?

Thanks in advance!

With best regards, Roman Mashak.  E-mail: [email-masked]

---

From: Jan-Benedict Glaw <[email-masked]>
Date: Wed, 21 Jul 2004 08:56:44 +0200

On Wed, 2004-07-21 14:17:14 +0900, Roman Mashak <[email-masked]>

> compiled correctly. Where is my problem?

Assembler sources aren't commonly fed through a preprocessor, so your
assembler just ignores the comments (your defines) and uses "a" and "b"
as-is.

MfG, JBG

-- 
   Jan-Benedict Glaw       [email-masked]    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

---

From: "Maciej W. Rozycki" <[email-masked]>
Date: Wed, 21 Jul 2004 15:44:03 +0200 (CEST)

> assembler just ignores the comments (your defines) and uses "a" and "b"

 However, they would be, based on the file name suffix, which is .S for
assembly to be preprocessed or .s for one not to, if fed to the assembler
via the gcc driver.

  Maciej