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

  1. LINKER
  2. ------
  3.  
  4.  
  5.  
  6.  
  7. CONVENTIONAL ASSEMBLERS PRODUCE LINKABLE CODE WHICH THEN NEEDS TO BE LINKED
  8. BY A LINKER TO PRODUCE EXECUTABLE CODE,EVEN IF NO ADDITIONAL MODULES NEED TO
  9. BE LINKED IN.
  10.  
  11.  
  12.  
  13. SEKA IS DIFFERENT. THE ASSEMBLER CAN PRODUCE EITHER EXECUTABLE CODE,OR
  14. LINKER CODE,AND FOR SMALL PROGRAMS THERE IS NO NEED TO USE A LINKER. SINCE
  15. THE ASSEMBLER WILL ACCEPT EITHER STANDARD 68000 SOURCE CODE OR LINKER
  16. CODE,IT CAN ACT AS A LINKER,LINKING MODULES OF LINKABLE CODE (WHICH HAS BEEN
  17. LOADED INTO THE LINK BUFFER),AND PRODUCING EXECUTABLE CODE.
  18.  
  19.  
  20. A NOVEL "EXTRA" SEKA PROVIDES IS THE ABILITY TO LINK MODULES OF LINKABLE
  21. CODE AND ASSEMBLE SOURCE AT THE SAME TIME,SO ENABLING ONE MODUL TO BE WORKED
  22. UPON - AND SMALL CHANGES MADE - AND THE RESULTS OF TESTS TO BE SEEN VERY
  23. RAPIDLY.
  24.  
  25.  
  26.  
  27. THE 'L' OPTION ON THE ASSEMBLER COMMAND CONTROLS THE OUTPUT:DEFAULT IS
  28. EXECUTABLE,WITH L OPTION GIVES LINKABLE OUTPUT.
  29. BY DEFAULT BOTH LINK INPUT AND SOURCE INPUT FILES ARE TAKEN BY THE
  30. ASSEMBLER/LINKER,BUT WHEN L IS SPECIFIED,THE LINK INPUT FILE IS NOT INPUT
  31. (SINCE LINK INPUT => LINK OUTPUT IS NOT ALLOWED)
  32.  
  33.  
  34.  
  35.  
  36.  
  37. ASSEMBLING WITH LINKABLE CODE
  38. -----------------------------
  39.  
  40. USE THE A COMMAND,WITH L OPTION:
  41.  
  42.  
  43.  
  44.  
  45.               -------------     ASSEMBLE        --------------------
  46. LINK BUFFER  |SOURCE BUFFER|  ----------->     |CODE BUFF(LINK CODE)|
  47.               -------------                     --------------------
  48.  
  49.  
  50.  
  51. NOTE THAT THE LINK BUFFER REMAINS UNUSED AND UNALTERED.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. LINKING
  59. -------
  60. KILL THE SOURCE. USE THE A COMMAND WITHOUT L OPTION:
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  ---------                      LINK       -------------------
  67. |LINK BUFF|     SOURCE BUFF --------->    |CODE/DATA/CREL/DREL|
  68.  ---------                                 -------------------
  69.  
  70. NOTE THAT THE SOURCE BUFFER MUST BE ZERO SIZE,UNLESS IT IS DESIRED TO
  71. ASSEMBLE AS WELL AS LINKING.
  72.  
  73.  
  74.  
  75. ASSEMBLE & LINK
  76. ---------------
  77. USE THE A COMMAND WITHOUT L OPTION:
  78.  
  79.  
  80.  
  81.  
  82.  ---------       -----------    ASSEMBLE & LINK     -------------------
  83. |LINK BUFF| AND |SOURCE BUFF|--------------------> |CODE/DATA/CREL/DREL|
  84.  ---------       -----------                        -------------------
  85.  
  86.  
  87.  
  88.  
  89.  
  90. LINKER COMMANDS
  91. ---------------
  92.  
  93.  
  94. CL-COPY OBJ TO LINK INPUT BUFFER
  95. --------------------------------
  96.  
  97.  
  98. USE THIS AFTER AN ASSEMBLE-OPTION L TO PLACE THE LINKABLE CODE IN THE LINK
  99. INPUT BUFFER,READY FOR A LINK.PROMPTS "SURE?" BECAUSE IT DELETES THE SOURCE
  100. BUFFER!! BEWARE!
  101. CL,LIKE RL,APPENDS TO THE LINK INPUT BUFFER,(AS OPPOSITE TO OVERWRITING,SEE
  102. KL).
  103.  
  104.  
  105.  
  106. KL-KILL LINKER BUFFER
  107. ---------------------
  108.  
  109.  
  110. KILLS LINKER BUFFER. PROMPTS "SURE?".
  111.  
  112.  
  113.  
  114. RL & WL
  115. -------
  116.  
  117.  
  118. SEE FILING SECTION.WL CAN BE USED (INSTEAD OF CL,OR POSSIBLE IN ADDITION
  119. TO),TO SAVE THE LINKABLE FILE ASSEMBLED INTO THE OBJ BUFFER.
  120. RL CAN BE USED TO READ IN LINKABLE FILES-THESE ARE READ INTO THE LINK INPUT
  121. BUFFER. NOTE:RL PROMPTS "SURE?" BECAUSE IT DELETES THE SOURCE! RL,LIKE
  122. CL,APPENDS TO THE LINK INPUT BUFFER,(AS OPPOSITE TO OVERWRITING,SEE KL).
  123.  
  124.  
  125.  
  126. RELOCATION MODES-A CLARIFICATION
  127. --------------------------------
  128.  
  129.  
  130.  
  131. ALL ARITHMETIC CAN CONTAIN EXTERNALS OR RELOCATABLES,PROVIDING THE RESULTAT
  132. IS ABSOLUTE,RELOCATIBLE OR EXTERNAL,AND NOT COMPOSITE OF THESE(LIKE REL+REL
  133. OR EXTERN-REL).
  134.  
  135. e.g    HERE:DC.L  THERE-HERE
  136.        THERE:
  137. IS VALID,AND THE RESULT IS ABSOLUT(A PURE NUMBER).
  138.  
  139. SIMILARLY BRA HERE DOES AN IMPLIED HERE-*(*IS THE CURRENT LOCATION
  140. COUNTER,INITALLY CODE RELOCATABLE) AND IS OK IF HERE IS A LABLE TO THE SAME
  141. REL SECTION OF THE PROGRAMM.
  142.  
  143. BUT:    BRA  EXTERN     WILL ATTEMPT TO CALCULATE EXTERN-*.
  144.                         (EXT-REL),AND WILL FAIL WITH AN ERROR.
  145. USE:    JMP  EXTERN
  146.  
  147. IN PRACTISE DON'T WORRY-UNTIL YOU GET A RELOCATION MODE ERROR.
  148.  
  149.  
  150.  
  151.  
  152. END OF CHAPTER6
  153.  
  154. (C)1987 BY CAPTAIN CHAOS FROM THE CAPTAIN CREW
  155.  
  156.