home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / Asm-Course2.lha / Einleitung.TXT < prev    next >
Encoding:
Text File  |  1992-09-02  |  10.9 KB  |  231 lines

  1.  
  2.           A S S E M B L E R - K U R S       (c)  Jeff Kandle 1990
  3.  
  4.                               Einleitung....
  5.  
  6. So, leute
  7.  
  8. jetzt geht`s rund hier. Es ist der Erste Assemblerkurs der zugibt das man
  9. mit ihm auf keinen Fall `Gut` programmieren lernt, allenfalls lernt man
  10. durch geschicktes umgehen der Betriebssystemroutinen unheimlich schnell zu
  11. werden.
  12. Er ist einzig und allein dazu geschrieben, damit die Leute die ihn lesen, nach
  13. dem Kurs im Stande sind
  14. eine Intro oder sogar ein Gutes Demo zu schreiben. Denn das ist es was die
  15. meisten erstmal koennen wollen...was danach kommt kann ja jeder selber
  16. entscheiden.
  17.  
  18. Auch werdet ihr nicht stundenlang BefehlsTabellen lesen muessen, oder sogar
  19. auswendig lernen muessen. Vielmehr, ihr werdet ja noch nicht mal alle
  20. Assembler-Befehle kennenlernen, eben halt nur die wichtigsten (glaubt mir
  21. die reichen schon)
  22. Falls einer jedoch an den Befehlen interessiert ist, soll er mir nur
  23. schreiben, ich habe ein paar brauchbare listen hier rumzufliegen.
  24.  
  25. Da ich die Kursteile ja nacheinander schreibe, bin ich in der lage,
  26. ausfuehrlich auf bestimmte sachen einzugehen. Ich halte nicht viel von
  27. pers. briefen an mich, wie diesen...Schreib mir doch bitte mal ein kleines
  28. Intro oder so...das koennt ihr mit sicherheit selber, wenn ihr
  29. einigermassen intelligent seit, und etwas lust mitbringt.
  30.  
  31. Nun, allerdings will ich mich nicht in erklaerungen fuer dieses und jenes
  32. programm verstricken, deshalb werde ich erstmal eine liste von den Sachen
  33. abschiessen, mit denen ich waehrend dieses Kurses arbeite. Also waere es
  34. guenstig wenn ihr euch ebenfalls diese Tools besorgt. Wenn es auch leute
  35. gibt die ein Modem haben, und dazu noch in der Gluecklichen lage sind
  36. eingetragene User der Titanic zu sein, muesst ihr mir einfach da nur einen
  37. brief schreiben und ihr kriegt zugriff auf ein brett, indem der ganze
  38. Klamauk liegt....also hier erstmal die liste vom noetigsten....
  39.  
  40.                 Seka V3.2
  41.                 Dpaint 1,2 oder 3 (3.21)
  42.                 Soundtracker 2.3 oder 2.5
  43.                 Noiseripper V1.0
  44.                 Kefrens Iff Converter
  45.                 Bytekiller (dazu spaeter mehr)
  46.  
  47. So, den meisten krempel kennt ihr ja schon, oder ihr wisst bestimmt wie man
  48. da dran kommt.
  49.  
  50. Naja, eigentlich ist es ja mehr ein kurs zum Intro schreiben, den ich zeige
  51. auch sachen wie das packen oder konvertieren. Viele Kurse nehmen das als
  52. Selbstverstaendlich hin, oder gehen gar nicht in dieses Thema ein.
  53. Auch braucht ihr keinen Super-Duper getunten Amiga zu diesem Kurs, da ich
  54. selber auch nur mit 1 MB und drei Laufwerken arbeite, also auch keine
  55. Astro-aufgeruestete Maschine...
  56. Ausserdem ist es bei der Programmierung sowieso Aegerlich wenn man da 2.3
  57. MB hat und man sie nicht ausnutzen kann, den so ein Intro muss auch auf
  58. `nem normalen Amiga laufen. Es ist allerdings mit 1 MB besser zu
  59. realisieren, also waere ein Megabyte schon guenstig, ich werde allerdings
  60. auch auf die `Kleinen` eingehen, falls es Probleme bei einer Sachen geben
  61. koennte...
  62.  
  63. Ich werde auch fuer die Minderbegabten im Zeichnen oder Komponieren 1 oder
  64. 2 Bilder und Soundtracker module hierher schicken.
  65. Allerdings erst wenn das dran ist. Auch um eine Abspielroutine (was`n das)
  66. braucht ihr euch nicht zu kuemmern, ich werde die demnaechst irgendwann
  67. liefern.
  68.  
  69. Tja, was gibt es noch zu sagen (ich weiss ich rede soviel, aber ich finde
  70. das gehoert dazu, schliesslich haben wir ja auch eine menge vor)...achja,
  71. ihr braucht bei diesem Kurs nicht Tage oder Wochenlang vor der Kiste zu
  72. sitzen, denn das mache ich auch nicht. Eine Stunde am Tag reicht voellig
  73. aus. Am besten waere es ihr habt auch einen Drucker, oder einen Freund der
  74. einen Drucker hat, oder einen Freund der einen Kennt dessen Bruder einen
  75. Drucker hat, denn dann koenntet ihr euch das ausdrucken lassen, was ich mir
  76. hier so zusammen schreibsele. Und wenn ihr das dann unter euer Kopfkissen
  77. legt, und darauf eine Nacht schlaft, was meint ihr was...Quatsch, aber ich
  78. werde im Laufe des kurses immer wieder auf die Intern Buecher von Data
  79. Becker zurueckkommen, dort ist es zwar nicht unbedingt besser erklaert,
  80. aber die haben die ganzen adressen die man so braucht, schoen kompakt auf 5
  81. bis 6 seiten. Allerdings werde ich auch immer bezeichnung und wert einer
  82. Adresse oder eines Wichtigen registers nennen, wenn ich damit arbeite, wenn
  83. ihr euch dann noch mit einem Edding bewaffnet, und euch die sachen Markiert
  84. dann koennt ihr euch schon nach kurzer zeit die Einzelnen Adressen, aus
  85. vorherigen kursteilen ziehen, und euch vielleicht eine kleine Kartei
  86. anlegen, wo dann der wichtigste Krempel drin steht.
  87.  
  88. Ja, ansonsten braucht ihr ausser ein paar leerer disketten eigentlich
  89. nichts mehr, und deshalb koennte ich jetzt loslegen mit dem Kurs...
  90.  
  91.         In 273 Tagen zum Programmierer werden....
  92.  
  93. Ach Quatsch, ich weiss nicht wielange der Kurs geht, aber solange bestimmt
  94. nicht, aber es ist die genaue Zahl meiner Zeit in Amiga Assembler...
  95.  
  96. Auch wenn der Kurs etwas anders als die anderen sein soll, ich weiss nicht
  97. ob er es wird, kann ich doch nicht um einige Themen rum. Obwohl ich nicht
  98. glaube das ihr ohne Jegliche unterstuetzende Literatur, oder ohne Sonstige
  99. sachen, wie zum Beispiel andere Assembler-kurse (wehe, wenn ich das
  100. erfahre) ins `rennen` geht, muss ich als erstes eine Frage beantworten, die
  101. da lautet....
  102.  
  103. 1) Was ist eigentlich Maschinensprache ?
  104.  
  105. Ja, das ist leicht erklaert, naehmlich einen Haufen Transistoren die
  106. entweder leiten oder nicht leiten, also bloss zwei zustaende. Wie ihr die
  107. nennt ist Egal...ob Schwarz oder Weiss...Heiss oder kalt..An oder Aus,
  108. alles was gegensaetzlich ist stimmt. Der einfachheit halber bleiben wir
  109. aber bei 1101001010010100101
  110.  
  111. Das war Maschinensprache...wenn ihr mich jetzt fragt was das heisst dann
  112. wuesste ich es nicht, denn dieses Wissen uebernimmt fuer mich der Assembler,
  113. ich meine diesmal das Programm. Ich gebe ihm, eine fuer ihn (und
  114. hoffentlich bald auch fuer euch) sinnvolle kombination von Woertern und
  115. zahlen ein, der er dann Uebersetzt und im Speicher zusammenbaut
  116. (Assembliert).
  117. Diese Kombination aus Zahlen und worten, stellen ein Sinnfaelliges Wort
  118. dar, welches in etwa die Funktion beschreibt die die darauss entstehende Bit
  119. kombination, ich meine dieses 1101001001, dann bei aufruf und abarbeitung
  120. durchfuehrt wie zum beispiel
  121.  
  122.    Move  fuer Moven oder zu deutsch schieben (schiebe wert von nach)
  123.  
  124.         oder
  125.  
  126.    Add oder Sub fuer addieren oder Subtrahieren
  127.  
  128.         noch eins
  129.  
  130.    Cmp fuer Compare oder vergleichen.
  131.  
  132. Diese Worte, man nennt sie Uebrigens Mnemonics (ich weiss - Scheisswort)
  133. ergeben meisstens in irgendwelchen Listings ein ausfuehbares programm.
  134. Alleine hingegen, sind die Befehle, bis auf ein paar ausnahmen nicht in der
  135. lage irgendetwas sinnvolles zu bewirken. Die meisten Sachen in Assembler
  136. laufen sowieso durch vergleichen, kopieren und nochmals vergleichen ab,
  137. deshalb kommen die meisten befehle die wir lernen werden auch aus diesem
  138. gebiet.
  139.  
  140. Wie der Prozessor das Ganze verwaltet ist zu schwierig um es euch zu
  141. erklaeren (um ehrlich zu sein weiss ich es selber nicht so ganz genau) aber
  142. das wuerde auch den rahmen eine Kurses Sprengen. Wichtig ist nur das ihr
  143. wisst Wie der Prozessor was und warum macht, und wie man ihm das sagt.
  144.  
  145. Nur halt soviel.....
  146. Der Prozessor hat ein Register in sich in der die Augenblickliche Adresse
  147. befindet an der der Prozessor knabbert. Wenn wir ein Programm starten,
  148. machen wir nichts anderes als wie dem Prozessor einfach eine neue Adresse
  149. dahin zu schreiben, wenn er dann denn Aktuellen Befehlabgearbeitet hat,
  150. nimmt er sich die Adresse und macht da weiter. Das ist genauso als wenn ich
  151. ein Aufgezogenes Spielzeug Auto das an mir vorbeifaehrt, hochhebe, die
  152. Raeder Blockiere, und es irgendwo anders wieder hinsetze und die raeder
  153. loslasse...
  154. Dieses angesprochene Register ist der sogenannte Prozessor Counter (PC)
  155. Wichtig wird es erst, wenn man damit programmiert, aber erstmal lassen wir
  156. die Finger davon, also wenn ich mich mal vertippen sollte, und da steht was
  157. von `Schreiben wir den Wert nach A7, dann macht da eine A6 daraus, denn der
  158. PC befindet sich eben in diesem Register.
  159. Bei anderen Prozessoren war dieses wichtige register immer gut verstckt,
  160. bei Amiga bzw. bei MC 68000 oder MC 68010 ist es halt einfacher.
  161.  
  162. Der Prozessor schnappt sich also nach der Abarbeitung eines Befehls den PC
  163. und holt sich das erste Word aus dem Speicher....
  164.  
  165. Haeh, word...eben hat der doch was von Zahlen gesagt...
  166. Klar um nicht von Halbbyte, zwei bytes und vierbytes reden zu muessen,
  167. wurden die Synonyme Nibble, Byte, Word, Longword erfunden, sie heissen im
  168. einzelnen.
  169.  
  170. Nibble =
  171. Vier Bits, stellt werte von 0 bis 15 oder von -8 bis +7 dar
  172.  
  173. Byte =
  174. Acht Bits, stellt werte von 0 bis 255 oder von -128 bis +127 dar
  175.  
  176. Word =
  177. Zwei Bytes, stellt werte von 0 bis 65535 oder von -32768 bis +32767 dar
  178.  
  179. Longword =
  180. Vier Bytes, stellt werte von 0 bis 4294967295 oder von
  181.  -2147483648 bis +2147483647 dar
  182.  
  183. So jetzt wisst ihr dass schon...
  184.  
  185. Also weiter im Text...wie gesagt, er holt sich das naechste wort aus dem
  186. Speicher, da alle befehle des MC 68000 ein wort lang sind reicht das
  187. erstmal. Nachdem er erkannt hat was es fuer ein Befehl ist weiss er ob er
  188. noch etwas, und wenn wieviel er aus dem Speicher holen muss damit der
  189. Befehl richtig laeuft. Manche Befehle brauchen auch keine weiteren Daten,
  190. die sind natuerlich sehr schnell.
  191. Natuerlich, wird bei jedem weiteren Element was er sich holt auch der PC
  192. weitergesetzt, waere dies nicht der falls wuerde es sehr schnell zum Guru
  193. Fuehren, den Obwohl es unheimlich viele Kombinationen gibt die fuer den
  194. Prozessor ein brauchbare Kombination abgeben, gibt es immer wieder welche
  195. die das Teil halt unheimlich ins Husten bringt weil er damit nicht anfangen
  196. kann. In vielen Faellen merkt er allerdings vorher einen Kleinen
  197. Hustenreiz, dann weiss er das das was er sich da geholt hat nicht gut war,
  198. und gibt dann die Guru-Meditation aus. Aber manchmal schafft er noch nicht
  199. mal mehr das, und dann weiss man noch nicht mal was man da Falsch gemacht
  200. hat.
  201. Naja, da wollen wir ja nicht hoffen das euch das oft passiert, aber es
  202. passiert halt immer wieder....mir taeglich.
  203.  
  204. Nun noch mal zu den Zahlensystemen mit denen Ihr zutun bekommt..
  205. Diese Zahlen die ich da oben genannt habe, sehen mehr oder weniger Wild
  206. ausgesucht aus, das kommt daher das sie dezimal System dargestellt sind, da
  207. man aber auf einem Computer mit einen Zahlen System rechnet das 16 als
  208. basis hat sind es halt dezimal so schraege zahlen, Hexadezimal heisst das
  209. 16 ner System, und da sehen die werte so aus
  210.  
  211. Nibble          $0 bis $f
  212. Byte            $00 bis $ff
  213. Word            $0000 bis $ffff
  214. und
  215. Longword        $00000000 bis $ffffffff
  216.  
  217. Ha, das sieht doch viel einfacher aus...
  218. Es waere also Gunestig wenn ihr einen Taschenrechner habt der Hexadezimal
  219. umrechnen kann. Da ich davon ausgehe das alle Computerfreaks auch einen
  220. Fimmel fuer taschenrechner haben, schaetze ich mal das so ein ding doch
  221. aufzutreiben ist.
  222. Falls nicht, der Seka nimmt alle werte auch dezimal an, und kann auch um
  223. rechnen.
  224.  
  225. So, das wars es fuers erste...noch nichts zum lernen dabei, naja ein
  226. bisschen, aber lest es euch trotzdem gut durch.....
  227.  
  228. bis demnaechst
  229.  
  230.                 Jeff Kandle
  231.