Xref: utzoo comp.lang.c:14339 comp.lang.misc:2176
Path: utzoo!attcan!uunet!husc6!bloom-beacon!apple!desnoyer
From: desnoyer@Apple.COM (Peter Desnoyers)
Newsgroups: comp.lang.c,comp.lang.misc
Subject: Re: Assembly or ....
Message-ID: <21334@apple.Apple.COM>
Date: 28 Nov 88 17:28:12 GMT
References: <1388@aucs.UUCP> <8141@bloom-beacon.MIT.EDU>
Organization: Apple Computer Inc, Cupertino, CA
Lines: 18

The approach that I have found most reasonable is to pay more
attention to learning the machine than the machine language. i.e.,
focus on:
  - processor architectures (stack, register, risc/cisc, etc.;
    something about direct and microcoded implementation)
  - stack frames and calling conventions for different language
    features
  - memory organization - caching, Harvard arch., memory banks, maybe
    virtual memory organization including page attributes.

Of course, if you take these recommendations seriously you wind up
with the equivalent of one or two undergrad courses. (exactly where
I got these ideas.) Once you know these concepts you should be able to
write code fragments for speed or whatever on most machines. I don't
know how you learn how to structure large assembly programs - I cope
by not writing them.

				Peter Desnoyers