Home
Username:
Password:
Assembly Language Programming Tutorials

Wrapup / Wrapup




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

The Assembly Language presented for this course is for a CISK Computer. Intel chip design is CISK, a Complex Instruction Set Computer. The purpose is to have the computer perform multiple actions with a single instruction. It means fewer instructions are needed to write a program. Most operations are performed by the hardware. The other choice and one that many computers use is RISC, a Reduced Instruction Set Computer. With a RISC machine, more software instructions are required to get a job done so the emphasis is more on the software. I'm not going to discuss the advantages or disadvantages of each approach. But you should be aware of the fact that a fully-functional computer can be implemented with only a few instructions. Let me give you a severe example. You need to be able to copy values between registers and memory. Beyond that, the only operations that are absolutely necessary are shift left, shift right and or an exclusive or. Of course, most RISC chips have a few more instructions but this is all that is absolutely necessary. Any other operations can be built from these. For example, a comparison is simply a subtraction where the result is discarded. And a jump to another location is nothing more than an address being loaded into the instruction address register. A funny thing happened with the name of the instruction address register. For years it was known as the PC, the program counter. But the Desktop computer became popular and was known as the PC so the name was changed to IP. It was called the instruction pointer. The IP register. But that acronym became the popular name for the address of any computer on the Internet. So now it's called by different names in different places. It's sort of funny. The poor, little, nameless orphan register. Working with programs in Assembly Language has a couple of benefits. I think the most important one is that you get exactly what you want. You're not at the mercy of some compiler writer who interprets what your code should do according to his style of programming. I know how that works. I have been a compiler writer. Another advantage and one that can be very important is that you can make your program do anything the hardware is capable of doing. You're not limited to the compiler's so-called safety features. To you personally, probably the most important advantage could be that you've become familiar with the way the machine works; its internal workings. You get thoroughly familiar with the actions taken by the computer programs to get things done. The result of all of this is that you understand the jobs that compilers do. From now on when you write code for a higher-level language, you will have some idea of what sort of thing your code will be translated into. You can appreciate the job that the compiler does and you will be able to devise algorithms that produce more efficient code. Already you should understand why a double has become the floating point default type. It is more accurate than a float and takes the same amount of processing power. It's like getting something for almost nothing. It does use more RAM to store the larger values, but as cheap as memory is these days, in most cases that doesn't matter. But there are some downsides to programming in Assembly Language. Studies have been made about programmer productivity. Now, a lot of erroneous or even silly conclusions come out of these studies but some things are obvious. It is a fact that a programmer produces about the same number of debugged lines of code no matter what language is being used, including Assembly Language. And since Assembly Language requires more lines of code to get things done, it follows that Assembly Language limits the amount of usable code a programmer can produce. If you work much with Assembly Language, you'll find that certain things are hard to do, primarily you'll find it difficult to perform input and output to communicate with other programs. A good plan when writing an Assembly Language program is to complete the input and output first. Then you can see what you're doing as your write the rest of the code. With a few exceptions, any program you write will run only on the system you wrote it for. Some things are stable from one system to another but with Assembly Language being so directly tied to the system it runs on, even minor upgrades to an operating system or object library can render a program useless. All this makes it very difficult to develop a program on one machine that's intended to run on another. Source code is everywhere. Once you get our environment set up for assembling and linking, you can look for Assembly Language source code that does the sort of thing you want to do. Then you can take it and modify it to do exactly what you want it to do.

Tutorial Information

Course: Assembly Language Programming
Author: Arthur Griffith
SKU: 33995
ISBN: 1-935320-44-0
Release Date: 2009-05-28
Duration: 5.5 hrs / 70 lessons
Work Files: Yes
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available