Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uunet!crdgw1!rpi!hiebeler From: hiebeler@heretic.lanl.gov (David Hiebeler) Newsgroups: comp.os.msdos.programmer Subject: Re: Material on .ASM subtleties sought Message-ID: <887$9&^@rpi.edu> Date: 3 Aug 90 20:49:54 GMT References: <1068@ashton.UUCP> Organization: Theoretical Division, Los Alamos Nat. Lab; RPI CS Dept Lines: 36 I'm currently writing some new software to control a plug-in cellular automata board for PC's (Cray-1 speeds for $2000, plug plug). ;-) This involves writing an interrupt routine to service the board, and some low-level I/O routines to transfer data between the PC and the board. I never got much into assembly language, since I'm fairly new to the PC scene. I've never written even a moderate assembly-language stand-alone program. What I *have* done, in writing my software (using Turbo C 2.0), is to go back and re-do some of my low-level C routines using inline assembly. I think Turbo C is great for that (maybe Microsoft is too, but I haven't used it). C will take care of passing parameters and so on; you can just write the simple bare-bones low-level stuff in assembler. That's the way it should be, in my opinion. I don't know what others think of this practice, but I've found it very useful; it allows me to code critical sections of code in assembly language, without having to learn all the nasty details about assembling a complete program. It's worked well so far, with no disasters to speak of. I think it also makes the development cycle a little easier; for example, I'll write a display routine in C which will be unbearably slow, but will allow me to test my package. When I know things are working, then I can go back and turn the C code in the display function into inline assembly, and the rest of my routines never see any difference in the interface -- it still looks like a C function to them. -- Dave Hiebeler | Internet: hiebeler@heretic.lanl.gov Complex Systems Group | Bitnet: userF3JL@rpitsmts MS B213, Theoretical Division | UUCP: crdgw1!automtrx!hiebeler Los Alamos National Laboratory / Los Alamos, NM 87545 USA