Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
Page 1 of 3 1 2 3
#128344 14/11/03 12:29 PM
Joined: Mar 2003
Location: Feenreich
Rei Offline OP
veteran
OP Offline
veteran
Joined: Mar 2003
Location: Feenreich
Im Informatik fangen wir gerade mit Maschinensprache an und müssen Programme damit schreiben. Da hier ja sehr viele Informatik können, könnt ihr mir doch bestimmt immer wieder helfen. <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" />
Unser erstes Programm soll die Gauß Formel beherschen.

Zur Verfügung steht mir der AC, und die Aressen 120, 121 und 122 im Hauptspeicher. In 120 steht die Zahl x, in 122 soll am Ende das Ergebnis stehen.

HS Inhalt
100 MOV 1
101 120
102 CJP
103 200
104 SUB 0
105 1
106 STO
107 121
108 MOV 1
109 120
110 ADD 1
111 121
112 STO
113 122
114 MOV 1
115 121
116 JMP
117 102

Wenn jemand einen Fehler entdeckt, bitte sagen.
Und wenn mir jemand das Hilfsprogramm von unserem Lehrer erklären kann (zu finden auf www.stamaonline.de -> X-tra -> Progr./Javascript -> Programme für den Inforamtikunterricht) wäre das sehr hilfreich für mich. <img src="/ubbthreads/images/graemlins/smile.gif" alt="" />

#128345 14/11/03 12:31 PM
Joined: Mar 2003
A
veteran
Offline
veteran
A
Joined: Mar 2003
Wo lernt man sowas ? Kannst du Literatur empfehlen ?


When you find a big kettle of crazy, it's best not to stir it.
--Dilbert cartoon

"Interplay.some zombiefied unlife thing going on there" - skavenhorde at RPGWatch
#128346 14/11/03 12:36 PM
Joined: Mar 2003
Location: Feenreich
Rei Offline OP
veteran
OP Offline
veteran
Joined: Mar 2003
Location: Feenreich
Das lerne ich gerade in der Schule im Informatikunterricht. Literatur kann ich dir nicht empfehlen, weil wir keine benutzen.

#128347 14/11/03 12:38 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
<img src="/ubbthreads/images/graemlins/eek.gif" alt="" /> <img src="/ubbthreads/images/graemlins/eek.gif" alt="" /> <img src="/ubbthreads/images/graemlins/eek.gif" alt="" /> Die Schule hätt ich auch gerne besucht......

#128348 14/11/03 01:43 PM
Joined: Mar 2003
Location: Germany
veteran
Offline
veteran
Joined: Mar 2003
Location: Germany
Mein Informatik-Grundkurs liegt jetzt auch schon mehr als 6 Jahre zurück, so daß ich mich an die Ausführungen über Maschinensprache/Assembler kaum noch erinnere. Alles, was ich glaube zu wissen ist, daß MOV doch eigentlich ZWEI Argumente braucht, odä? <img src="/ubbthreads/images/graemlins/think.gif" alt="" />

Ich denke, wenn Dir hier niemand helfen kann, was schwerlich vorzustellen ist, solltest Du Dein kleines Programm mal Zeile für Zeile erläutern. <img src="/ubbthreads/images/graemlins/smile.gif" alt="" />


Nigel Powers: "There are only two things I can't stand in this world. People who are intolerant of other people's cultures... and the Dutch!"
#128349 14/11/03 03:27 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
Für welchen Prozessor macht Ihr das denn? Für 8088 und 80386 hätte ich Assembler Bücher zuhause. Wenn es andere Prozessoren sind dann hat das ganze womöglich eine völlig andere bedeutung.

#128350 14/11/03 03:51 PM
Joined: Mar 2003
A
veteran
Offline
veteran
A
Joined: Mar 2003
Wenn mal jemand so nett wäre, und mir mal detailliert jenes Fragment / Programm von oben erklären könnte ...


When you find a big kettle of crazy, it's best not to stir it.
--Dilbert cartoon

"Interplay.some zombiefied unlife thing going on there" - skavenhorde at RPGWatch
#128351 14/11/03 05:58 PM
Joined: Mar 2003
Location: düsseldorf
veteran
Offline
veteran
Joined: Mar 2003
Location: düsseldorf
Quote
Wenn mal jemand so nett wäre, und mir mal detailliert jenes Fragment / Programm von oben erklären könnte ...


also gut dann:
es handelt sich hierbei um eine verschlüsselte auflistung des fernsehprogramms EINES senders namens HS <img src="/ubbthreads/images/graemlins/exclamation.gif" alt="" />
wobei die erste spalte die anfangszeiten markiert und die 2. spalte hinweise auf das programm gibt.


