"IBM personal computer assembly language tutorial" - читать интересную книгу автора (Auerbach J.)First, let's dispose of a bad reason for using it. Don't use it just because you think it is going to execute faster. A particular sequence of ordinary bread-and-butter computations written in PASCAL, C, FORTRAN, or compiled BASIC can do the job just about as fast as the same algorithm coded in assembler. Of course, interpretive BASIC is slower, but if you have a BASIC application which runs too slow you probably want to try com- IBM PC Assembly Language Tutorial 1 piling it before you think too much about translating parts of it to another language. On the other hand, high level languages do tend to isolate you from the machine. That is both their strength and their weakness. Usually, when implemented on a micro, a high level language provides an escape mechanism to the underlying operating system or to the bare machine. So, for example, BASIC has its PEEK and POKE. But, the route to the bare machine is often a circuitous one, leading to tricky programming which is hard to follow. For those of us working on PC's connected to SHARE-class mainframes, we are generally concerned with three interfaces: the keyboard, the screen, and dependent issues which are imperfectly addressed by the underlying operat- ing system or by high level languages. Sometimes, the system or the language does too little for you. For example, with the asynch adapter, the system provides no interrupt handler, no buffer, and no flow control. The application is stuck with the respon- sibility for monitoring that port and not missing any characters, then deciding what to do with all errors. BASIC does a reasonable job on some of this, but that is only BASIC. Most other languages do less. Sometimes, the system may do too much for you. System support for the key- board is an example. At the hardware level, all 83 keys on the keyboard send unique codes when they are pressed, held down, and released. But, someone has decided that certain keys, like Num Lock and Scroll Lock are going to do certain things before the application even sees them and can't therefore be used as ordinary keys. Sometimes, the system does about the right amount of stuff but does it less efficiently then it should. System support for the screen is in this class. If you use only the official interface to the screen you sometimes slow your application down unacceptably. I said before, don't use assem- bler just to speed things up, but there I was talking about mainline code, which generally can't be speeded up much by assembler coding. A critical system interface is a different matter: sometimes we may have to use |
|
|