0% found this document useful (0 votes)
18 views3 pages

Assembler

Uploaded by

chrizhexx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views3 pages

Assembler

Uploaded by

chrizhexx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

******************************************************************************

**** THE BEST APPLE'S ASSEMBLY TUTORIAL ****


******************************************************************************
**** PART 1: THE ASSEMBLER ****
******************************************************************************
**** WRITTEN BY THE BEST APPLE AND EDITED BY NOWHERE MAN ****
******************************************************************************

THIS SERIES IS FOR BEGINNERS. YOU WILL NEED AN ASSEMBLER AND A THOROUGH KNOWLEDGE
OF APPLESOFT BASIC.

PREFACE:

ASSEMBLY LANGUAGE IS THE FASTEST AND MOST FLEXIBLE OF ALL PROGRAMMING LANGUAGES ON
ANY COMPUTER, BECAUSE YOU ARE ACTUALLY TELLING THE COMPUTER WHAT TO DO DIRECTLY,
WITHOUT A LOT OF "MIDDLEMEN" LIKE THE APPLESOFT BASIC INTERPRETER. ALSO FOR THIS
REASON, ASSEMBLY IS A VERY HARD LANGUAGE TO LEARN. I HOPE THIS TUTORIAL WILL MAKE
THE JOB A BIT EASIER.

*******************************************************************************

THE ASSEMBLER:

THIS TUTORIAL WILL CENTER MAINLY ON THE S-C MACRO ASSEMBLER, BUT IF YOU HAVE A
DIFFERENT BRAND (MERLIN/BIG MAC, ORCA/M, LISA, ETC.) YOU SHOULD BE ABLE TO FOLLOW
ALONG. IT HELPS IF YOU HAVE A MANUAL SO YOU CAN SEE IF THERE ARE ANY DIFFERENCES IN
YOUR ASSEMBLER AND THE ONE I USE.

MOST ASSEMBLERS HAVE TWO PARTS I WILL DISCUSS EACH AND THE MAKEUP IN THIS ARTICLE.

PART 1: THE EDITOR

THE EDITOR IS USALLY A TEXT EDITOR FOR CREATING YOUR PROGRAMS IT WILL HAVE FEATURES
FOR EDIT, DELETE, INSERT AND IF IT'S GOOD MUCH MORE.

PART 2: THE ASSEMBLER

THIS PART ASSEMBLES THE TEXT INTO MACHINE LANGUAGE CODE.

********************************************************************************
THE VARIABLES:

JUST AS IN APPLESOFT, ASSEMBLY LANGUAGE HAS VARIABLES. BUT, WHERE IN BASIC YOU HAD
THOUSANDS TO PLAY AROUND WITH, HERE YOU ONLY HAVE A FEW AND YOU ARE RESTRICTED IN
THEIR USES. WHAT FOLLOWS IS A DESCRIPTION OF EACH VARIABLE AND IT'S FUNCTION.

THE 6502 HAS 5 REGISTERS, WHICH ARE USED SIMILARLY TO VARIABLES IN HIGHER LEVEL
PROGRAMMING LANGUAGES.

1. THE ACCUMULATOR ("A-REGISTER")- IS THE MAIN VARIABLE FOR GENERAL FUNCTIONS.

2. THE X REGISTER- USED FOR COUNTING

3. THE Y REGISTER- USED FOR COUNTING

4. THE STACK ("S-REGISTER")- CONTAINS THE STACK POINTERS FOR APPLESOFT AND ASSEMBLY
LANGUAGE PROGRAMS
5. THE P REGISTER- KEEPS TRACK OF THE SYSTEM STATUS. IT IS DIVIDED INTO BITS, LIKE
THIS:

7 6 5 4 3 2 1 0 >
^ ^ ^ ^ ^ ^ ^ ^ > ALL OF THIS
> IS CONTAINED IN
> THE "P-REGISTER"
N V * B D I Z C >