HS Inhalt [color:"red"]sender / inhalt[/color]
100 MOV 1 [color:"blue"]z. b. 20:15 / film 1[/color]
101 120 [color:"green"]120 minuten lang[/color]
102 CJP [color:"orange"]hauptdarsteller[/color]
103 200 [color:"pink"]altersfreigabe[/color]
104 SUB 0 [color:"white"]WERBUNG[/color]
105 1 [color:"brown"]benotung von ralf ranicki[/color]
106 STO VIDEO programmieren <img src="/ubbthreads/images/graemlins/exclamation.gif" alt="" />
107 121 [color:"green"]120 minuten lang[/color]
108 MOV 1 [color:"blue"]z. b. 20:15 / film 2[/color] usw


#128352 14/11/03 06:13 PM
Joined: Mar 2003
Location: Germany
veteran
Offline
veteran
Joined: Mar 2003
Location: Germany
Donnerwetter, Harga! So einfach? Juchu, ich kann Maschinensprache.


Wenn sie so überlegen sind, warum sind sie dann so tot?
#128353 14/11/03 06:21 PM
Joined: Mar 2003
Location: Germany
veteran
Offline
veteran
Joined: Mar 2003
Location: Germany
Quote
103 200 [color:"pink"]altersfreigabe[/color]


Na, dann hast DU ja Glück gehabt, Opa Harga! <img src="/ubbthreads/images/graemlins/badsmile2.gif" alt="" />


Nigel Powers: "There are only two things I can't stand in this world. People who are intolerant of other people's cultures... and the Dutch!"
#128354 14/11/03 06:48 PM
Joined: Mar 2003
Location: Feenreich
Rei Offline OP
veteran
OP Offline
veteran
Joined: Mar 2003
Location: Feenreich
@Barnabus: Hättest du bestimmt nicht. Wenn das Motto des lehrers "Freß oder stirb" ist und man einmal nicht mitkommt, ist der Rest des Unterrichtsthema für einen nur noch raten und hoffen, dass es richtig ist.

Quote
Für welchen Prozessor macht Ihr das denn? Für 8088 und 80386 hätte ich Assembler Bücher zuhause. Wenn es andere Prozessoren sind dann hat das ganze womöglich eine völlig andere bedeutung.

Ich habe keine Ahnung, Tut. Ich hab nur folgende Inforamtionen, die für uns reichen.
ARI 1: <AC>°<A1> -> AC
ARI 0: <AC>°A1 -> AC
MOV 1: <A1> -> AC
MOV 0: A1 -> AC
STO: <AC> -> A1
CJP: (<VZ> < 0) springt zu A1
JMP: springt zu A1
A1 ist immer, was nach dem Befehl steht
Hoffe, das hilft dir weiter.
@elgi: Wie du siehst, braucht MOV nur ein Element. Und zwar was er in den AC schreiben soll. <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" />

@Alrik: Aber natürlich gern

Schritt --- AC ---- 120 - 121 - 122
0 ------------------ x
1 MOV ---- x
2 CJP
3 SUB 0 -- x-1
4 STO ------------------- x-1
5 MOV 1 -- x
6 ADD 1 -- x+(x-1)
7 STO ------------------------- x+(x-1)
8 MOV 1 -- x-1
9 JMP
dann fängt der ganze Spaß wieder bei Schritt 2 an, bis die Zahl im AC kleiner als 0 ist. Dann ist das Programm beendet.
Nun ist halt die Frage, ob das ganze halt klappt oder nicht. Wenn ich das downloadbae Programm ja bedienen könnte, wäre dies natürlich kein Problem.

#128355 14/11/03 06:58 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
Faszinierend! <img src="/ubbthreads/images/graemlins/eek.gif" alt="" />

*was heisen nur die vielen Buchstaben und Zahlen die er da hintereinander gepackt hat...... <img src="/ubbthreads/images/graemlins/confused.gif" alt="" /> *

Also Rei, ich denke mal das das eine nette und wunderschöne Erklärung des Programmes ist........... aber mir is das zu hoch.......versteh nur Bahnhof. <img src="/ubbthreads/images/graemlins/silly.gif" alt="" />

*wieder ne Bildungslücke <img src="/ubbthreads/images/graemlins/shame.gif" alt="" /> *


#128356 14/11/03 06:58 PM
Joined: Mar 2003
A
veteran
Offline
veteran
A
Joined: Mar 2003
Also ... selbst, wenn ich mich jetzt blamiere ... ehrlich gesagt : Ich verstehe es immer noch nicht (ganz) ...

