Home

A51 8051 Cross-Assembler

image

Contents

1. A51 8051 Cross Assembler User s Manual JC JNC JNZ JZ SJMP Absolute Branches These opcodes require one argument It is an arithmetic expression that evaluates to an address on the same 2K page as the NEXT instruction The opcodes are ACALL AJMP Long Branches The following opcodes require one argument that is an arithmetic expression with any value LCALL LJMP MOV The MOV opcode requires two arguments The following table has the allowable combinations marked with an X MOV OPCODE ARGUMENT COMBINATIONS The immediate value in this case only is not restricted to the range 128 to 255 A51 8051 Cross Assembler User s Manual E PSEUDO OPCODES Unlike 8051 opcodes pseudo opcodes pseudo ops do not represent machine instructions They are rather directives to the assembler These directives require various numbers and types of arguments They will be listed individually below BIT The BIT pseudo op allows the user to create bit variables It takes the following form label BIT bit_expression The label is mandatory If it is missing the assembler will generate an L label error DB The DB pseudo op allows arbitrary bytes to be spliced into the object code Its argument is a chain of zero or more expressions that evaluate to 128 through 255 separated by commas If a comma occurs with no preceding expression a 00H byte is spliced into the object code The sequence of bytes OFEH OFFH 00H 01H 02H cou
2. TH1 TLO TL1 TMOD If a label is used in an expression before it is assigned a value the label is said to be forward referenced For example L1 EQU L2 1 L2 is forward referenced here L2 L3 EQU L2 1 L2 is not forward referenced here Numeric Constants Numeric constants are formed according to the Intel convention A numeric constant starts with a numeric character 0 9 continues with zero or more digits 0 9 A F and ends with an optional base designator The base designators are H for hexadecimal none or D for decimal O or Q for octal and B for binary The hex digits a f are converted to upper case by the assembler Note that a numeric constant A51 8051 Cross Assembler User s Manual cannot begin with A F as it would be indistinguishable from a label Thus all of the following evaluate to 255 decimal OffH 255 255D 3770 3770 11111111B String Constants A string constant is zero or more characters enclosed in either single quotes or double quotes Single quotes only match single quotes and double quotes only match double quotes so if you want to put a single quote in a string you can do it like this In all contexts except the DB statement the first character or two of the string constant are all that are used The rest is ignored Noting that the ASCII codes for A and B are 41H and 42H respectively will explain the following examples and n evaluate to 0000H A and A evaluate to 004
3. hand The most significant parity bit of each character is cleared as the character is read from disk by the cross assembler so editors that set this bit should not bother this program All printing characters the ASCII TAB character 09H and carriage return linefeed combinations are processed by the assembler All other characters are passed through to the listing file but are otherwise ignored The source file is divided into lines by carriage return linefeed characters The internal buffers of the cross assembler will accommodate lines of up to 255 characters Each source line is made up of three fields the label field the opcode field and the argument field The label field is optional but if it is present it must begin in column 1 The opcode field is optional but if it is present it must not begin in column 1 If both a label and an opcode are present one or more spaces and or TAB characters must separate the two If the opcode requires arguments they are placed in the argument field which is separated from the opcode field by one or more spaces and or TAB characters Finally an optional comment can be added to the end of the line This comment must begin with a semicolon which signals the assembler to pass the rest of the line to the listing and otherwise ignore it Thus the source line looks like this label opcode arguments commentary where the indicates that the specified item is optional Examples colum
4. statement by another REG statement or by a SET statement The following pair of statements will assemble to a MOV GRO A instruction TEMP REG RO MOV QTEMP A SET The SET pseudo op functions like the EQU pseudo op except that the SET statement can reassign the value of a label that has already been assigned by another SET statement Like the EQU statement the argument expression may contain no forward references A label defined by a SET statement cannot be redefined by writing it in column 1 or with an EQU statement The following series of statements would set the value of label COUNT to 1 2 then 3 COUNT SET 1 COUNT SET 2 COUNT SET 3 TITL The TITL pseudo op sets the running title for the listing The argument field is required and must be a string constant though the null string is legal This title is printed after every page ejection in the listing therefore 1f page ejections have not been forced by the PAGE pseudo op the title will never be printed The following statement would print the title Random Bug Generator Ver 3 14159 at the top of every page of the listing TITL Random Bug Generator Ver 3 14159 A51 8051 Cross Assembler User s Manual ASSEMBL Y ERRORS and WARNINGS When a source line contains an illegal construct the line is flagged in the listing with a single letter code describing the error The meaning of each code is listed below In addition a count of the number of lines with
5. the source file as specified on the command line does not exist Rarely a read error in the disk directory could cause this error Listing File Did Not Open Object File Did Not Open This error indicates either a defective listing or object file name or a full disk directory Correct the file name or make more room on the disk Error Reading Source File This error generally indicates a read error in the disk data space Use your backup copy of the source file You do have one don t you to recreate the mangled file and reassemble Disk or Directory Full This one is self explanatory Some more space must be found either by deleting files or by using a disk with more room on it File Stack Overflow This error occurs if you exceed the INCLude file limit of four files open simultaneously If Stack Overflow This error occurs if you exceed the nesting limit of 16 IF blocks Too Many Symbols You have run out of memory The space for the cross assembler s symbol table is allocated at run time so the cross assembler will use all available memory up to a limit of 64K Please call or e mail us support systronix com if you are having this error we may be able to help
6. 000085 25 SCHEMAUCS scare aA raed nh eat eaten A A ent IR ent ata 27 Enclosure Dr wing esiti ck t cic cioe cit uae t ee 37 P een PANE udo E O DIDI IDR DI BRAAK SNAAR ARDEN MA 39 USING THE A51 CROSS ASSEMBLER seeeeee e nee eee 1 INPUT FILE FORMAT opa pese ee rie po pp ee aie curse Dus Deis ee eee pe ee pun ei 2 A MU mU UM MM ME 3 Numeric Constants A os oe Ost estes 4 String Constants see I I 4 EXDIESSIONS cii eine siue ciet cies obe ote oto toe eol ob tek ect been 4 Dit EXDEeSSIODS a NA 5 8051 OPCODES 3 oe ee exe ILI lI lI IRI IR 6 No Arguments 0 0 0 cece I I e A 6 One Arg rment el ppt pt De OG D Ee EL tues o ee gos 6 Two Arguments in Order 0 0 es 7 Two Arguments in Either Order 2 2 0 02 eee eee 7 Three Arguments in Order 2 0 eee ee 7 Relative Branches mutter ua eei agi tei ta ict ke e ace ced 7 Absolute Branches siea oa aa aa aa aa a RR Rn 8 Long Branches oo oooocoooooo e I 8 MON serra hae hana AULUS US cua ae a aR RE BUB GS i 8 PSEUDO OPCODE D gt vice het ose ey gy kk E poa cr pe Du pe Cypr ee POP POR GOP pO ee ne bGt 9 BUE t Vie LLLI DEINDE 9 Dj EE 9 DS tds 9 DAE 9 END cod LL UP M PN NL NC UP PLE 10 EQUES ao mu fo al ato ado a ado a ado a ado a 10 IF ELSE ENDI ua eun cre e EA a AE teg a 10 IG Em 11 OLE A M IM 11 PAGE exec Let V 12 REG uta E trae EERE ED E ER ARA ERE EERE On P TED S 12 JA NN CO Re P 12 O Coe ep UM UP P ON 12 ASSEMBLY ERRORS
7. 1H AB evaluates to 4142H Note that the null string is legal and evaluates to 0000H Expressions An expression is made up of labels numeric constants and string constants glued together with arithmetic operators logical operators and parentheses in the usual way that algebraic expressions are made Operators have the following fairly natural order of precedence Highest anything in parentheses unary unary MOD SHL SHR binary binary LT LE EQ GE GT NE NOT AND OR XOR Lowest HIGH LOW A few notes about the various operators are in order 1 The remainder operator MOD yields the remainder of the division of the left operand by the right operand 2 The shifting operators SHL and SHR shift the left operand to the left or right the number of bits specified by the right operand 3 The relational operators LT LE EQ GE GT and NE can also be written as lt lt or lt gt or gt and lt gt or gt lt respectively They evaluate to OFFFFH if the statement is true O otherwise 4 The logical operators NOT AND OR and XOR perform bitwise operations on their operand s 5 HIGH and LOW extract the high or low byte of an expression 6 The special symbol can be used in place of a label or constant to represent the value of the program counter before any of the current line has been processed A51 8051 Cross Assembler User s Manual Some examples are in order at this point 2
8. 3 4 evaluates 2 3 4 evaluates NOT 11110000B XOR 00001010B evaluates HIGH 1234H SHL 1 evaluates 0010 EQ O evaluates 0010 2 SHR 1 evaluates to to to to to to 14 20 00000101B 0024H 0 FFFFH All arithmetic is unsigned with overflow from the 16 bit word ignored Thus 32768 2 evaluates to 0 Bit Expressions Byte addresses are specified by expressions as described above Bit addresses are specified by a special type of expression which can take the following three forms bit variable Bit variables are declared with the BIT pseudo op A number of bit variables are pre defined by the assembler such as OV for the overflow flag bit 2 of location OEOH expression 1 expression 2 This yields the bit address of bit expression 2 of location expression 1 expression 1 must in the range 20H 2FH or an even multiple of 8 in the range 80H OFFH expression 2 must be in the range 0 7 An illegal value in either expression will cause a V value error expression An expression can also specify a bit address by itself A51 8051 Cross Assembler User s Manual i505 OPCODES The opcodes of the 8051 processor are divided into groups below by the type of arguments required in the argument field of the source line If an opcode requires multiple arguments these must be placed in the argument field in order unless otherwise specified and separated by commas Some shorthand notations will be used They are fimm im
9. A51 8051 Cross Assembler Version 0 49 or later Copyright c 1985 1991 William C Colley III Copyright c 1990 96 Systronix Inc Licensed to Systronix Inc by the author LIMITED WARRANTY The information in this manual is subject to change without notice and does not represent a commitment on the part of Systronix Inc Systronix Inc makes no warranty express or implied for the use or misuse of its products which are provided with the understanding that you the user will determine fitness for a particular application Systronix assumes no responsibility for any errors which may appear in this manual No part of this manual may be reproduced or transmitted in any form or by any means electronic or mechanical including photocopying and recording for any purpose other than the purchaser s personal use without the written permission of Systronix Inc Systronix reserves the right to revise this documentation and the software and hardware described herein or make any changes to the specifications of the product described herein at any time without obligation to notify any person of such revision or change TRADEMARKS Systronix is a registered trademark of Systronix Inc INT L and Intel are registered trademarks of Intel Corporation Microsoft and MS DOS are registered trademarks of Microsoft Corporation Systronix Inc 555 South 300 East 21 Salt Lake City UT 84111 TEL 801 534 1017 FAX 801 534 1019 Internet www systron
10. anch target within range or a long branch instruction that will reach anywhere will have to be used D Illegal Digit This error occurs if a digit greater than or equal to the base of a numeric constant is found For example a 2 in a binary number would cause an illegal digit error Especially watch for 8 or 9 in an octal number E Illegal Expression This error occurs because of 1 amissing expression where one is required 2 aunary operator used as a binary operator or vice versa 3 amissing binary operator 4 a SHL or SHR count that is not 0 thru 15 IF ENDIF Imbalance For every IF there must be a corresponding ENDIF If this error occurs on an ELSE or ENDIF statement the corresponding IF is missing If this error occurs on an END statement one or more ENDIF statements are missing L Illegal Label This error occurs because of 1 anon alphabetic in column 1 2 areserved word used as a label 3 amissing label on a BIT EQU REG or SET statement 4 alabel on an IF ELSE or ENDIF statement M Multiply Defined Label This error occurs because of A51 8051 Cross Assembler User s Manual 1 alabel defined in column 1 or with the EQU statement being redefined 2 alabel defined by a SET statement being redefined either in column 1 or with the EQU statement 3 the value of the label changing between assembly passes O Illegal Opcode The opcode field of a source line may contain only a valid machi
11. and WARNINGS eeeeeeeeee eee eee 13 ASSEMBLY ERRBOBS tuere cere Mere obe cb pop pep pe Diese 13 Illegal or Missing Statement 0 0 cee eee ee eee ee 13 Parenthesis Imbalance 0 0 0 0 EE EE ete teens 13 Missing Quotation Mark 2 0 2c eee ee eee 13 B Branch Target Out of Bounds 0 00 eee eee nee 14 B Mesa Digit Uo CR ate a ae ate ake ale eats ate ale ATA Re n 14 E Illegal Expression lleeeeele RII 14 I IF ENDIF Imbalance eeeeeee IIIA 14 EssTlesabLabel apra oe aba o a a o a eed 14 M Multiply Defined Label 0 00 eee 14 CMe gal OpeOde sce sce i Dec d D D D D DO oe e a 15 Pies Phasing Bro s s o eo eoe Me A UR RN Rn 15 s Illeeal Syntax A A DIS AA A At 15 T Too Many Arguments 0 0c eee I 15 U Undefined Label isesi ueni uses ta Tee aee aic aie apice aps 15 Ves Mle gal Valys 47535 Ba ae eae i e S ace Wace RUN UR nea RR RD 16 WARNING MESSAGES seeeeeeee e 9 16 Illegal Option Ignored 0 2 RB 16 l Option Ignored No File Name 0 0 eee eee eee 16 o Option Ignored No File Name 2 0 eee 16 Extra Source File Ignored 2 0 0 0 cece eee 16 Extra Listing File Ignored 2 2 ee eee 16 Extra Object File Ignored 0 0 0 eee eee eee 16 FATAL ERROR MESSAGES 0 0 0 eee ene ene ees 17 No Source File Specified oooo ooooocoooocoooocr
12. errors is kept and printed on the PC screen after the END statement is processed If more than one error occurs in a given line only the first is reported For example the illegal label would generate the following listing line L 0000 FF 00 00 S LDA RO The line which caused the error is also output to the PC screen MASSEMBLY ERRORS Illegal or Missing Statement This error occurs when either 1 the assembler reaches the end of the source file without seeing an END statement or 2 an END statement is encountered in an INCLude file If you are sure that the END statement is present when the assembler thinks that it is missing it probably is in the ignored section of an IF block If the END statement is missing supply it If the END statement is in an INCLude file delete it Parenthesis Imbalance For every left parenthesis there must be a right parenthesis Count them Missing Quotation Mark Strings have to begin and end with either or Remember that only matches while only matches A51 8051 Cross Assembler User s Manual B Branch Target Out of Bounds The 8051 relative branch instructions will only reach addresses that are within 128 and 127 bytes of the first byte of the next instruction The 8051 absolute branch instructions will only reach addresses on the same 2K page as the next instruction If this error occurs the source code will have to be rearranged to bring the br
13. ine are non fatal The cross assembler flags these with a message on the PC screen beginning with the word Warning The messages are listed below Illegal Option Ignored The only options that the cross assembler knows are l and o Any other command line argument beginning with will cause this error l Option Ignored No File Name 0 Option Ignored No File Name The l and o options require a file name to tell the assembler where to put the listing file or object file If this file name is missing the option is ignored Extra Source File Ignored The cross assembler will only assemble one file at a time so source file names after the first are ignored To assemble a second file invoke the assembler again Extra Listing File Ignored Extra Object File Ignored The cross assembler will only generate one listing and object file per assembly run so l and o options after the first are ignored lFATAL ERROR MESSAGES Several errors that are detected during the parsing of the cross assembler command line or during the assembly run are fatal The cross assembler flags these with a message on the PC screen beginning with the words Fatal Error The messages are explained below No Source File Specified This one is self explanatory The assembler does not know what to assemble A51 8051 Cross Assembler User s Manual Source File Did Not Open The assembler could not open the source file The most likely cause is that
14. ing 0 0 0 0 eee eee eee 10 Protecting Processor Pins from Static or Under voltage 10 POWER SWPPIGY 55 65 bboebb e bbbbubbeebb boask atait tatae taataa 10 ECI DISPBEAYS 0 024 946 88 ete t it ettt ot tots c asses Sess essas 11 ECD Connector Pinout sa crete eee EE ee 12 LED Backlights lllleeeeesee III 12 20x4 LCD with LED Backlight 0 0 0 e A 13 16x2 LCD with LED Backlight 0 0 0 00 eee A 13 LCD Dfivers ra a a a a aa aaa 13 LCD Enclosures 0 0 2 eee I III 13 KEYPAD USE h 5650s ERALOLBOLOBBLOBBLCSBL A A A 13 KEYPAD LEGENDS faceto m te cod boat oot dd edd ead eed dts 16 DIGITAL INPUTS rere aa 17 External Input Jumper Blocks JP18 and JP19 o o oooo ooooooo oo 17 RELAY DRIVER OUTPUTS 2 at dad e ad alo o 18 BUZZER 46h oo o os ao AO OO eo Oe LI 18 ANALOG to DIGITAL CONVERTER ooocccccccccco eee ee 19 ADC Throughput ooocooooco e A ee 19 JPI5 VO CONNECTOR uu o o o e bebe 20 APPLICATION EXAMPLES 00 a 4405400544 21 DPB2 VO DRIVERS 000 EE E EIE IER EX EX Ae 21 LOADING PROGRAMS seeeee e I 21 DEBUGGING DPB2 SOFTWARE and HARDWARE seeeeeeeeeA 23 Internet FAO A la ARES ese ees 23 Start Simple id eb aur eb SS A por ad pe aub pa ad PRU D 23 Exception Handle oc ppp pepee pe pippe doe ge gap tue pap piip es 23 Quick Diagnosis Table 0 0 0 eee IA 23 SCHEMATICS and MECHANICAL DRAWINGS 02000
15. ix com email info Osystronix com support support systronix com Copyright 1993 1996 by Systronix Inc All rights reserved Revised October 31 1996 Revision History 1996 Oct 30 Improved description of DW directive A51 Release 0 49 or later Table of Contents andres aro do toda anos E ono odo enanos anocano denon canto 1 I O Dnver FlleS ociosos cnn tera 1 Systronix Web Site amp Forum o o oooooooocoooo ee ene eae 1 Getting Technical Support votalo o tado odiado odiado Load o ado o al alo o o al A 1 INSTALE BEDL 0116000000000 OREO NLD NLD Ue Da ne 2 DPB2 Example Program Files 0 0 0 cece eee eee 2 PROCESSOR INSTALLATION 0 0 2c A eee 2 JP3 2250 2252 JUMP ovata aed oe oe 2 DALLAS SERIAL LOADERS IMPORTANT NOTES 00 3 What are the Dallas Serial Loaders 0 0 0 0 eee eee eee 3 Loader Script File Tips amp Example lees 4 KITSK VS Ko Ot eh itt tea sees a a aaa a 5 Dallas CFG Elles ici 865486040 04 360434050404 365 084 5 PROGRAM vs LOAD esp ccs eres ee ns rt ee ee PRO ee 6 QUICK START coco 6 File Extensions SRL and INC 0 0 0 cee eee eee 6 First Prosram e236 32S ASS a oS dataci n 6 DPB2I O MAP nee pepeo po E ERE HUE HECHO E 9 Available Processor I O Pins 2 0 2 cece e 9 Address Demultiplexer sis tie ii tk lke o odo o edo do DESEE 9 EXTERNAL MEMORY OR PERIPHERAL DEVICES 2 0045 9 Recommended Peripheral Address
16. ld be spliced into the code with the following statement DB 2 1 1 2 A special case exists here If a string constant is entered with no arithmetic done on it then the entire string is spliced into the code stream Thus the sequence of bytes 002H 043H 041H 054H 044H could be spliced into the code with the following statement DB 1 1 CAT C 1 DS The DS pseudo op is used to reserve a block of storage for program variables or whatever This storage is not initialized in any way so its value at run time will usually be random The argument expression which may contain no forward references is added to the assembly program counter The following statement would reserve 10 bytes of storage called STORAGE STORAGE DS 10 DW The DW pseudo op allows 16 bit words to be spliced into the object code Its argument is a chain of Zero or more expressions separated by commas If a comma occurs with no preceding expression a word of 0000H is spliced into the code The word is placed into memory H L most significant byte of the word at the low address least significant byte of the word at the high address the opposite of standard Intel order In other words a DW 01234H places 12H at address n and 34H at address n1 The sequence of bytes OFFH OFEH 00H 00H 01H 02H could be spliced into the code with the following A51 8051 Cross Assembler User s Manual statement DW OFFFEH 0102H END The END pseudo op tell
17. mediate value e g 012H in the range 128 to 255 bit bit expression dir byte address in the range 0 OFFH rel byte address Rn RO R1 R2 R3 R4 R5 R6 or R7 No Arguments The following opcodes allow no arguments at all in their argument fields NOP RET RETI One Argument The following opcodes require one argument The allowable argument values for each opcode are listed below OPCODE S ARGUMENT VALUE S DA RL RLC RR RRC SWAP_ A A DIV MUL A51 8051 Cross Assembler User s Manual Two Arguments in Order The following opcodes require two arguments in the specified order OPCODE FIRST SECOND ARGUMENT ARGUMENT A DPTR or A PC ORO or R1 dir Rn GRO or ORI MOVC XCHD dir imm Rn RO ADD ADDC ANL ORL SUBB XRL R1 A or imm ll amor c wom Two Arguments in Either Order A A A ir C The following opcodes require two arguments in either order OPCODE FIRST ARGUMENT SECOND ARGUMENT MOVX DPTA GRO or OR Three Arguments in Order The CJNE opcode requires three arguments in order Two sets of arguments are allowed as follows OPCODE FIRST SECOND THIRD ARGUMENT ARGUMENT ARGUMENT CJNE Rn RO or R1 fimm rel Relative Branches The opcodes in this group require one argument It is an arithmetic expression that evaluates to an address in the range 128 to 127 bytes from the address of the first byte of the NEXT instruction The opcodes are
18. n 1 V GRONK DJNZ R1 LOOP This line has everything INC R1 This line has no label BEEP This line has no opcode This line has no label and no opcode The previous line has nothing at all END This line has no argument A51 8051 Cross Assembler User s Manual Labels A label is any sequence of alphabetic or numeric characters starting with an alphabetic The legal alphabetics are 96 amp N 1 AZ az na The numeric characters are the digits 0 9 Note that A is not the same as a in a label This can explain mysterious U undefined label errors occurring when a label appears to be defined A label is permitted on any line except a line where the opcode is IF ELSE or ENDIF The label is assigned the value of the assembly program counter before any of the rest of the line is processed except when the opcode is BIT EQU ORG REG or SET Labels can have the same name as opcodes but they cannot have the same name as pre defined bit variables operators registers or pre defined byte addresses The reserved names are Pre defined bit variables AC CY EA ES ETO ET1 EXO EX1 FO IEO IE1 ITO EEL OV P PS PTO PEL PXO PX1 RSO RS1 RB8 REN RI SMO SM1 SM2 TB8 TFO TF1 LE TRO TR1 Operators AND EQ GE GT HIGH LE LOW LT MOD NE NOT OR SHL SHR XOR Registers A AB C DPTR PC RO R1 R2 R3 R4 R5 R6 R7 Pre defined byte addresses ACC B DPH DPL IE JE PO P1 P2 P3 PCON PSW SBUF SCON SP TCON THO
19. ne opcode a valid pseudo op or nothing at all Anything else causes this error P Phasing Error This error occurs because of 1 aforward reference in a BLK CPU EQU ORG or SET statement 2 alabel disappearing between assembly passes S Illegal Syntax This error means that an argument field is scrambled Sort the mess out and reassemble In particular look for use of registers that don t apply to a particular opcode missing commas and the like T Too Many Arguments This error occurs if there are more items expressions register designators etc in the argument field than the opcode or pseudo op requires The assembler ignores the extra items but issues this error in case something is really mangled U Undefined Label This error occurs if a label is referenced in an expression but not defined anywhere in the source program If you are sure you have defined the label note that upper and lower case letters in labels are different Defining LABEL does not define Label V Illegal Value This error occurs because 1 animmediate value is not 128 thru 255 or 2 a direct address is not O thru 255 or 3 a bit expression contains an illegal address or bit number or A51 8051 Cross Assembler User s Manual 4 a DB argument is not 128 thru 255 or 5 an INCL argument refers to a file that does not exist MWARNING MESSAGES Some errors that occur during the parsing of the cross assembler command l
20. o eee 17 Source File Did Not Open 0 cee cece eens 17 Listing File Did Not Open 0 0 0 cee eee eA 17 Object File Did Not Open 17 Error Reading Source File 00 0 ee eee 17 Disk or Directory Full 2 0 2 20 0 0 cece ce eens 17 Pile Stack Overflow ol eiie ierk e irek a iani a iei a ine b e iee b e kie i a babe bebe 17 It Stack Oyertlow a UR RR URDU RE 17 Too Many Symbols 0 0c eect nee ee 18 A51 8051 Cross Assembler User s Manual USING THE A51 CROSS ASSEMBLER This documentation assumes knowledge of assembly language programming and the 8051 instruction set It is not a tutorial and is not intended to teach 8051 assembly language programming Its purpose is to enable you to use the A51 assembler by itself to explain A51 syntax and formats and to elaborate on A5 error warning and fatal error messages First the question What does a cross assembler do needs to be addressed as there is considerable confusion on this point A cross assembler is just like any other assembler except that it runs on some CPU other than the one for which it assembles code For example A51 assembles 8051 source code into 8051 object code but it runs on an MS DOS PC using the 8086 family CPU The reason that cross assemblers are useful is that you probably already have a CPU with memory disk drives a text editor an operating system and all sorts of hard to build or expensive facilities on hand A c
21. ross assembler allows you to use these facilities to develop code for another target CPU This program requires one input file your 8051 source code and zero to two output files the listing and the object The input file MUST be specified or the assembler will terminate with a fatal error The listing and object files are optional If no listing file is specified no listing is generated and if no object file is specified no object is generated If the object file is specified the object is written to this file in Intel hexadecimal format The command line for the cross assembler looks like this A51 source file 11list file o object file where the indicates that the specified item is optional Example a51 test5l asm source test5l asm listing none object none a51 test5l asm 1 test5l prn source test5l asm listing test5l prn object none a51 test5l asm o test5l hex source test5l asm listing none object test5l hex a51 test5l asm 1 test5l prn o test5l hex source test5l asm listing test5l prn object test51l hex The order in which the source listing and object files are specified does not matter Note that no default file name extensions are supplied by the assembler A51 8051 Cross Assembler User s Manual M NPUT FILE FORMAT The source file that the cross assembler processes into a listing and an object is an ASCII text file that you can prepare with whatever editor you have at
22. s the assembler that the source program is over Any further lines in the source file are ignored and not passed on to the listing If an argument is added to the END statement the value of the argument will be placed in the execution address slot in the Intel hex object file The execution address defaults to the program counter value at the point where the END was encountered Thus to specify that the program starts at label START the END statement would be END START If end of file is encountered in the source file before an END statement 1s reached the assembler will add an END statement to the listing and flag it with a missing statement error EQU The EQU pseudo op is used to assign a specific value to a label thus the label on this line is REQUIRED Once the value is assigned it cannot be reassigned by writing the label in column 1 by another EQU statement by a REG statement or by a SET statement Thus for example the following statement assigns the value 2 to the label TWO TWO EQU 1 1 The expression in the argument field must contain no forward references IF ELSE ENDIF These three pseudo ops allow the assembler to choose whether or not to assemble certain blocks of code based on the result of an expression Code that is not assembled is passed through to the listing but otherwise ignored by the assembler The IF pseudo op signals the beginning of a conditionally assembled block It requires one argument that may con
23. tain no forward references If the value of the argument is non zero the block is assembled Otherwise the block is ignored The ENDIF pseudo op signals the end of the conditionally assembled block For example IF EXPRESSION This whole thing generates DB 01H 02H 03H no code whatsoever if ENDIF EXPRESSION is zero A51 8051 Cross Assembler User s Manual The ELSE pseudo op allows the assembly of either one of two blocks but not both The following two sequences are equivalent IF EXPRESSION some stutf ces ELSE Some more stuff ENDIF TEMP LAB SET EXPRESSION TE TEMP LAB NE 0 Some stuff wes DIF F TEMP LAB EQ 0 Some more stuff ENDIF Hub The pseudo ops in this group do NOT permit labels to exist on the same line as the status of the label ignored or not would be ambiguous All IF statements even those in ignored conditionally assembled blocks must have corresponding ENDIF statements and all ELSE and ENDIF statements must have a corresponding IF statement IF blocks can be nested up to 16 levels deep before the assembler terminates with a fatal error INCL The INCL pseudo op is used to splice the contents of another file into the current file at assembly time The name of the file to be INCLuded is specified as a normal string constant so the following line would splice the contents of file const def into the source code stream INCL const def INCLuded files may in turn INCL
24. ude other files until four files are open simultaneously ORG The ORG pseudo op is used to set the assembly program counter to a particular value The expression that defines this value may contain no forward references The default initial value of the assembly program counter is 0000H The following statement would change the assembly program counter to OFOOOH ORG OFOOOH If a label is present on the same line as an ORG statement it is assigned the new value of the assembly program counter A51 8051 Cross Assembler User s Manual PAGE The PAGE pseudo op always causes an immediate page ejection in the listing by inserting a form feed MP character before the next line If an argument is specified the argument expression specifies the number of lines per page in the listing Legal values for the expression are any number except 1 and 2 A value of O turns the listing pagination off Thus the following statement cause a page ejection and would divide the listing into 60 line pages PAGE 60 REG The REG pseudo op functions like the EQU pseudo op except that the argument must be a register i e RO R7 or another label defined with the REG pseudo op A label defined with REG can be used anywhere that RO R7 is called for This includes forms like LABEL Like the EQU statement the argument expression must contain no forward references A label defined with the REG statement cannot be redefined by writing it in column 1 by an EQU

Download Pdf Manuals

image

Related Search

Related Contents

Benutzungshandbuch Hamster-Simulator-Light  User Guide - Vaxcommercial.co.uk  BDA-886N WS    User Manual  Indice - Esacrom  Kramer Electronics TP-102HD  

Copyright © All rights reserved.
Failed to retrieve file