Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!gatech!hubcap!ncrcae!ncr-sd!hp-sdd!hplabs!hp-pcd!uoregon!markv From: markv@uoregon.UUCP (Mark VandeWettering) Newsgroups: comp.unix.questions,comp.edu,comp.lang.misc Subject: Re: Teaching Assembler on VAX (BSD 4.3) Message-ID: <242@uoregon.UUCP> Date: Wed, 24-Jun-87 15:45:31 EDT Article-I.D.: uoregon.242 Posted: Wed Jun 24 15:45:31 1987 Date-Received: Fri, 26-Jun-87 07:19:11 EDT References: <1762@megaron.arizona.edu> <1005@killer.UUCP> Reply-To: markv@drizzle.UUCP (Mark VandeWettering) Organization: University of Oregon, Computer Science, Eugene OR Lines: 90 Xref: mnetor comp.unix.questions:2952 comp.edu:470 comp.lang.misc:468 In article <1005@killer.UUCP> elg@killer.UUCP (Eric Green) writes: >in article <1762@megaron.arizona.edu>, debray@arizona.edu (Saumya Debray) says: >> In article <965@killer.UUCP>, elg@killer.UUCP (Eric Green) writes: >>> I've seen juniors in CS who program in PL/1 or "C" (depending on machine >>> used), who don't know the fogiest thing about what goes on at a lower level. >>> Most of them have a VERY hard time figuring out what an operating system >>> is, because while they've READ about computer architecture, they've never >>> EXPERIENCED computer architecture. Experience which programming in assembly >>> language gives you, real quick. There is no question in my mind that most CIS students don't have a clear perception about what happens on a computer at the lowest level. Then again, it is not immediately apparent that they need to. Programming is a task which can be done at many different levels. While programming in LISP, i don't have to worry about memory reclamation, and that is nice. While programming in C, I can use floating point easily, as well as generate moderately efficient code for real applications such as operating systems. >>. The problem is that when tinkering >> with assembly language, it's all too easy to miss the forest for the trees. Agreed. Programs are meant to solve problems. If you can concentrate on the problem, rather the program, you are winning big. Assembler often decays into a long sequence of "gee, okay, the carry is set now and lets add that to this thingy over here" sessions. >So do it on a machine on which there IS no level of detail.... > >Programming a Commodore 64 in assembly language is hardly "immersing the >person in details"... there just ain't much there to be called a detail! > Excuse me for a moment, fetching the Pepto-Bismol... :-) Actually, I think that programming the 6502 is a BAD and HARMFUL idea, mainly because it is such a pathetic processor. It can't even keep an address in a register. If I were to choose a processor to study, it would be the PDP-11 or the 68000. Both posess highly regular instruction sets which makes them easy to learn, and are high level enough so that you can write reasonable assembler programs. But I am still confused as to why we should use assembler. Very few of us will write operating systems in our lives. If we do, most of it should be written in some higher level language, with a few select (probably less than 10) routines written in assembler. I have done systems programming for two years on VAXEN, and have had no need whatsoever for assembler. It wasn't that I was afraid of it, just that it wasn't necessary. >The point is for people to learn what basic architecture such as "what is >memory?", "what is a machine language instruction", and "what is an operating >system". If they can answer any of these questions satisfactorily, they should have their doctorate already :-) Seriously, I think a great many people hinder their "natural brilliance" by parroting back preconcieved notions about what a computer is. To a LISP programmer, memory is this bunch of little cons cells. To a C programmer, it is bytes. To a programmer of the 80286 (bleh) it is segments and offsets. To a programmer of the iaxp432, it is a bunch of objects. Take your pick. What is a machine instruction? Well, it could be three address code like the vax. It could be stack machine instruction (P-code? Bourroughs 5500) It could even be RISC instructions. What is an operating system? To quote a student in a class here at the U of O: An operating system is a brain that can solve every kind of problem... I guess I have harangued long enough... ======================================================================== /////// ////// ******// ******/ "The original MTV since 1964" *******/*******/ ***********TTTV/ V Mark Terrence VandeWettering *****/*** **T*V/V (markv@uoregon.edu) *****/ * **T*VV "No matter where you go.. *****/ *****/ There you are!" *****/ *****/