DLX-Assembler-Programmierung Kutil, 2010
|
|
|
- Edith Beyer
- vor 10 Jahren
- Abrufe
Transkript
1 DLX-Assembler-Programmierung Kutil, 200 Es gibt mehrere Simulatoren für den DLX-Prozessor. Erstens WinDLX, ein altes 6-Bit-Windows-Programm mit GUI und Dokumentation. Zweitens dlxsim, ein Unix-Programm mit Command-Line-Interface, beschrieben weiter hinten in diesem Dokument. Und drittens einen Web- Simulator auf der LV-Seite, basierend auf dlxsim. Die DLX-Befehle selbst werden im Detail weiter hinten erklärt. In den Beispielen wird -Code und DLX-Assemblercode gegenübergestellt (einmal C- Code). Die korrespondierenden Anweisungen stehen nach Möglichkeit in der gleichen Zeile. Dadurch soll die Funktion der Codeteile erklärt werden und die Beziehung zwischen Assembler und höheren Programmiersprachen verdeutlicht werden. Wie fange ich an? Der Programmcode muss normalerweise mit einem Editor erzeugt werden und in eine Datei mit Endung.s geschrieben werden und im jeweiligen Simulator geöffnet/geladen werden. Für echte Prozessoren würde ein Assembler den Code in Maschinencode in einer Objet-Datei umwandeln, der dann in den Speicher des Computers geladen werden kann. Wie sieht so ein Programm nun eigentlich aus? Also: Input und Output gibt es nicht. Es gibt nur Daten, die irgendwo im Speicher stehen. Die werden initialisiert (oder auch nicht) und nach Ablauf des Programms sieht man nach, was drin steht. Ein Programm wird in zwei Teile geteilt. Im ersten Teil werden die Daten definiert. Dieser Teil wird eingeleitet mit.data. Im zweiten Teil steht der Assemblercode. Dieser Teil wird eingeleitet mit.text. 2 int var = ; 3 int var2 = 3; 2 var:.word 3 var2:.word 3 6 var2 = var; 8.text 6 main: lw r, var sw var2, r 8 trap #0 Was steht da? Also ganz links stehen die Labels. Mit Hilfe dieser Labels kann man nachher die Adresse im Speicher erreichen, an der das Ding steht, das man rechts vom Label definiert. Das können sowohl Daten als auch Codeteile sein (Sprungadressen). Mit.word wird der Typ eines Datums definiert (ein Wort eben), das an dieser Stelle stehen soll. Dahinter steht der Inhalt. Also: an der Stelle var soll ein Wort mit Inhalt stehen. Ein Wort hat hier Byte, kann also Werte von 0 bis 2 32 bzw. von 2 3 bis 2 3 beinhalten, je nachdem ob man mit oder ohne Vorzeichen arbeitet. Das legt man aber erst fest, wenn man die Daten manipuliert. Neben.word gibt es noch.byte,.float und.double. Mit.ascii kann man Strings definieren, mit.asciiz sind diese null-terminiert. Mit.space kann man einen (uninitialisierten) Speicherbereich definieren, dessen Größe man hinter.space in Bytes angibt. Hinter main: steht der erste Befehl, der ausgeführt wird. Die Befehle haben meist die Form Befehl Ziel,Quelle oder Befehl Ziel,Quelle,Quelle. In diesem Fall ist der erste Befehl lw, ausgesprochen load word. Dieser Befehl nimmt das Datum an der Speicherstelle Quelle
2 und schreibt es in ein Register mit Namen Ziel. (Mehr zu Registern später.) Die Quelle ist in diesem Fall die Variable var, genauer gesagt die Adresse, an der im Speicher diese Variable steht. Das Ziel ist das Register r. Der nächste Befehl schreibt nun den Inhalt des selben Registers an die Stelle var2. Insgesamt wird also var nach var2 kopiert, genau so wie im -Code. Der nächste Befehl, trap #0, ist eine Verlegenheitslösung und soll nur das Ende des Programms darstellen. Er signalisiert dem DLX-Simulator einen Ausnahmezustand (Exception), was diesen veranlasst, anzuhalten. Ohne diesen Befehl würden die Zufallsdaten, die hinter dem Programm im Speicher stehen, als Maschinenbefehle missinterpretiert werden und das Programm dadurch wirren Unfug treiben (abstürzen oder sich aufhängen). Die meisten Befehlscodes sind aus folgenden Kürzel zusammengesetzt: l = load, s = store oder set, b = branch, j = jump, eq = equal, ne = not equal, gt = greater than, lt = less than, ge = greater or equal, le = less or equal, r = register, z = zero, w = word, h = half word, b = byte, i = immediate. Damit dürfte sich die Bedeutung der einzelnen Operationen einfach erschließen. 2 Register Der DLX hat 32 Register, in denen Wörter zwischengespeichert werden können. Sie heißen r0, r,..., r3. Sie können fast beliebig als Quelle und Ziel von Befehlen verwendet werden. Folgendes Programm berechnet das Polynom y = ax 2 + bx + c. 2 int a = 3; 3 int b = ; int c = -; int x = 2; 6 int y; 8 9 y = a 0 * x 2 * x + 3 b * x 6 + c; 2 a:.word 3 3 b:.word c:.word - x:.word 2 6 y:.word 0 8.text 9 start: lw r, a 0 lw r2, x mult r, r, r2 2 mult r, r, r2 3 lw r3, b mult r3, r3, r2 add r, r, r3 6 lw r, c add r, r, r 8 sw y, r 9 trap #0 Es werden also Register für Variablen und Zwischenergebnisse verwendet. Es ist sehr hilfreich, sich diese Zuordnung zu notieren, damit man den Überblick nicht verliert. Und das ist durchaus ernst gemeint! r=y, r2=x, r3=b*x, r=c Das Register r0 wurde hier aus gutem Grund nicht verwendet. Es hat eine spezielle Funktion. Es ist immer gleich 0 und kann daher nicht beschrieben werden. Was das für einen Sinn hat? Man kann damit zb Werte von Register zu Register kopieren. Der Befehl add r,r,r0 kopiert 2
3 zb r nach r. Für sowas hat der DLX nämlich keinen eigenen Befehl. 3 Verzweigungen Hurra, in Assembler dürfen Sie GOTOs verwenden, ja Sie müssen sogar! Genießen Sie diese Gelegenheit! Hier heißen die GOTOs Jump oder Branch. Jumps sind die unbedingten Sprünge, d.h. es wird immer gesprungen. Bei Branches wird der Sprung nur durchgeführt, wenn eine Bedingung erfüllt ist (bedingter Sprung). Folgender Programmteil begrenzt den Wert von R mit 0 nach unten und +20 nach oben: if (x < -0) 2 3 x = -0; else if (x > 20) 6 x = 20; slti r2,r,#-0 ; r2!=0 wenn r<-0 2 beqz r2,elsif ; zu else, wenn r2=0 3 addi r,r0,#-0 ; r=-0 j endif elsif: sgti r2,r,#20 ; r2!=0 wenn r>20 6 beqz r2,endif ; zu endif, wenn r2=0 addi r,r0,#20 ; r=20 8 endif: Das hinter den Strichpunkten sind Kommentare. Übrigens Musterbeispiele an bescheuerten Kommentaren, weil sie nur das aussagen, was eh schon aus den Befehlen selbst hervorgeht. Sollten Sie selbst irgendwann mal was kommentieren, finden Sie bessere Kommentare! Sowas wie der -Code links zb. Schleifen Wenn man rückwärts springt, entsteht eine Programmschleife. Dabei ist es wichtig, den Schleifenabbruch richtig hinzukriegen. Vor allem für den Fall, dass abhängig von den Daten die Schleife nur einmal oder gar nicht durchlaufen wird. Als erstes sehen wir hier eine for-schleife: 2 int n = 6; 3 byte[] data = new byte[n]; int i; 6 8 for (i = 0; i < n; i ++) 9 { 0 data[i] *= 2; 2 3 } 2 n:.word 6 3 data:.space 6.text 6 start: lw r, n ; r = n add r2, r0, r0 ; i = 0 8 loop: slt r3, r2, r ; Wenn nicht i < n, 9 beqz r3, endloop ; dann Abbruch 0 lb r, data(r2) ; loop body add r, r, r ; loop body 2 sb data(r2), r ; loop body 3 addi r2, r2, # ; i++ j loop ; nächste Iteration endloop: 6 trap #0 Es ist zu beachten, dass die Abbruchbedingung zu Beginn der Schleife geprüft wird. Das mag 3
4 anfangs etwas eigentümlich wirken, aber falls n gleich 0 ist, darf die Schleife gar nicht durchlaufen werden. Deshalb muss der Schleifenabbruch zu Beginn der Schleife stattfinden. Schleifen, die mindestens einmal durchlaufen werden müssen, gibt es zwar auch, die sind aber wirklich nicht häufig. Die zweite wichtige Schleifenart ist die while-schleife. Hier ein Beispiel, das den abgerundeten 2-er-Logarithmus von n berechnet: 2 int l = 0; 3 while (n > ) { n /= 2; 6 l ++; } lw r, n ; lese n 2 add r2, r0, r0 ; Log. null 3 loop: sgt r3, r, # ; Wenn nicht n > beqz r3, endloop ; dann Abbruch sra r, r, # ; shift right = Div. 6 addi r2, r2, # ; Log. erhöhen j loop ; nächste Iteration 8 endloop: Pointer Im Beispiel zur for-schleife haben wir auf eine Array von Bytes zugegriffen mittels data(r2) (bzw. data[i] in ). Dabei ist r2 (bzw. i) der Index. Das geht deshalb so einfach, weil die Elemente genau die Größe haben ( Byte). Daher errechnet sich die Adresse von data[i] aus der Adresse data plus dem Index (i bzw. r2). Wenn wir auf ein Array von Wörtern zugreifen, muss man aber den Index mit multiplizieren, weil ein Wort eben vier Bytes lang ist. Also so: 2 int[] data = new int[6]; 3 int i = 3; 2 data:.space 6 3 i:.word 3 6 data[i] *= 2;.text 6 start: lw r2, i ; lade i sla r3, r2, #2 ; berechne i* 8 lw r, data(r3) ; lade von data+i* 9 add r, r, r ; *= 2 0 sw data(r3), r ; schreibe data+i* Wenn man aber jedes mal beim Zugriff auf ein Array die richtige Adresse erst mühsam errechnen muss, ist das umständlich und auch langsam. Eine bessere Methode ist die Verwendung von Pointern. Das sind Adressen, die in einem Register gespeichert werden. Pointer zeigen mitten in ein Array hinein. Pointer werden nach vor und zurück verschoben, indem man die Größe eines Elements addiert bzw. subtrahiert. Das Beispiel mit der for-schleife sieht für ein word-array dann so aus:
5 C 2 int n = 6; 3 int data[6]; int i; 6 int *ptr = data; 8 for (i = n; i > 0; i --) 9 { 0 *ptr *= 2; 2 ptr ++; 3 } 2 n:.word 6 3 data:.space 6.text 6 start: addui r2, r0, data ; Pointer laden lw r, n ; r = n = i 8 loop: beqz r, endloop ; Abbruch bei i=0 9 lw r, 0(r2) ; loop body 0 add r, r, r ; loop body sw 0(r2), r ; loop body 2 addi r2, r2, # ; Pointer erhöhen 3 subi r, r, # ; i-- j loop ; nächste Iteration endloop: 6 trap #0 Man beachte, dass das Array jetzt vier mal so viel Platz braucht (6 statt 6 Bytes). In Zeile 6 wird Register r2 mit der Adresse von data geladen und dient damit als Pointer. In Zeile 9 und wird über den Pointer auf das Array zugegriffen. In Zeile 2 wird der Pointer um ein Wort ( Bytes) erhöht. Da i jetzt nicht mehr als Index gebraucht wird und nur noch zum Zählen der Schleifeniterationen verwendet wird, kann man i von 0 herunterzählen lassen. Das ist ein beliebter Trick, mit dem man sich einen slt-befehl bei der Endebedingung sparen kann (Zeile 8). i wird einfach mit beqz auf 0 getestet.
6 6 Unterprogramme Unterprogramme werden in Assembler aufgerufen, indem man an den Anfang des Unterprogramms springt und am Ende wieder zurückspringt. Wenn das Unterprogramm aber von mehreren Stellen aus aufgerufen wird, weiß es natürlich nicht, wohin es zurückspringen soll. Daher muss man dem Unterprogramm in einem Register die Rücksprungadresse mitteilen. Zu diesem Zweck hat der DLX-Prozessor einen eigenen Befehl: jal (Jump and link). Dieser speichert die Adresse des nachfolgenden Befehls im Register r3. Der Rücksprung erfolgt demgemäß mit jr r3. 2 static void main () 3 { e = max (a, b) max (c, d); 9 0 } 2 3 static int max (int p, int q) { if (p < q) p = q; 6 return p; }.text 2 main: lw r, a 3 lw r2, b jal max add r3, r0, r 6 lw r, c lw r2, d 8 jal max 9 add r3, r3, r 0 sw e, r3 end: trap #0 2 3 max: slt r, r, r2 ; r=p, r2=q beqz r, ismax add r, r0, r2 6 ismax: jr r3 ; r=return value Sowohl die Argumente (p, q) als auch das Resultat werden in Registern übergeben. Es muss darauf geachtet werden, dass das Unterprogramm nicht Register überschreibt, die vom aufrufenden Programm verwendet werden. Da dies vor allem bei größeren Programmen problematisch werden kann (Fehlerquelle: man übersieht leicht etwas), gibt es zwei gängige Lösungen: Callee-Save Das aufgerufene Unterprogramm sichert die Inhalte aller Register, die es verändert, vorher im Speicher und holt sie vor dem Rücksprung wieder zurück. Caller-Save Das aufrufende Programm sichert alle Register, deren Inhalte nicht verloren gehen dürfen, vor dem Unterprogramm-Aufruf im Speicher und holt sie nachher wieder zurück. Bei beiden Varianten wird möglicherweise zu viel gesichert. Das gleiche Problem tritt auch für das Register r3 auf, wenn ein aufgerufenes Unterprogramm ein weiteres Unterprogramm aufruft. Dabei würde die erste Rücksprungadresse verloren gehen. Das Register r3 kann klarerweise nur nach dem Caller-Save-Prinzip gesichert werden. Hier ist das Programm noch einmal in beiden Save-Varianten: 6
7 Caller-Save 2 r3sv:.word 0 3 r3sv:.word 0.text 6 main: lw r, a lw r2, b 8 sw r3sv, r3 ; save 9 jal max 0 lw r3, r3sv ; restore add r3, r0, r 2 lw r, c 3 lw r2, d sw r3sv, r3 ; save sw r3sv, r3 ; save 6 jal max lw r3, r3sv ; restore 8 lw r3, r3sv ; restore 9 add r3, r3, r 20 sw e, r3 2 end: trap #0 Callee-Save 2 r3sv:.word 0 3.text main: lw r, a 6 lw r2, b jal max 8 add r3, r0, r 9 lw r, c 0 lw r2, d jal max 2 add r3, r3, r 3 sw e, r3 end: trap #0 6 max: sw r3sv, r3 ; save slt r3, r, r2 ; jetzt darf 8 beqz r3, ismax ; r3 verw. 9 add r, r0, r2 ; werden 20 ismax: lw r3, r3sv ; restore 2 jr r max: slt r3, r, r2 ; jetzt darf 2 beqz r3, ismax ; r3 verw. 2 add r, r0, r2 ; werden 26 ismax: jr r3 Bei diesem Schema bekommt man noch immer Probleme, falls man ein rekursives Unterprogramm programmieren möchte. Da die Register immer an die selbe Stelle gesichert werden, wird die Sicherung beim ersten Selbstaufruf überschrieben. Als Lösung kann man einen Stack implementieren. Man reserviert einen Speicherbereich und setzt ein dediziertes Register als Stackpointer ein, der auf diesen Speicherbereich zeigt. Nach jeder Register-Sicherung an die Stelle, wo der Stackpointer hinzeigt, wird der Stackpointer erhöht und vor der Wiederherstellung wieder vermindert. Der Stack kann von allen Unterprogrammen gemeinsam benutzt werden. Ordentliche Prozessoren bieten für sowas Unterstützung im Befehlssatz an.
8 Vorsicht, Falle!. Adressen passen eigentlich nicht in Immediate-Werte So, jetzt lernen wir, dass alles, was wir bis jetzt gemacht haben, gar nicht funktionieren kann. Naja, nur sehr eingeschränkt halt. Das Problem ist, dass wir an mehreren Stellen Speicheradressen durch Immediate-Werte angesprochen haben. So zb in lw r,a, sw data(r3),r oder addui r2,r0,data. Der ganze Adressraum umfasst 2 32 Byte, Immediate-Werte fassen aber nur 6 Bit. Falls also eine Variable an einer Speicherstelle über 63 zu finden ist, sind diese Befehle kaputt. Hier eine Anleitung, wie man es richtig machen müsste: Kaputte Befehle addui r2, r0, data 2 3 lw r, a 6 sw data(r3), r 8 9 So wär s richtig lhi r2, data >> 6 2 addui r2, r2, data & 0xffff 3 lhi r2, a >> 6 lw r, (a & 0xffff)(r2) 6 lhi r2, data >> 6 8 add r2, r2, r3 9 sw (data & 0xffff)(r2), r Tja, blöder Prozessor! Bei Sprungadressen ist dieses Problem zum Glück nicht so akut, weil Sprungadressen relativ sind (zb 23 Befehle nach vor, zurück, etc.). Nur wenn Programmteile weit über den Adressbereich verstreut sind, werden auch Sprünge kritisch..2 Label Alignment Ein anderes Problem lässt sich leichter beheben: Manchmal definiert man Daten, deren Größe nicht ein Vielfaches von ist (zb Textstrings). Nachfolgende Daten sollten aber womöglich an einer Adresse stehen, die durch teilbar ist. Das nennt man word aligned. Daher sollten gerade so viele Bytes freigelassen werden, dass das erfüllt ist. Die Anweisung.word erledigt das für uns. Das start: Label vor dem ersten Code macht da aber oft Probleme. Die Lösung ist die Anweisung.align. Diese ist am besten eine Zeile vor.text einzufügen..3 Branch Delay Slots Manche Simulatoren implementieren einen branch delay slot, bei manchen kann man ihn einstellen. WinDLX benutzt ihn (defaultmäßig) nicht. Was ist ein branch delay slot? Nun, da wird einfach der erste Befehl nach einem Branch oder Jump immer ausgeführt, egal ob gesprungen wird oder nicht. Dadurch können beim Pipelining Stalls verhindert werden, die durch Verzweigungen entstehen. Um also DLX-Programme zu schreiben, die auf jedem DLX-Simulator richtig laufen, ist es notwendig, nach jedem Branch oder Jump einen Befehl einzubauen, der nichts tut, also den Befehl nop. Der Web-Simulator benutzt die branch delay slots, es gibt allerdings die Einstellung insert nops into branch delay slots, die beim Assemblieren die branch delay slots mit nops füllt. 8
9 8 DLX-Befehle Im folgenden steht r für ein Integer-Register, also z.b. r3, f für ein Float-Register, also z.b. f3, und für einen Immediate-Wert, das kann eine Zahl in der Form #xxx sein oder auch ein Label, dessen relative Adresse dann als Immediate-Wert eingesetzt wird. 8. Datentransfer-Befehle LB[U] r, (r ) Load Byte [Unsigned] LH[U] r, (r ) Load Half word [Unsigned] LW r, (r ) Load Word LF f, (r ) Load Float LD f, (r ) Load Double SB (r ), r Store Byte SH (r ), r Store Half word SW (r ), r Store Word SF (r ), f Store Float SD (r ), f Store Double MOVI2S Move Integer To Special MOVS2I Move Special To Integer MOVF f, f Move Float MOVD f, f Move Double MOVFP2I r, f Move Float To Integer MOVI2FP f, r Move Integer To Float Die Befehle, die mit L beginnen laden ein Byte, ein Halbword (2 Byte), ein Wort ( Byte), ein Float ( Byte Gleitkommazahl) oder ein Double (8 Byte Gleitkommazahl) aus dem Speicher in ein Register. Die Speicher-Adresse setzt sich dabei aus einem Immediate-Wert plus einem Register zusammen, die beiden werden einfach addiert. Oft ist der Immediate-Wert die Beginn-Adresse eines Arrays, angegeben durch dessen Label, und der Registerinhalt fungiert als Index im Array. Daher auch die Schreibweise mit der Klammer. Oft macht man es aber genau umgekehrt, wenn das Register die Adresse einer Struktur (oder eines Klassenobjekts) enthält und der Immediate- Wert das jeweilige Element der Struktur auswählt. Bei LB und LH gibt es noch zwei Varianten, nämlich signed und unsigned. Da der geladene Wert kürzer ist als ein Register, müssen die führenden Bits mit etwas befüllt werden. Bei unsigned wird mit Nullen befüllt, bei signed mit dem Vorzeichenbit des geladenen Werts. So hat dann das Register als ganzes auch bei negativen Werten den korrekten Inhalt. Die Befehle, die mit S beginnen, machen das gleiche in die andere Richtung, sie speichern also Registerinhalte im Speicher. Die Befehle, die mit M beginnen, bewegen Registerinhalte von einem in ein anderes Register, ohne den Inhalt zu verändern. 9
10 8.2 Arithmetisch-logische Befehle ADD[U][I] r, r, r / Add [Unsigned] [Immediate] SUB[U][I] r, r, r / Subtract [Unsigned] [Immediate] MULT[U] r, r, r Multiply [Unsigned] DIV[U] r, r, r Divide [Unsigned] AND[I] r, r, r / Logical And [Immediate] OR[I] r, r, r / Logical Or [Immediate] XOR[I] r, r, r / Logical Xor [Immediate] LHI r, Load High Immediate SLL[I] r, r, r / Shift Left Logical SRL[I] r, r, r / Shift Right Logical SRA[I] r, r, r / Shift Right Arithmetic S{EQ,NE}[U][I] r, r, r / Set {Equal, Not Equal} [Uns.] [Imm.] S{GT,LT}[U][I] r, r, r / Set {Greater, Less} Than [Uns.] [Imm.] S{GE,LE}[U][I] r, r, r / Set {Greater, Less} or Equal [Uns.] [Imm.] Die meisten dieser Befehle akzeptieren als zweiten Operanden entweder ein Register oder einen Immediate-Wert. In letzterem Fall muss an den Befehl ein I angehängt werden, also z.b. ADDI. MULT und DIV sind eigentlich keine gültigen Befehle, stattdessen müssten MULTI und DIVI (die ansonsten eigentlich MULT und DIV heißen) verwendet werden, die allerdings zwar mit Integer-Werten arbeiten, diese aber in Gleitkomma-Registern erwarten. Die Integer-Befehle MULT und DIV werden daher beim Assemblieren so übersetzt, dass die Quellregister (z.b. r) mit MOVI2FP in ein entsprechendes Gleitkomma-Register kopiert werden (z.b. f), dann MUL- TI oder DIVI eingesetzt wird, und anschließend das Ergebnis mit MOVFP2I wieder in ein Integer-Register zurückkopiert wird. Der LHI-Befehl wird benötigt, wenn man 32-Bit-Immediate-Werte (z.b. Adressen) in ein Register laden möchte. Mit ADDI r,r0,#xxx geht das nicht, weil Immediate-Werte weniger als 32 Bit beinhalten. LHI lädt 6 Bit in die obere Hälfte des Registers. Die untere Hälfte kann dann mit ADDI oder ORI ergänzt werden. Für die Shift-Right-Befehle gibt es die Varianten logical und arithmetic. In letzterem Fall werden die frei werdenden führenden Bits mit dem bisher führenden Bit aufgefüllt, das entspricht dann einer Signed-Division durch eine 2er-Potenz, bei logical werden sie mit 0 aufgefüllt. Die Set-Befehle führen den entsprechenden Vergleich der zwei Quell-Operanden durch und setzen das Ziel-Register auf einen Wert ungleich 0 (meist ), wenn der Vergleich wahr ist. Dieser Ergebniswert wird dann meistens in Branch-Befehlen weiter verwendet. 8.3 Sprungbefehle BEQZ r, Branch on Equal Zero BNEZ r, Branch on Not Equal Zero BFPT Branch on Float True BFPF Branch on Float False J Jump JR r Jump Register JAL Jump And Link JALR r Jump And Link Register TRAP Trap RFE Return From Exception 0
11 Die Branch-Befehle springen an die Adresse, die als relative Adresse im Immediate-Wert angegeben wird, falls das angegebene Register (nicht) null enthält, bzw. wenn ein Gleitkomma- Vergleich wahr (falsch) ergeben hat. Ansonsten fährt der Prozessor mit dem nächsten Befehl fort. Die Jump-Befehle springen dagegen ohne Bedingung. Die Zieladresse kann hier auch als absolute Adresse in einem Register stehen. Bei And Link wird die Adresse des nächsten Befehls in das Register r3 geschrieben. So kann man später mit JR r3 zurückspringen und mit dem ursprünglichen Code fortfahren. Dieser Vorgang entspricht einem Funktionsaufruf inklusive return. TRAP löst eine Ausnahmesituation aus. Am häufigsten wird TRAP #0 verwendet, um den Simulator anzuhalten. 8. Gleitkomma-Befehle ADD{F,D} f, f, f Add {Float, Double} SUB{F,D} f, f, f Subtract {Float, Double} MULT{F,D,[U]I} f, f, f Multiply {Float, Double, Integer} DIV{F,D,[U]I} f, f, f Divide {Float, Double, Integer} CVT{F,D,I}2{F,D,I} f, f Convert {Float, Double, Integer} to {... } {EQ,NE}{F,D} f, f {Equal, Not Equal} {Float, Double} {GT,LT}{F,D} f, f {Greater, Less} Than {Float, Double} {GE,LE}{F,D} f, f {Greater, Less} or Equal {Float, Double} Diese Befehle arbeiten mit Float-Zahlen in Gleitkomma-Registern bzw. mit Double-Zahlen, die zwei Gleitkomma-Register überspannen können. Bei Double-Befehlen muss als Register immer ein geradzahliges (f0, f2, f,... ) angegeben werden. Für Integer-Befehle muss ein Integer-Wert in einem Gleitkomma-Register stehen, also z.b. vorher mit MOVI2FP aus einem Integer-Register kopiert worden sein. Die Vergleichs-Befehle haben im Gegensatz zu den äquivalenten Integer-Befehlen kein Zielregister. Das Vergleichsergebnis steht in einem eigenen Spezialregister, wird bei jedem Vergleich überschrieben und kann nur mit BFPT und BFPF abgefragt werden.
12 9 DLX unter Linux/Unix WinDLX gibt es wie der Name schon sagt nur unter Windows. Für Linux/Unix gibt es ein kommandozeilenorientieres Tool namens dlxsim, das im Web frei verfügbar und leicht zu ergooglen ist. Es kommt meist als dlx.tar.gz. Einfach entpacken und dann cd dlx/dlxsim; make sagen. Die Software simuliert leider das Pipelining nicht so schön wie WinDLX. Es gibt auch eine Dokumentation dazu. Diese kann erzeugt werden mit cd dlx/man; latex report; dvips report; gv report.ps. Die Bedienung ist etwas gewöhnungsbedürftig, nach einer Weile ist man damit aber sogar schneller als mit WinDLX, weil man nicht ständig blöd herumklicksen muss. Zuerst startet man dlxsim mittels dlxsim. Dann lädt man das Programm mittels load programm.s. Mit go wird das Programm gestartet und läuft bis zum trap 0 durch. Mit step tracet man das Programm schrittweise durch. Mit dem get Befehl kann man alles mögliche anzeigen: Der erste Parameter bestimmt, was angezeigt wird, der zweite Parameter wie es angezeigt wird. So zeigt z.b. get r d den Inhalt des Registers r als Dezimalzahl, get name 0c die 0 Bytes an der Speicherstelle name und get start 8i die 8 Instruktionen ab dem Programm-Label start. Mit dem Befehl stop können auch Breakpoints gesetzt werden. Aber das ist in der Dokumentation (s.o.) alles viel genauer beschrieben. Ach ja: go und step starten immer vom aktuellen program counter weg. Am Anfang ist dieser auf 0 gesetzt. Das Programm beginnt (üblicherweise) aber bei Speicherstelle 26. Wenn man also nur go sagt, führt der Prozessor zuerst die Instruktionen zwischen 0 und 26 aus. Da dieser Bereich (üblicherweise) mit Nullen gefüllt ist, werden dabei nur nop-befehle ausgeführt. Trotzdem sollte man bei go oder dem ersten step besser die Startadresse angeben. ZB so: go start. Einen wichtigen Unterschied zwischen dlxsim und WinDLX gibt es noch: In dlxsim gibt es den Befehl mult für Integer-Register nicht. Diese müssen zuerst mit movi2fp in Float- Register kopiert werden, dort mit mult multipliziert und mit movfp2i wieder zurück kopiert werden. WinDLX macht das im Hintergrund eigentlich genauso. Noch einen Unterschied gibt es: dlxsim verwendet einen branch delay slot. Daher immer einen nop-befehl nach jedem Branch und jedem Jump einbauen. Oder eben den branch delay slot zur Performance-Optimierung verwenden. Dann läuft das Programm aber wahrscheinlich in WinDLX nicht mehr. 2
DLX-Assembler für Anfänger Kutil, 2004
DLX-Assembler für Anfänger Kutil, 200 Hiermit können Sie die ersten Schritte in die Assemblerprogrammierung am Beispiel des virtuellen DLX-Prozessors machen. Dieses Dokument erklärt aber nicht die Befehle
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
DLX Befehlsübersicht
DLX sübersicht 1 Instruktionen für den Daten-Transfer Daten können mit folgenden en zwischen Registern und dem Speicher oder zwischen Integer- und Fließkomma-Registern ausgetauscht werden. Der einzige
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
Wie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Mikrocomputertechnik. Adressierungsarten
Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Arbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
Softwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Wir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".
Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
I.1 Die Parrot Assemblersprache
I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
Statuten in leichter Sprache
Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
Graphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?
Anleitung für Evident Seite 1 Anleitung für Evident-Anwender: Einbinden der MIZ-Dokumente in Evident. Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen? Zunächst müssen Sie entscheiden,
Datensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer
Rechnerarchitektur Marián Vajteršic und Helmut A. Mayer Fachbereich Computerwissenschaften Universität Salzburg [email protected] und [email protected] Tel.: 8044-6344 und 8044-6315 3. Mai 2017
Viele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Dokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
Menü auf zwei Module verteilt (Joomla 3.4.0)
Menü auf zwei Module verteilt (Joomla 3.4.0) Oft wird bei Joomla das Menü in einem Modul dargestellt, wenn Sie aber z.b. ein horizontales Hauptmenü mit einem vertikalen Untermenü machen möchten, dann finden
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)
Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele
Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen
Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen Als ersten Schritt müssen wir alle Fotos die in die Galerie sollen hochladen. Wir gehen davon aus, dass das Plugin PWGallery bereits installiert und
Installationsleitfaden kabelsafe backup professional unter MS Windows
Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsanleitung und Schnelleinstieg kabelsafe backup professional (kabelnet-obm) unter MS Windows Als PDF herunterladen Diese
Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt
1. Für alle, die mit wenig zufrieden sind Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt Bild 1 bekommt man erst mal einen Schreck. Die Meldung wurden nicht gesichert beunruhigt,
Simulation LIF5000. Abbildung 1
Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles
LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
affilinet_ Flash-Spezifikationen
affilinet_ Flash-Spezifikationen Inhaltsverzeichnis Allgemeines...2 Klickzählung...2 Lead/Sale Programme... 2 PPC und Kombi Programme...3 Übergabe von Formulardaten...4 clicktag Variante Sale/Lead Programm...4
Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
Repetitionsaufgaben Wurzelgleichungen
Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen
Gleichungen Lösen. Ein graphischer Blick auf Gleichungen
Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Grundlagen der Informatik
Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................
Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)
Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung
Datenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7
KeePass Anleitung 1.0Allgemeine Informationen zu Keepass KeePass unter Windows7 2.0 Installation unter Windows7 2.1 Erstellen einer neuen Datenbank 2.2 Speichern von Benutzernamen und Passwörtern 2.3 Sprache
Java-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
Greencardgratis.de. Bildbearbeitung Do-It-Yourself (Ver.2008) 1. Gehen Sie auf http://www.picnik.com/ Klicken Sie dort auf Get started now!
Greencardgratis.de Bildbearbeitung Do-It-Yourself (Ver.2008) Dieses Dokument ist rechtlich geschützt. Die unautorisierte Weitergabe oder Verwendung ist nicht erlaubt. Das Dokument darf ausschließlich von
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe
Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!
Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?
UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.
192.168.0.1. Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.
Windows Netzwerk Sie haben einen oder mehrere PC mit einander verbunden? Dann sollte man das auch nutzen. Generelles: Ein PC hat in der Regel IMMER eine feste Nummer / Adresse (egal ob wechselnd oder immer
Informationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
ltlasten in der Registrierdatenbank löschen
ltlasten in der Registrierdatenbank löschen In der Registry, deutsch Registrierdatenbank, speichert Windows die gesamte Konfiguration des Rechners und alle Einstellungen. Zusätzlich legen Programme hier
Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003
Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.
Wer in der Grundschule ein wenig aufgepasst hat, sollte in der Lage sein schriftlich eine Zahl durch eine zweite zu teilen.
Teilen binär Teil 1 - Vorzeichenlose Ganzzahlen ============ Irgendwann steht jeder Programmieren vor diesem Problem. Wie teile ich eine Binärzahl durch eine zweite? Wer in der Grundschule ein wenig aufgepasst
Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software
Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung
Professionelle Seminare im Bereich MS-Office
Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet
Konvertieren von Settingsdateien
Konvertieren von Settingsdateien Mit SetEdit können sie jedes der von diesem Programm unterstützten Settingsformate in jedes andere unterstützte Format konvertieren, sofern Sie das passende Modul (in Form
Installation OMNIKEY 3121 USB
Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,
Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40
CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News
Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5
Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5 In diesem Tutorial will ich Ihnen zeigen, wie man mit LibreOffice Calc 3.5 eine einfache Entlohnungsberechnung erstellt, wobei eine automatische
Informatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
Tipps und Tricks zu den Updates
Tipps und Tricks zu den Updates Grundsätzlich können Sie Updates immer auf 2 Wegen herunterladen, zum einen direkt über unsere Internetseite, zum anderen aus unserer email zu einem aktuellen Update. Wenn
Benutzerhandbuch DesignMaster II
Benutzerhandbuch DesignMaster II Vielen Dank für Ihre Entscheidung zum Design Master! Zusätzliche Anleitungen finden Sie auf der Webseite: http://www.craftrobo.de Stand: Juni 2010 medacom graphics GmbH
Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
Handbuch für Redakteure
Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6
Eigene Dokumente, Fotos, Bilder etc. sichern
Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches
Übung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.
40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
Programme im Griff Was bringt Ihnen dieses Kapitel?
3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich
Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
Verschlüsselung mit PGP. Teil 1: Installation
Verschlüsselung mit PGP Teil 1: Installation Burkhard Messer FHTW Berlin FB 4 Wirtschaftsinformatik Verschlüsselung mit PGP - Teil 1/Installation 04.04.2006 1 Version Es steht das mehr oder weniger freie
TYPO3 Tipps und Tricks
TYPO3 Tipps und Tricks Seiten als Shortcut. Hiermit ist gemeint, dass eine Oberseite direkt auf eine tiefere Unterseite verlinkt. Dies kann bei Themen ohne gesonderte Übersichtsseite hilfreich sein. Zum
Gruppenrichtlinien und Softwareverteilung
Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden
Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.
Kartei, Patient neu anlegen / 1. Kontaktbrief schreiben Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen. -> Klick Button Kartei -> Klick
Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server
Hallo Leute Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server (= echtes - zeug ) liegt! Die neue Form hat insbesondere folgende Vorteile: Du bekommst einen
AUSBILDUNG eines OBEDIENCE HUNDES
Beginners, CH (Box, Carré), 15 m entfernt Beginners, CH ab 2017 FCI - 1 (Box, Carré), 15 m entfernt mit Platz, 15 m FCI - 2 FCI - 3 mit Platz und Abrufen, 23 m Voransenden in einen Kreis, dann in ein Viereck
