|
Subject: Re: Aw: Re: [stella] OT: Programming, CS theory From: Chris Wilkson <ecwilkso@xxxxxxx> Date: Fri, 26 Oct 2001 15:21:28 -0400 (EDT) |
On Fri, 26 Oct 2001, Glenn Saunders wrote:
> If we're talking about syntax, what I dislike the most about assembly syntax
> vs. high level languages is how hard it is to visualize the differences
> between a plain old label and a subroutine.
What difference? :P
> So if you have a big subroutine it's hard to differentiate the natural
> startpoint from internal labels used by loops and branching stuff.
What I do...well...first, my code is SMALL. And I tend to not use subroutines,
but...what I do when I *do* use a subroutine, is I gives it a name. Then
the insertion points have numerical subscripts. Another method that I use,
and I think this will help you, is to use a "Current routine:calling routine"
format. For example, if I had a routine called FOO and I jumped into the
middle of it from something called BAR, I'd label the insertion point FOO_BAR.
This of course gets crazy fast, which is why I tend to just use numerical
subscripts. "FOO_start", "FOO_001", "FOO_002", etc.
But the thing that will help you (and others), more than anything else, is
commenting. We all know that, but I like to say it anyway. Because knowing
is a lot different than doing.
> It's also a little hard to think of a subroutine as not having to have a
> singular startpoint. You can seek into and JSR into any line of a
> subroutine you want. You can't do that in any other language I know of.
If it helps, think of it as an implied GOTO statement. So the first entry
isn't really a subroutine. It a piece of code that then jumps to a subroutine.
For example...
...
FOO_start LDA $4
CLC ; implied "GOTO FOO_001"
FOO_001 ADC #7 ; entering here from another routine
RTS
...
I know it's just made up justification and fritzfumbling, but it works for
me. :)
> Plus it's hard to think about function parameters either, since there are no
> rules for how to pass parameters to assembly subroutines. You can use the
> stack, use the registers, or use general RAM.
Rules are arbitrary. Period. What's the difference if sumguy made up the
rules when he made up the language, or if you make a rule that you'll only
pass parameters via the stack. Or via RAM. Now take it one step further
and define a rule for each separate function.
(stop looking at me like that!)
-Chris
-
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Aw: Re: [stella] OT: Programmin, Glenn Saunders | Thread | Re: Aw: Re: [stella] OT: Programmin, Thomas Jentzsch |
| Re: Aw: Re: [stella] OT: Programmin, Erik Mooney | Date | Re: Aw: Re: [stella] OT: Programmin, Thomas Jentzsch |
| Month |