Könntest du das mal anhand eines Beispiels durchrechnen ?


When you find a big kettle of crazy, it's best not to stir it.
--Dilbert cartoon

"Interplay.some zombiefied unlife thing going on there" - skavenhorde at RPGWatch
#128357 14/11/03 07:12 PM
Joined: Mar 2003
Location: Feenreich
Rei Offline OP
veteran
OP Offline
veteran
Joined: Mar 2003
Location: Feenreich
Ich merk gerade, dass ein Fehler drin ist. Sobald ich den verbessert habe, gibts was neues. <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" />

#128358 14/11/03 07:17 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
Na dann hat dein Post doch seinen Zweck erfüllt. <img src="/ubbthreads/images/graemlins/delight.gif" alt="" />
Auch wenn außer dir keiner so recht was zu verstehen scheint. <img src="/ubbthreads/images/graemlins/silly.gif" alt="" />

#128359 14/11/03 09:21 PM
Joined: Mar 2003
T
journeyman
Offline
journeyman
T
Joined: Mar 2003
Ich riskier trotzdem mal ne Erklärung, da ich un ne Stunde drüber gegrübelt hab:)

Also mit folgendem Code sollte die Gaußformel korrekt berechnet werden...
Ich hab nur statt der Adressen 120-122 die Adressen 918 (Eingabe) und 919(Ausgabe) verwendet, damit man in dem Demoassembler von Deinem Link das gleich austesten kann.

Da Problem bei Deinem Code ist, dass in 122 immer nur neu geschrieben wird, ohne dass die bisher berechnete Summe benutzt wird.
Außerdem ist mir nicht klar, wieso Du 3 Adressen brauchst? In einer Adresse wird die Eingangszahl immer runtergezählt und in der anderen die Summe aufaddiert. Nur wenn die Eingabe in dem Register unverändert bleiben soll, bräuchte man ein drittes zum Spiechern der Eingabe, aber das stand ja nicht in der Aufgabe.

Inhalt
900 SET 0
901 919
902 MOV 1
903 918
904 CJP
905 920
906 ADD 1
907 919
908 STO
909 919
910 MOV 1
911 918
912 SUB 0
913 1
914 STO
915 918
916 JMP
917 902

918 6


Algorithmus:
1. Setze Ausgabevariable auf 0 (900,901)
2. Addiere Eingabevariable zur Ausgabevariable (902,903,906-909)
3. Ziehe 1 von der Eingabevariable ab (910-915)
4. Solange Eingabevariable größer 0 fahre mit 2. fort (904,905,916,917)

@elgi
Man muss immer zwei Zeilen als eine lesen, mov 1 9xx bewegt den Speicherinhalt der Adresse 9xx ins Register

Reicht das so, oder soll ich den Beispielcode des Lehrers noch erklären?

#128360 14/11/03 09:49 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
Hi Rei,

