gnupic: some question about the directive GLOBAL in the source code.


Previous by date: 15 Aug 2012 18:01:51 -0000 some question about the directive GLOBAL in the source code., feqin fan
Next by date: 15 Aug 2012 18:01:51 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Previous in thread: 15 Aug 2012 18:01:51 -0000 some question about the directive GLOBAL in the source code., feqin fan
Next in thread: 15 Aug 2012 18:01:51 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan

Subject: Re: some question about the directive GLOBAL in the source code.
From: Holger Oehm ####@####.####
Date: 15 Aug 2012 18:01:51 -0000
Message-Id: <502BE3D2.2070308@holger-oehm.de>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 14.08.2012 12:35, feqin fan wrote:
> Hello, everybody, I'm sorry to trouble you again.
>     I have read most of the source code of gputils. I have a query about
> the implementation of the directive GLOBAL.
>     for example, Have this code:
> 
>     global var
> 
>     udata
> var    res 1
> 
> the assembler deal with the first line "global var",
> the calling sequence is like this : yyparse() - do_or_append_insn(char *,
> struct pnode *) - do_insn(char *, struct pnode *) - do_global()
>     the function do_global() source code :
> 
> 1,    if (state.mode == absolute) {
> 2,        gperror(GPE_OBJECT_ONLY, NULL);
> 3,    } else {
> 4,        for (; parms; parms = TAIL(parms)) {
> 5,            p = maybe_evaluate_concat(HEAD(parms));    //p will point to
> "var".
> 6,        if (p) {
> 7,            s = get_symbol(state.stTop, p);    //s will be NULL
> 8,            if (s == NULL) {
> 9,                snprintf(buf,
> 10,                     sizeof(buf),
> 11                      "Symbol not previously defined (%s).",
> 12,                     p);
> 13,             gperror(GPE_NOSYM, buf);
> 
> 
> 
> the line 4 must be first executed, in line 5 the p will point to "var". and
> in line 7, because the source code "global var" is the first line of the
> being assembled code.
> So. in the function do_global() line 7, the s will be NULL,

And why exactly should s be NULL after the assignment in line 7???
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlAr48sACgkQHdk+97UOUanAAgCfYSdqul+vqfA3ARzB38GScQGT
8lUAoIVHttJ6BOx1WLJCph25B4ak3+dN
=N8FO
-----END PGP SIGNATURE-----

Previous by date: 15 Aug 2012 18:01:51 -0000 some question about the directive GLOBAL in the source code., feqin fan
Next by date: 15 Aug 2012 18:01:51 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Previous in thread: 15 Aug 2012 18:01:51 -0000 some question about the directive GLOBAL in the source code., feqin fan
Next in thread: 15 Aug 2012 18:01:51 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan


Powered by ezmlm-browse 0.20.