You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
INTRODUCTION TO<br />
ASSEMBLY<br />
LANGUAGE<br />
COMPUTERS DON'T SPEAK ENGLISH, THEY SPEAK MACHINE<br />
CODE. AND (MOST) HUMANS DON'T SPEAK MACHINE CODE,<br />
BUT SOMETIMES WE FIND WE HAVE TO TALK TO COMPUTERS.<br />
WHEN THIS NEED ARISES WE USE AN INTERPRETER, JUST AS<br />
WE DO WHEN WE HAVE TD TALK TO ANOTHER HUMAN WHO<br />
DOESN'T SPEAK OUR LANGUAGE. THE HUMAN-TO-MACHINE<br />
INTERPRETER MOST OF US ARE USED TO IS BASIC. IT LETS<br />
US PUT DOWN OUR IDEAS IN A FORM OF "PIDGIN ENGLISH"<br />
THAT WE CAN UNDERSTAND, AND TRANSLATES IT INTO<br />
MACHINE CODE THAT THE COMPUTER CAN EXECUTE. THE<br />
PROCESS IS NOT VERY EFFICIENT, BECAUSE ENGLISH IS A<br />
MUCH MORE GENERAL LANGUAGE THAN MACHINE CODE. EVEN A<br />
SIMPLE COMMAND LIKE "PRINT" MUST BE TRANSLATED INTO A<br />
LOT OF NUMBERS (THE MACHINE CODE) FOR THE COMPUTER TO<br />
RUN. THE BASIC INTERPRETER MUST ALSO EXAMINE THE<br />
"PRINT" STATEMENT IN THE CONTEXT OF THE PROGRAM TD<br />
SEE IF WE WANTED A STRING, A STRING VARIABLE, A<br />
NUMBER, A VARIABLE, A NUMERIC EXPRESSION, OR A BLANK<br />
LINE PRINTED, AND WHETHER WE WANTED IT PRINTED TO THE<br />
SCREEN, PRINTER, OISK DRIVE, CASSETTE, OR MODEM.<br />
THAT TAKES TIME.<br />
IT WOULD BE MUCH FASTER IF WE COULD SPEAK SOME<br />
DIALECT OF THE COMPUTER'S LANGUAGE, SOMETHING AS<br />
SPECIFIC AS MACHINE CODE BUT EASIER FOR A HUMAN TO<br />
UNDERSTAND. THIS IS THE PRINCIPLE BEHIND ASSEMBLY<br />
LANGUAGE. EACH COMMAND IN ASSEMBLY LANGUAGE IS A<br />
MNEMONIC (LETTERS THAT ARE AN ABBREVIATION FOR<br />
SOMETHING ELSE) THAT CORRESPONDS DIRECTLY WITH A<br />
SINGLE MACHINE CODE INSTRUCTION. FOR EXAMPLE, THE<br />
ASSEMBLY LANGUAGE COMMAND "LDA" STANDS FOR "LOAD THE<br />
ACCUMULATOR". THE ASSEMBLER WILL TRANSLATE THIS INTO<br />
JUST ONE MACHINE CODE INSTRCTION, THE NUMBER THAT<br />
MEANS TO THE COMPUTER "LOAD THE ACCUMULATOR." AS YOU<br />
CAN SEE, ASSEMBLY LANGUAGE PROGRAMMING DOES REQUIRES<br />
THAT YOU UNDERSTAND WHAT HAPPENS INSIDE YOUR<br />
COMPUTER. YOU HAVE TO KNOW ABOUT MEMORY ADDRESSING<br />
MODES, THE CPU REGISTERS, FLAGS, BINARY LOGIC.<br />
HEXADECIMAL NUMBERS, AND HOW INPUT AND OUTPUT ARE<br />
HANDLED. DON'T LET THIS DISCOURAGE YOU! COMPUTERS<br />
ARE REALLY VERY SIMPLE DEVICES, AND DO EXACTLY AS<br />
THEY ARE TOLD. ONE GOOD BOOK AND A LITTLE TIME ARE<br />
ALL YOU WILL NEED TO GET STARTED. REMEMBER, ONCE<br />
UPON A TIME EVEN BASIC LOOKED LIKE A FOREIGN LANGUAGE<br />
TO YOU! (IF YOU DON'T SPEAK BASIC OR SOME OTHER<br />
HIGH-LEVEL COMPUTER LANGUAGE YET, I STRONGLY<br />
RECOMMEND GAINING SOME FAMILIARITY WITH BASIC, COMAL,<br />
PASCAL, OR SOMETHING ELSE BEFORE TAKING ON ASSEMBLY<br />
LANGUAGE, JUST TO BECOME FAMILIAR WITH PROGRAMMING<br />
STRUCTURE AND LOGIC. YOU DON'T HAVE TO BE AN EXPERT<br />
IN ANOTHER PROGRAMMING LANGUAGE BEFORE TACKLING<br />
ASSEMBLY, BUT SOME FAMILIARITY DEFINITELY HELPS.)<br />
MUtK<br />
BROWN<br />
in this entry-level tutorial,<br />
you will not only lose your fear<br />
of assembly language, but you<br />
will actually customize BASIC<br />
with a short but useful routine.<br />
Remember, once upon a tine<br />
even BASIC looked like a<br />
foreign language to you!<br />
Computers are really very<br />
simple devices, and do<br />
exactly as they are told.<br />
Even a<br />
"PRINT1 1 must<br />
into a<br />
simple<br />
lot of<br />
the computer<br />
command like<br />
be translated<br />
numbers<br />
to run.<br />
.. for