das mit dem Programm zumindest war gar nicht so schwer! <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" />
(Mann, wann war das? 2. oder 3. Semester? - Zu lang her... <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" /> <img src="/ubbthreads/images/graemlins/delight.gif" alt="" /> )

Das am Anfang verwirrende ist nur, daß der AssemblerDemoInterpreter
a. zum einen bei seinem HS halt erst mit Adressen im 900er Bereich beginnt
b. zunächst nicht genügend Hauptspeicher-Adressen zur Verfügung zu stehen scheinen.

Zu ersterem mußt Du Dein Programm entsprechend modifizieren, und zwar da wo die Adress-Zahlen Deiner 3 Speicherstellen im Quelltext vorkommen und an den Punkten an denen noch Adressen des Hauptspeichers angegeben werden.
Ich habe diesen anstatt 120, 121, 122 beim Test analog 920, 921 und 922 zugewiesen.

Folgerichtig müssen die ersten Zeilen Deines Programmes so umgeschrieben werden und ab HS-Adresse 900 im ADI eingegeben werden:

HS Inhalt
900 MOV 1
901 920
902 CJP
903 999
904 SUB 0
905 1
906 STO
907 921
...

Dabei ergibt sich auch automatisch die Lösung für Problem b. Denn sobald Du die letzte angezeigte Adress-Zeile ausgefüllt hast und "Pfeil-nach-unten" drückst, erscheint sogleich (wie von Zauberhand! <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" /> ) eine weitere usw.usf.

Kleine Anmerkung noch zur Zeile:

902 CJP
903 999 <--

Die Zahl dort ist ziemlich unerheblich und kann beliebig gewählt werden, solange sie nur außerhalb des HS-Bereichs liegt, den Dein Programm belegt (also niedriger 900, größer 922)!
Die Zahl dient nämlich nur dazu, daß das Programm an diese Adresse springt, sobald der Test des vorangegangenen Befehls positiv ausfällt.
Dieser heißt CJP, was soviel bedeutet wie "Conditional JumP", also einen bedingten Sprung.
Dies wiederum sagt aus, daß das Programm an die Adresse (hier:) 999 springt, wenn eine bestimmte Bedingung (Annahme: Test auf Gleichheit zweier Variablen) während des Ablaufs erfüllt wird.
Ich denke zumindest die eine der Vergleichszahlen ist im AC (hilft mir mal einer auf die Sprünge, bitte? Was heißt das nochmal? A... Counter? Oder doch ACcumulator?).
Die andere Speicheradresse, mit deren Inhalt CJP den Wert in AC vergleicht, konnte ich bis jetzt noch nicht ausfindig machen.

In Quintessenz ist die Funktion des CJP jedenfalls, wenn das Programm an einen Punkt kommt, an dem seine Bedingung erfüllt ist, daß er Dein Programm dann beendet (da es mit der leeren Adresse 999 zu der er springt nicht mehr weitergeht).
Es handelt sich sozusagen also um eine Art "Exit-Routine".
Sonst würde Dein Programm ewig laufen - das tut es nämlich. Es läuft in Schleifen ab dem zweiten Durchgang immer wieder von HS-Adresse 902 bis 916/917.
Diese letzteren beiden Zeilen befördert es nämlich immer wieder durch den "JMP (= JuMP) 902" an die Adresse mit dem CJP, bis eben dessen Test erfolgreich ist und er im Anschluß anstatt bei 904 weiterzumachen, an die Ende-Adresse 999 geht.

Hast Du das soweit verstanden? Ich weiß, ein klein wenig umständlich und wirr. Sorry! <img src="/ubbthreads/images/graemlins/shame.gif" alt="" />

Was die Frage der Funktionsfähigkeit des Programmes angeht, kann ich noch nichts sagen, da ich den Algorithmus noch nicht richtig geblickt habe, da Mathematik (deswegen folgte dann leider auch nur noch Semester 4 <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" /> <img src="/ubbthreads/images/graemlins/sad.gif" alt="" /> ).

Könntest Du vielleicht nochmal auch den mathematischen Term für diese `Gauss-Formel´ posten, die hier vom Programm angeblich durchgerechnet werden soll?


Bis dahin tschüß,
Ragon, der Zahlenmagier (HUAAH! <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" /> <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" /> <img src="/ubbthreads/images/graemlins/delight.gif" alt="" /> )

#128361 14/11/03 09:51 PM
Joined: Mar 2003
Location: Germany
veteran
Offline
veteran
Joined: Mar 2003
Location: Germany
Jetzt kommt's gleich... "Zwischenposter" <img src="/ubbthreads/images/graemlins/winkwink.gif" alt="" /> <img src="/ubbthreads/images/graemlins/biggrin.gif" alt="" />


Nigel Powers: "There are only two things I can't stand in this world. People who are intolerant of other people's cultures... and the Dutch!"
#128362 14/11/03 10:03 PM
Joined: Mar 2003
T
journeyman
Offline
journeyman
T
Joined: Mar 2003
Na, die Arbeit hätten wir uns wohl sinnvollerweise lieber aufgeteilt:)

#128363 14/11/03 10:29 PM
Joined: Mar 2003
veteran
Offline
veteran
Joined: Mar 2003
GRNNNHHHHH <img src="/ubbthreads/images/graemlins/memad.gif" alt="" /> <img src="/ubbthreads/images/graemlins/memad.gif" alt="" /> <img src="/ubbthreads/images/graemlins/memad.gif" alt="" />

Un´dafürhab´ichzweiStundenneben"DieFirma"hermichabgestrampeltoderwas!? <img src="/ubbthreads/images/graemlins/suspicion.gif" alt="" /> <img src="/ubbthreads/images/graemlins/memad.gif" alt="" />

GRRR, Du elender Zw... *tiefausatme* <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" /> <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" /> <img src="/ubbthreads/images/graemlins/rolleyes.gif" alt="" />

*seufz* <img src="/ubbthreads/images/graemlins/ouch.gif" alt="" /> <img src="/ubbthreads/images/graemlins/silly.gif" alt="" />

Page 1 of 3 1 2 3

Moderated by  Alix, ForkTong, Larian_QA, Macbeth 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5