N. THE NEGITIVE BIT-0 IF THE LAST COMPARE WAS + 1 IF IT WAS -

V. THE OVERFLOW BIT-0 IF THE LAST RESULT DID NOT OVERFLOW

*. UNUSED

B. BREAK STATUS-1 AFTER A BRK COMMAND

D. DECIMAL MODE-0 AFTER CLD COMMAND 1 AFTER SED

I. INTERRUPT-0 AFTER CLI 1 AFTER SEI

Z. ZERO-0 IF LAST RESULT WAS NON-ZERO 1 IF IT WAS 0

C. CARRY-0 IF THE LAST RESULT DID NOT CARRY OR A CLC AND 0 AFTER A CARRY OR SEC

IF THIS ALL SOUNDS CONFUSING, YOU'RE ABSOLUTELY RIGHT. THIS WILL BE EXPLAINED MORE
THOROUGHLY IN A LATER CHAPTER OF TUTORIAL

******************************************************************************

THE LINE:

THE LINE IN ASSEMBLY HAS 5 PARTS:

1. THE LINE NUMBER, THIS IS FOR EDITING PURPOSES ONLY AND YOU CAN'T GOTO A LINE BY
LINE NUMBER.

2. THE LABEL, THIS IS FOR BRANCHING YOU CAN IN SENSE GOTO A LINE BY IT'S LABEL.

3. INSTRUCTIONS THESE ARE THE COMMANDS AND THERE ARE 56 OF THEM DEVIDED INTO 10
GROUPS:

1. TRANSFER:LDA, STA, LDX, STX, LDY, STY, TXA, TAX, TYA, TAY, TXS, TSX
PLA, PHA, PLP, PHP

2. ARITHMETIC:ADC, SBC, INC, INX, INY, DEC, DEX, DEY

3. LOGICAL:AND, ORA, EOR, BIT

4. SHIFT:ASL, LSR, ROL, ROR

5. COMPARE:CMP, CPX, CPY

6. STATUS:SEC, SED, SEI, CLC, CLV,, CLD, CLI

7. BRANCH:BCC, BVC, BNE, BPL, BCS, BVS, BEQ, BMI


8. JUMP:JMP, JSR

9. RETURN:RTS, RTI

10. OTHER:NOP, BRK

YES, YOU MAY HAVE NOTICED THEY ARE ALL 3 LETTERS. THERE ARE ALSO ASSEMBLER COMMANDS
THAT ARE DIFFERENT FOR EACH ASSEMBLER. NEXT WEEK I'LL LIST AND EXPLAIN THESE AND
THE ASSEMBLER COMMANDS FOR S-C MACRO ASSEMBLER.

4. THE OPCODE: IS THE NUMBER USALLY FOUND AFTER THE COMMAND THERE ARE 4 TYPES:

1. $00-MEANS WHATS IN THE LOCATION $00


2. #00-MEANS THE DECIMAL NUMBER 0
3. #$00-MEANS THE HEX NUMBER $00
4. $300,Y-MEANS THE VALUE OF THE ADDRESS $300+Y SO $300,Y WHEN Y=2 IS $302'S
VALUE

5. THE REM FIELD FOR REMARKS

GET THE IDEA? IT'S EASY!

NEXT TIME: THE COMMANDS

******************************************************************************

CREATED AND WRITTEN BY:

THE BBB
B B
BBB
B B
BBB EST APPLE

(OF SADISTIC SOFTWARE AND THE BLACK HOLE BANDITS)

EDITED BY:

// /
/ / /
/ / /
/ // OWHERE MAN

(OF SADISTIC SOFTWARE AND THE BLACK HOLE BANDITS)

******************************************************************************
ORIGINALLY WRITTEN IN 80 COLUMNS, UPPER CASE ONLY, ON TUESDAY NOVEMBER 20 1984
THIS MAY BE DISTRIBUTED AND POSTED ON BBS'S *AS LONG AS IT IS NOT CHANGED*
*******************************************************************************

You might also like