home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / chapter3.text < prev    next >
Encoding:
Text File  |  1990-05-07  |  10.2 KB  |  313 lines

  1. THE ASSEMBLER
  2. -------------
  3.  
  4. THE ASSEMBLER HAS ONE COMMAND:A-ASSEMBLE.
  5.  
  6. THE PROMPT OPTIONS> IS THEN DISPLAYED,AND SIMPLY TYPING <RET> TO
  7. THIS PROMPT WILL ASSEMBLE NORMALLY WITHOUT LISTING.SEE SECTION BELOW ON
  8. LISTING & OPTIONS.
  9.  
  10. THE ASSEMBLER "MOONLIGHTS" AS A LINKER,AND WILL (BY DEFAULT) TAKE ANY LINKER
  11. CODE PLACED IN THE LINKER INPUT FILE,AND LINK THAT,AS WELL AS ASSEMBLING
  12. THE SOURCE TO PRODUCE AN EXECUTABLE FILE-SEE LINKER SECTION.NORMALLY IT IS
  13. NOT NECESSARY TO USE A LINKER,AND THIS SECTION,AND THE LINKER INPUT BUFFER
  14. MAY BE IGNORED.
  15.  
  16. ASSEMBLY SYNTAX
  17. ---------------
  18.  
  19. ALL 68000 INSTRUCTIONS ARE AVAILABLE WITH STANDARD MOTOROLA MNEMONICS.
  20. ALTHOUGH A SUMMARY OF THESE IS GIVEN IN APPENDIX B,THE USER IS ADVISED TO
  21. OBTAIN A BOOK ON 68000 IF HE OR SHE IS NOT ALREADY FAMILIAR WITH
  22. IT.(CAPTAIN CREW'S BOOK-TIP:PROGRAMIERUNG DES M68000 VON T.KING & B.KNIGHT,
  23. ADDISON-WESLY VERLAG!)
  24. INSTRUCTIONS MAY BE ENTERED IN FREE FORMAT,I.E. THERE IS NO NEED TO USE TABs
  25. TO FORMAT THE CODE NEATLY-THE ASSEMBLER WILL AUTOMATICALLY DO THIS ON
  26. LISTING.
  27.  
  28.  
  29. A LINE OF CODE CAN BE CONSIDERED TO CONSIST ON 4 FIELDS:
  30.  
  31.  
  32.  
  33. LABLE FIELD         e.g. LOOP:      MUST END IN A COLON.
  34.  
  35.  
  36.  
  37. COMMENT FIELD       
  38. OPERATOR FIELD      e.g. MOVE.B     INSTRUCTIONS ARE ALL
  39. OPERAND FIELD       e.g. D0,(A5)    STANDARD MOTOROLA FORMAT
  40. COMMENT FIELD       e.g. ;SETUP     MUST BEGIN WITH A SEMICOLON
  41.  
  42.  
  43.  
  44. THIS MAY BE ENTERED IN FREE FORMAT,WITH A SPACE ONLY REQUIRED BETWEEN THE
  45. OPERATOR AND OPERAND FIELDS.FOR EXAMPLE THE ABOVE LINE CAN BE ENTERED:
  46. LOOP:MOVE.B D0,(A5);SETUP
  47. ANY OR ALL THE FIELDS MAY BE OMITTED,ALTHOUGH AN OPERAND WITHOUT AN OPERATOR
  48. IS MEANINGLESS,AND AN ERROR MESSAGE WILL RESULT.
  49.  
  50.  
  51. LABLES/SYMBOLS
  52. --------------
  53. A LABLE IS JUST A SPECIAL KIND OF OF SYMBOL,AND THE TWO WILL BE DESCRIBED
  54. HERE TOGETHER.A SYMBOL IS A NAME WHICH HAS AN ASSOCIATED VALUE.UNLIKE
  55. VARIABLES IN HIGH LEVEL LANGUAGES,THE NUMBER IS CONSTANT.SYMBOLS CAN BE
  56. DEFINED IN TWO WAYS:
  57. A) BY PLACING IT WITH A COLON AFTERWAEDS,AS A LABLE,IT TAKES ON THE VALUE OF
  58. THE CURRENT LOCATION COUNTER,AND CAN BE USED TO REFER TO THAT LOCATION.
  59. B) BY USING EQU OR = PSEUDO OPS,SEE BELOW.
  60. SYMBOLS CONSIST OF ANY NUMBER OF ALPHANUMERIC LETTERS OR NUMBERS,UPPER
  61. OR LOWER CASE.NO DISTINCTION IS DRAWN BETWEEN UPPER AND LOWER CASE,e.g.HELP
  62. IS THE SAME AS HELP.THE FIRST CHARACTER OF A SYMBOL MUST BE A LETTER .
  63. LONG SYMBOLS MAY BE TRUNCATED ON LISTING.RESERVED WORDS MAY NOT BE USED FOR
  64. SYMBOLS.
  65.  
  66.  
  67.  
  68. COMMENTS
  69. --------
  70. COMMENTS ARE IGNORED BY THE ASSEMBLER.THEY ARE PRECEDED BY A SEMICOLON(OR
  71. STAR),AND TERMINATED BY THE END OF LINE.
  72.  
  73. NUMERIC EXPRESSIONS
  74. -------------------
  75. NUMBERS MAY BE ENTERED IN ONE OR FOUR BASES,OR AS ASCII CHARACTERS.IN
  76. ADDITION LABELS AND SYMBOLS MAY BE FREELY USED,AND ARITHMETIC OPERATORS
  77. ADD,SUBTRACT,MULTIPLY,DIVIDE,AND,OR AND XOR (+-*/&!~) MAY BE USED TO COMBINE
  78. THESE.PREFIX MINUS AND NOT(-~)ARE ALSO AVAILABLE.
  79. COMPARASONS MAY BE PERFORMED WITH THE OPERATORS EQUAL TO,LESS THAN AND
  80. GREATER THAN (=<>),WHICH RETURN A VALUE OF 0 IF FALSE AND 1 IF TRUE.SQUARE
  81. BRACKETS [] MAY BE USED TO INDICATE ORDERING OF ARITHMETIC,OTHERWISE THE
  82. OPERATIONS ARE PERFORMED STRICTLY IN THE ORDER IN WHICH THEY ARE ENTERED.
  83.  
  84.  
  85. THE FOUR BASES ALLOWED ARE: DECIMAL,HEXADECIMAL,OCTAL,BINARY.
  86. DEFAULT ARE DECIMAL NUMBERS ,HEX REQUIRE A $ PREFIX,OCTAL AN @ PREFIX,AND
  87. BINARY REQUIRE A % PREFIX.
  88.  
  89.  
  90. ASCII CONSTANTS NEED TO BE PLACED IN A PAIR OF SINGLE OR DOUBLE QOUTES,e.g.
  91. 'A','AB','ABC',OR 'ABCD'.WHERE MORE THAN ONE CHARACTER IS PLACED INSIDE THE
  92. QOUTES MARKS,THE FIRST CHARACTER FILLS THE MORE SIGNIFICANT BYTE,etc.,AND
  93. THE LAST CHARACTER IS ALLOCATED THE LEAST SIGNIFICANT BYTE. i.e. THE
  94. CHARACTERS ARE PACKED AT THE BOTTOM OF THE WORD OR LONGWORD.
  95. "ABC"=$00414243.THUS A MOVE.B #'A',D0 AND MOVE.L #'A',D0 WILL BOTH PLACE AN
  96. 'A' IN THE LOW BYTE OF D0.
  97.  
  98. THE LOCATION COUNTER IS REPRESENTED BY A *,AND MAY BE USED FREELY TO
  99. REPRESENT ITS CURRENT VALUE.NB:* REPRESENT THE CURRENT LOCATION COUNTER,NOT
  100. THE VALUE AT THE START OF INSTRUCTION!
  101.  
  102.  
  103. LISTING & OPTIONS
  104. -----------------
  105.  
  106.  
  107. WHEN THE PROMPT OPTIONS> APPEARS,NONE OR MORE OPTIONS CAN BE SPECIFIED.
  108.  
  109.  
  110. OPTIONS V,E AND P
  111. -----------------
  112.  
  113. LISTING CAN BE SENT TO THE SCREEN BY ENTERING "V" FOR VIDEO. A FORMATTED
  114. LISTING WILL BE PRODUCED. A "P" (OR "E") OPTION WILL SEND THE FORMATTED
  115. LISTING TO THE PRINTER-A LISTING NAME WILL BE PROMPTED FOR. FOR NEATNESS,IT
  116. IS BEST TO ASSEMBLE WITHOUT LISTING UNTIL ERRORS HAVE BEEN REMOVED.IF NO
  117. DEVICE IS SPECIFIED,NO LISTING IS PRODUCED.
  118.  
  119.  
  120. OPTION "H"
  121. --------- WILL DIRECT THE LISTING TO HOLD BETWEEN PAGES,WHICH IS USEFUL BOTH
  122. ON SCREEN,AND WITH MANUALLY SHEET FED PRINTERS.CONTINUE BY HITTING ANY KEY.
  123.  
  124. OPTION "O"
  125. --------- WILL OPTIMIZE BRANCHES.ONLY BRANCHES WITH NO .S OR .L ARE
  126. OPTIMISED,IF YOU DELIBERATLY USE .L THE ASSEMBLER ASSUMES YOU HAVE A REASON!
  127. NOTE THAT THIS MODIFIES THE SOURCE,IT ADDS "S".NOTE THAT OPTION "O" TAKES A
  128. LONG TIME BY SEKA STANDARDS,IT IS NOT RECOMMENDED AND CAN CAUSE STRANGE
  129. EFFECTS SOMETIMES.
  130.  
  131. ALL SHORT BRANCHES THAT ARE OUT OF RANGE ARE AUTOMATICALLY UPGRADED BY SEKA
  132. TO .L BRANCHES,AND A WARNING MESSAGE IS PRODUCED.THIS OCCURS WHETHER OR NOT
  133. OPTION "O" IS SPECIFIED.
  134.  
  135. OPTION "L"
  136. --------- WILL PRODUCE LINKABLE CODE,SEE THE LINKER SECTION LATER IN THIS
  137. MANUAL.
  138.  
  139. A SYMBOL TABLE IS PRODUCED AS STANDARD,WHEN LISTING IS REQUESTED.ENTRIES ARE
  140. OF THE FORM NAME...VALUE,WITH A "+" SIGN AFTER THE VALUE SIGNIFYING A
  141. RELOCATABLE OR EXTERNAL NAME.IF THE NAME IS A MACRO NAME,-MACRO-IS DISPLAYED
  142. INSTEAD OF A VALUE.
  143.  
  144. ERRORS RAISED IN THE ASSEMBLY(EXCEPT WARNINGS GENERATED BY CHANGING.S BRANCH
  145. TO.L) ARE TREATED AS FATAL IF NO LISTING HAS BEEN REQUESTED,OTHERWISE ALL
  146. THE ERRORS ARE LISTED.WHEN THE ASSEMBLER STOPS ON ERROR,THE CURRENT LINE IS
  147. SET TO THE ONE WHICH CONTAINS THE ERROR,TO AID RAPID CORRECTION.IT IS
  148. RECOMMENDED TO ASSEMBLE WITHOUT LISTING UNTIL ALL ASSEMBLY ERRORS HAVE BEEN
  149. REMOVED,UNLESS A LISTING WITH ERRORS IS DELIBERATLY REQUIRED.MOST USERS FIND
  150. THAT THE STOP-ON-ERROR-WITH-QUICK-EDIT-AND-REASSEMBLE APPROACH IS EASY AND
  151. SIMPLE TO USE.
  152.  
  153. MORE THAN ONE OPTION CAN BE SPECIFIED ON THE OPTIONS LINE:
  154.  
  155. e.g.  SEKA>A
  156.       OPTIONS>VH  WILL LIST TO SCREEN,HOLDING BETWEEN PAGES
  157.  
  158.  
  159. PSEUDO OPERATORS
  160. ----------------
  161.  
  162. PSEUDO OPERATORS ARE ASSEBLER DIRECTIVES.THEY DO NOT USUALLY GENERATE
  163. CODE,BUT INSTEAD AFFECT THE OPERATION OF THE ASSEMBLER.
  164.  
  165.  
  166. THREE PSEUDO OPS TO GENERATE CODE:DC.B,DC.W,DC.L WILL GENERATE BYTES,WORDS
  167. OR LONGWORDS CONTAINING THE VALUE OF THE ARGUMENTS.
  168. BLK WILL LEAVE SPACE FOR DATA TABLES,ect.IT TAKES ONE OR TWO PARAMETERS,THE
  169. FIRST IS THE SPACE IN BYTES (OR WORDS,OR LONGWORDS IF .W OR .L SUFFIXES ARE
  170. ATTACHED),THE SECOND THE DESIRED FILL VALUE.
  171.  
  172.  
  173. CODE GENERATEN BEGINS AT AN ORIGIN.THIS CAN BE RELATIVE CODE,AT WHICH CASE
  174. THE CODE BEGINS AT RELATIVE 0-THE CODE AND DATA PSEUDO OP; OR ABSOLUTE
  175. CODE,IN WHICH CASE THE CODE HAS A PRESPECIFIED START ADRESS-SPECIFIED BY THE
  176. ORG DIRECTIVE.ASSEMBLING STRAIGHT INTO MEMORY WILL OCCUR AUTOMATICALLY WITH
  177. RELATIVE CODE,BUT AFTER AN ORG A LOAD DIRECTIVE MUST BE INCLUDED IN THE
  178. SOURCE CODE.THIS SPECIFIES THE ADRESS IN MEMORY TO LOAD THE CODE-AND IS
  179. USUALLY THE SAME AS THE ORG ADRESS.
  180.  
  181. THE ASSEMBLER WILL STOP ASSEMBLING THE SOURCE FILE WHEN IT MEETS AN END
  182. DIRECTIVE,OR AT THE END OF FILE.
  183.  
  184.  
  185. TABLE OF PSEUDO OPERATORS
  186. -------------------------
  187.  
  188. DC       DEFINES A BYTE,WORD OR LONGWORD IN THE OBJECT CODE. DEFAULT SIZE=.B
  189.  
  190. BLK      DEFINES A BLOCK OF MEMORY.THE FIRST PARAMETER DEFINES THE SIZE OF
  191.          BLOCK,AND THE SECOND THE VALUE TO FILL IT WITH.DEFAULT SIZE=.B
  192.  
  193. ORG      TAKES A SINGLE PARAMETER -THE ADRESS TO START ASSEMBLING AT.
  194.          SWITCHES ON ABSOLUTE CODE MODE.
  195.  
  196.  
  197. LOAD     TAKES A SINGLE PARAMETER -THE ADRESS TO START LOADINGINTO MEMORY
  198.          FROM.ONLY WORKS IN ABSOLUTE CODE MODE.
  199.  
  200.  
  201. CODE     SWITCHES ON RELATIVE MODE,CODE SEGMENT.
  202.  
  203.  
  204. DATA     RELATIVE MODE,DATA SEGMENT.(NOTE THAT SOME ASSEMBLERS CALL THAT
  205.          BSS)
  206.  
  207.  
  208. EVEN     FORCES THE ADRESS EVEN.IF ODD DEFINES A BYTE
  209.  
  210.  
  211. ODD      FORCES THE ADRESS ODD.IF EVEN,DEFINES ABYTE.
  212.  
  213.  
  214. END      ENDS THE ASSEMBLY PROCESS.
  215.  
  216.  
  217. EQU      BOTH EQU AND = CAN BE USED TO SET A SYMBOL TO A VALUE.
  218.  
  219.  
  220. =        SEE EQU.
  221.  
  222.  
  223. LIST     TURNS LISTING ON.
  224.  
  225.  
  226. NLIST    TURNS LISTING OFF.
  227.  
  228.  
  229. PAGE     FORCES A NEW LISTING PAGE.THE PAGE DIRECTIVE LISTS ON THE FIRST
  230.          LINE OF THE NEW (P)AGE.(FORGET IT!)
  231.  
  232.  
  233.  
  234. IF       CONDITIONAL ASSEMBLY-TAKES NUMERIC EXPRESSIONS,WHICH IF IT
  235.          EVALUATES TO 0 (FALSE) DOES NOT ASSEMBLE THE FOLLOWING LINES,AND IF
  236.          NON ZERO (TRUE) ASSEMBLES THE FOLLOWING LINES.
  237.  
  238.  
  239. IFB      IF BLANK USUALLY TAKES A MACRO ARGUMENT,AND IS TRUE IF THE ARGUMENT
  240.          IS BLANK, (i.e. null). e.g. IFB?2
  241.  
  242.  
  243.  
  244. ELSE     TOGGLES THE CONDITIONAL ASSEMBLY CONDITION,i.e. IF
  245.          ASSEMBLING,CEASES TO ASSEMBLE AND VICE VERSA.
  246.  
  247.  
  248. ENDIF    TERMINATES THE CONDITIONAL ASSEMBLY BLOCK.
  249.  
  250.  
  251. MACRO    A SYMBOL GIVEN BEFORE THE MACRO OPS BECOMES THE NAME OF THE MACRO,
  252.          AND IT MAY BE CALLED BY TYPING THAT NAME,FOLLOWED BY A LIST OF
  253.          ARGUMENTS,SEPERATED BY COMMAS.THE CODE OF THE MACRO (ITS
  254.          DEFINITION) FOLLOWS ON SUBSEQUENT LINES,AND ASSEMBLY IS TURNED OFF.
  255.  
  256.  
  257. ENDM     ENDS A MACRO DEFINITION,AND RESTORES ASSEMBLY
  258.  
  259.  
  260.  
  261. ?N       REQUESTS THAT THE MACRO ARGUMENT N IS USED AT THIS POINT.
  262.          VALID ONLY IN MACRO DEFINITIONS.N=1 THRU 9
  263.  
  264.  
  265.  
  266. ?0       GENERATES THREE DIGITS,UNIQUE FOR EVERY MACRO CALL.MAY BE USED TO
  267.          CREATE LOCAL LABELS (e.g. X?0).VALID ONLY IN MACRO DEFINITIONS.
  268.  
  269.  
  270.  
  271. GLOBL    TAKES A LIST OF SYMBOLS WHICH ARE TO BE TREATED AS GLOBALS-SEE
  272.          LINKER SECTION.MUST BE THE FIRST OPERATOR IN THE FILE.MAY ONLY BE
  273.          USED WITH THE "L" OPTION.
  274.  
  275.  
  276.  
  277. PWID     SETS THE PRINTER PAGE WIDHT FOR LISTINGS.DEFAULT 80.
  278.  
  279.  
  280.  
  281. PLEN     SETS THE PRINTER PAGE LENGHT.DEFAULT 66 LINES.
  282.  
  283.  
  284.  
  285. PINIT    SETS A CODE SEQUENCE TO INITIALIZE THE PRINTER,USEFUL TO SET 132
  286.          COLUMNS,USA FONT (WITH #),etc. e.g. FOR EPSON TO SET 132 COLUMNS...
  287.          PINIT 15.
  288.  
  289. NOTE THE ABOVE 3 ARE IGNORED IF PRINTER LISTING NOT REQUESTED.
  290.  
  291.  
  292. ILLEGAL  GENERATES AN ILLEGAL INSTRUCTION,USEFUL FOR CAUSING EXIT TO
  293.          THE SEKA DEBUGGER (OR OTHER DEBUG SYSTEMS).IDENTICAL TO DC.W$4AFC
  294.  
  295.  
  296.  
  297. LINE A)  GENERATES CALLS TO EMULATOR TRAPS,e.g. LINE A$123 IS IDENTICAL TO
  298. LINE F)  DC.W $A123
  299.  
  300.  
  301.  
  302. ALIGN    WILL ALIGN THE OBJECT TO AN N BYTE BOUNDARY;ALIGN 2 IS IDENTICAL TO
  303.          EVEN,ALIGN 4 LONGWORD ALIGNS.ONLY POWERS OF 2 GIVE SENSIBLE RESULTS
  304.          (i.e. 2,4,8,16,etc.)
  305.  
  306. END OF CHAPTER3(NO COMMENT)
  307. (C)1987 by Captain Chaos from THE CAPTAIN CREW
  308.  
  309.  
  310.  
  311.  
  312.  
  313.