Home
        A51 8051 Cross-Assembler
         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
 
 
    
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