In Der Reihe Franzis Computer-Praxis Klein .

3y ago
44 Views
2 Downloads
9.04 MB
178 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Warren Adams
Transcription

In der ReiheFranzis Computer-Praxissind erschienen:Klein, MikrocomputersystemeKlein, Mikrocomputer Hard- und SoftwarepraxisKlein, Z-80-ApplikationsbuchPlate, Pascal: Einführung - Programmentwicklung - Strukturen

Franzis Computer-PraxisRolf-Dieter KleinBasic-InterpreterFunktionsweise und Implementierungin 8080/z-80-ComputernMit 43 AbbildungenFranzis!l

CIP-Kurztitelaufnahme der Deutschen BibliothekKlein, Rolf-Dieter:Basic-Interpreter: Funktionsweise u. Implementierung in 8080/Z-80-Computern / Rolf-DieterKlein. - München: Franzis, 1981.(Franzis-Computer-Praxis)ISBN 3-7723-6941-3 1982 Franzis-Verlag GmbH, MünchenSämtliche Rechte, besonders das Übersetzungsrecht, an Text und Bildern vorbehalten.Fotomechanische Vervielfältigungen nur mit Genehmigung des Verlages.Jeder Nachdruck - auch auszugsweise - und jegliche Wiedergabe der Bilder sindverboten.Satz: SatzStudio Pfeifer, GermeringDruck: Franzis-Druck GmbH, Karlstraße 35, 8000 München 2Printed in Germany . Imprime en AllemagneISBN 3 -7723-6941-3

VorwortBasic ist als Programmiersprache wohl jedermann geläufig, der sich mit Mikrocomputern beschäftigt. S ho bi her wurdevi l Ü erBasic gesc ileben"' 'die'"A;t'd';rPiog amm"ieiung;die 'e s hied enen Dialekte, aber kaum ej}Vasjjber die Realisi rung V()nB i rr;'terpret;;; -Hie;:sorrntin-CintK16gHchkelr'gegeoen'werd en, hinterdie Kulissen zu sehen und nicht nur in derLage zu sein, in Basic programmieren zukönnen, sondern auch einen Basic-Interp eter selbst zu chreiDenoder derthi DeschrTebe;:;'enjnt rpreterzu'erwertern,umzubaue'no ereigine:laeenliTI1;rufUgenzu"kÖ-;; e . 'D h'da' be ereVersÜindr1isder Wifkungsweise eines Interpreters wirdder Leser auch in der Lage sein, Basic-Programme wirkungsvoller zu schreiben undmanche Eigenheiten besser zu verstehen.Das Buch gliedert sich im Prinzip invier Absclinitte: Nach einer prinzipiellenEinführung Über die unterschiedliche Arbeitsweise von Interp etern-undCompllerwlr(rdas'; RiYitBa'sjc,jaiinandfT2""stings und Syntaxdiagramme ausführlichbehandelt. Dann folgt ein Abschnitt, derinsbesondere den Z80-Besitzern gilt: ein12-K Byte-Basic mit sehr leistungsfähigemBefehlssatz, und schließlich für Z8000-Besitzer das RDK-Basic als Z8000-Variante,wobei hingegen der Rest des Buchs Überwiegend in 8080-Maschinensprache geschrie ben ist.Auch für Leser, die keinen der genannten Prozessoren besitzen, ist es leicht, dieProgramme zu verstehen und ggf. für deneigenen Prozessor aufzubereiten.Aber auch Leser, die sich "nur" in dieAssem biersprache einarbeiten wollen, werden in den Listings viele Tricks und Kniffekennenlernen und Einblick in die Programmierung gewinnen.eInesRolf-Dieter Klein5

Wichtiger HinweisDie in diesem Buch wiedergegebenen Schaltungen und Verfahren werden ohne Rücksicht auf die Patentlage mitgeteilt. Sie sind ausschließlich für Amateur- und Lehrzweckebestimmt und dürfen nicht gewerblich genutzt werden.Alle Schaltungen und technischen Angaben in diesem Buch wurden vom Autor mitgrößter Sorgfalt erarbeitet bzw. zusammengestellt und unter Einschaltung wirksamerKontrollrnaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. DerVerlag sieht sich deshalb gezwungen, darauf hinzuweisen, daß er weder eine Garantienoch die juristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen, übernehmen kann. Für die Mitteilung eventueller Fehler sindAutor und Verlag jederzeit dankbar.6

IInhalt1Mikrocomputer und Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92RealisierungsmögIichkeiten von Basic . . . . . . . . . . . . . . . . . . . . . . . . .Der Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Der Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Teilübersetzung als Komprorniß . . . . . . . . . . . . . . . . . . . . . . . . . . . .101019292.12.22.3RDK-Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Ein "Tiny Basic" und dessen Einsatz . . . . . . . . . . . . . . . . . . . . . . . . .Hardware bei Z80 und Z8000 zum Betrieb des Tiny Basic . . . . . . . . . . .Realisierung des Basic-Interpreters . . . . . . . . . . . . . . . . . . . . . . . . . .3.3IjO-Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3.1Einfache zeichenverarbeitende Routinen . . . . . . . . . . . . . . . . . . . . . .3.3.2Analyse von arithmetischen Ausdrücken . . . . . . . . . . . . . . . . . . . . . .3.3.3Befehlsabarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3.4Basic-Programmbeispiele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3.5ErweiterungsmögIichkeiten des Basic-Interpreters . . . . . . . . . . . . . . . .3.3.63.3.6.1 FIießkomma-Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3.6.2 Floppy-Anschluß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3.6.3 Graphik-Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KByte-Basic für Z80 . . . . . . . . .Anpassung des Basic-Interpreters . . el ELIZA . . . . . . . .10311511612555.15.1 .15.1.25.25.3Anhang. . . . . . . . . .Z8000-Basic. . . . . . .Z 8000-Monitor. . . . .Der Basic-Interpreter.Literaturverzeichnis. .Glossar. . . . . . . . . .129129163164164165Sachverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177.7

1 Mikrocomputer und BasicB.A.S.LC. (Beginners All Purpose Symbolic Instruction Code) wurde 1962 von J ohnKemeny und Thomas Kurtz "e:funden".Wegen der leichten Erlernbarfiir'und (re;einfachen Realisierung wurde es sehrschnell bei Mikrocomputern als Programmiersprache eingesetzt und ist jetzt ineiner Vielzahl von Dialekten und Erweiterungen auf dem Markt.g, lS , .13 .gi!Jn;. !eE.Mikro com Pllter e schIchte kamenB.a ls-.Inte.I'PEet r auf. Siewareitzun1ichst sehr einfach und mit vielen Einschränkungen versehen. Basic wurde dann immer weiter ausgebaut, und eskamen sogars12 :zi pe Basic-R chner wie Rl J.f. It . XE §] us h ;;us. eiMi!cr9forn pute -N uerlt\ViskluI1geI1gi L. .I1 e.fmf!t i:s h:9.n: Shne)1 I en:.dii zl!g n ir!g !1 .13.e. iS-I.ßtt!IJ E ter. Basic be-sitZt 'neben dem großen Vorteil der leichten Erlernbarkeit auch den Vorteil, daßProgrammtests schnell durchgeführt werden können und mit wenig Aufwand einlauffähiges Programm erstellt werden kann.In den folgenden Kapiteln wird gezeigt,wie es möglich ist, einen Basic-Interpreterzu konstruieren.9

2 Realisierungsmöglichkeiten von BasicDer Mikrocomputer hat die Aufgabe, dieeingegebenen Basic-Kommandos und Programme zu verstehen und auszuführen.Dafür gibt es im Prinzip ,dreiMöglichkei.ten:Im ersten Fall versteht der Computerdie Basic-Befehle unmittelbar und führtsofort, nachdem er erne;"iraehl verstanden hat, diesen aus. Dies nennt man Interpretation. Das dazugehörige Maschine!'ip";ogramrr!wird InterpEtl!tlE genannt.Dann gibt 'es noch die Möglichkeit dieBasic-Befehle in ein Ma§cllinenprugrammumzuvl'ande1fi··una dann auszuführen. Es lrdda ein Compiler benötigt. Die dritteArt stellt gewisse:;:maß n eine Mischung ausIn terp! t.tl!'"1l!!.d.G2!!!r gtl.r dar, d'IesasTc:·:sel'ehle werden in meist.ein xte langtlAbkürzungen ("Token;;','int rn Darstellung)umgewandelt, und diese werden nach"RUN" interpretiert. Im folgenden sollendiese drei Arten anhand von kurzen Beispielen weiter verdeutlicht werden." .," ,,. '. .,.,,,.·.o," , Basic", und es soll hier wirklich nur dasPrinzip verdeutlicht werden.Die Befehle lauten im einzelnen:LOAD (adr)La Laden des auf derAdresse "adr" stehenden Wertes in denAkkumulator.STORE adrSa Der Inhalt des Akkumulators wird auf dieAdresse "adr" gespeicher(ADD (adr)Aa Zum Inhalt des Akkumulators wird der Inhalt des auf der Adresse "adr" stehendenWertes addiert. DasErgebnis steht alsoim Akku.NEGNd Der Inhalt des Akkumulators wird bitweise komplementiert."d" steht für"dummy" und besitzt keine Bedeutung,muß allerdings vorhanden sein.JUMP adrJaSprung auf die Adresse "adr" im Programm teil, dort wirdder nächste Befehlausgeführt.JMPNZ adrIaFalls der Inhalt desAkkumulators ungleich Null ist, wirdauf die Adresse "adr"im Programmteil gesprungen.e"2.1 Der InterpreterEin Basic-Befehl wird erkannt und dannsofort ausgeführt. Um die Arbeitsweiseeines Interpreters besser verstehen zu können, soll eine kleine Programmierspracheerfunden werden, für die ein Interpretergebaut wird.Die Programmiersprache besteht auseinbuchstabigen Befehlen, die von einemweiteren Byte, dem Operanden gefolgtsind. Sie ähnelt damit zwar mehr einer Assembiersprache für einen Prozessor, als einer höheren Programmiersprache, dochsonst wären wir ja schon bei dem "RDK10

2.1 Der InterpreterOUTHEX (adr) Oa Der Inhalt der Speicherzelle auf "adr"in sedezimaler (hexadezimaler) Form aufdie Konsole ausgegeben.GETHEX (adr) Ga Von der Konsole wirdein sedezimaler (hexadezimaler) Wert geholtund auf die Speicherzelle "adr" geschrieben.CRLFCd Es wird ein CarriageReturn Line Feed(CRLF, WagenrücklaufjZeilenvorschub)an die Konsole ausgegeben. "d" stehtwieder für "dummy",da bei CRLF keinezusätzlichen Parameter nötig sind.ZEICH(adr)Za Der Inhalt der Speicherzelle "adr" wirdals ASCII-Zeichen interpretiert und dannauf der Konsole ausgegeben.HALTHd Das Programm ist beendet und es wirdein Stop ausgeführt."d" steht für"dummy", da keinweiterer Parameternötig ist.Die hypothetische Maschine mit dem obigen Befehlssatz besitzt einen Akkumulatorund kann 256 Bytes Programm und 256Bytes Daten adressieren.Ein Programm wird durch Hintereinanderschreiben der obigen Befehle gebildet.Dabei werden Parameter in binärer Formdirekt hinter das Befehlswort geschrieben.Eine Besonderheit ist, daß Daten adreßmäßig vom Programm völlig getrennt sindund Programm teile auch vom ProgrammfiernlchfeITeicl1bäfslrid: DÖchdas ·is'fähnlieh zuBasic, denn dort kann imNorr6'al (atlalicnrücht vom Progra aus fdasP ogr; ibst zugegrrtfenweraen ElnProgramm in unserer Programmsprachesieht z.B. wie folgt aus:G G l L A l S O H (Parameter in Sedezimal)Ein Speicherauszug (sedezimal) sieht wiefolgt aus:47 47 1 4C 41 l 53 4F 48 Das Programm bewirkt das Einlesen zweierZahlen, addiert diese, dann wird die Summeausgegeben und das Programm mit einemHalt beendet.Abb. }.1-1 zeigt die Hauptschleife desInterpreterprogramms. Als erstes wird derProgrammzähler mit einem Startwert vorbesetzt. Von dieser Adresse wird nach demerstmaligen Start des Interpreters der ersteBefehl geholt.Nun beginnt die eigentliche Schleife. Eswird der Befehl vom Speicher geholt. Dabei wird hier die Befehlskurzbezeichnungsowie der darauf folgende Datenwert geladen. Daher ist es auch nötig, im Programmimmer einen Parameter mit anzugeben,auch wenn der Befehl selbst ihn gar nichtbenötigt, zum Beispiel beim HALT-Befehl.Der Programmzähler wird dann erhöht in unserem Fall um den Wert zwei, da einBefehl zwei Speicheradressen belegt. Esfolgt nun die Abfrage auf die einzelnen Befehle. Trifft einer der Fälle zu, so wird dasdazugehörige Teilprogramm angesprungen.Wurde kein Befehl erkannt, so wird aufeine Fehlerroutine gesprungen.Abb. 2.1-2 zeigt die einzelnen Teilprogramme. Bei LOAD zum Beispiel wird derParameter des Befehls als Adresse interpretiert und der Inhalt dieser Speicherzellewird in den Akkumulator geladen. Beim11

2 Realisierungsmöglichkeiten von BasicAbb. 2.1-1 Hauptschleifedes Interpreterslade BefehlSpeichere BefehlAddierenNegierenSprung unbedingtAbb. 2.1-2 Teilprogramme des InterpretersSprung, wenn nicht 0Hex Ausgabe -:.------Hex EingabeCarriage returnZeichenausgabeHalt der CPU12STORE-Befehl ist es entsprechend umgekehrt. Beim Sprungbefehl JUMP wird derParameter direkt in den Programmzählergespeichert und damit der Sprung ausgeführt. Beim bedingten Sprung wird zuvornoch der Akkumulatorinhalt auf Null getestet und der Sprung ausgeführt falls derInhalt ungleich Null ist.Beim HALT-Befehl wird die Programmausführung gestoppt und eine Meldungauf der Konsole ausgegeben. Es wird anschließend gewartet bis eine Taste betätigtwurde und dann der Interpreter von neuemgestartet (Rücksetzstart). Tritt ein Fehlerauf, so geschieht genau das Gleiche. Eswird nur eine andere Meldung ausgegeben.

2.1 Der Interpreterzu Abb. 2.1-2Abb. 2.1-3 zeigt das Listing des Programms. Das Programm beginnt mit dreiSprüngen. Der erste Sprung führt auf deneigentlichen Programmstart mit der MarkeSTARTE. Dann folgen zwei Sprünge mitabsoluten Sprungzielen. Der erste Sprungmit der Marke CI führt auf eine Konsoleingaberoutine und es wird ein Zeichen vonder Tastatur der Konsole im Akkumulatorübergeb.en. Der Sprung CO enthält im C-Register ein Zeichen, welches vom Unterprogramm auf der Adresse BEOCH an dieKonsole ausgegeben wird. Die Unterprogramme enden mit einem RET-Befehl, obwohl es auf den ersten Blick sehr ungewöhnlich scheint, sie mit einem Sprungbe-fehl aufzurufen. Aber die Marken CI undCO werden mit CALL-Befehlen angesprochen und somit stimmt die Unterprogrammaufruffolge wieder.Das Programm selbst entspricht ziemlich genau dem Flußdiagramm. Das Registerpaar HL wird als Programmzählerverwendet. Dieses wird nach dem Start mitder Adresse des Programmfeldes besetzt.Danach erfolgt der Eintritt in die SchleifeLOOP. Der Befehl wird in den Akku desProzessors 8080 geholt und dann HL umeins erhöht, so daß das Registerpaar nunauf den Parameter des zuvor eingelesenenWertes zeigt. Dieser Parameter wird in dasRegister E eingelesen und HL erneut um13

TDL ZB0 CP/M DISK ASSEMBLER VERSION 2.21.MAIN. -PAGE 1.phex.pabs Loc 100h;0100;************************;* Mini Interpreter*;* RDK 800214*;************************0100019301136C3 0109C3 BE99C3 BE0CStart:ci:co:jmp startejmp 0be09hjmp 0be0ch;Consol Eingabe Ln AjConsoL Ausgabe in C;fl1 13901990113 0123el12611128012B012Q0:131391320 .35111370nA013C0:l3F0141011.1401460:l/1921 19997E23SE231611FE4CCA IH4CFE53CA 9153FE41CA 91SAFE4ECA 9166FE4ACA 9179FE49CA 9176FE4FCA 9189FE47CA 0187FE43CA 0197FE5ACA 01A4FE4BCA IHACC3 01E4starte:lxi h,prgloop:mov a,minx hmov e,minx hmvi d,datacp l IIL 11jz Loadcpi. "S"jInterpreter Hauptprogr-amm;festgeLegte PT'og AnfadT'Rsse;HauptschleLfej befeh l ho I,. njhighoT'deT' oonst datajZeichen L dann LOADjSTOREjz storecpi. "Alljz add;ADDcpi "N"jz negatecpi. "J"jz jumpcp i u1 11jz jmpnzcpi "Ollj.z: outhe:(;NEGcpi.nGHjz gethexcpi "C"jz CT'lfcpi."Ziljz zeichcpi. uHujz haltjmp errorjJUMP;JMPNZjOUTHEXjGETHEXAbb. 2.1-3 Listing des MiniInterpreters;CRLF;ZEICHjHALT;;einzeLne BefehLe;014C014 C914D9150LO ld:lA32 021EC3 910Clda:( dsta akkujmp loop3A 921E12C3 910 CstoT'e:lda akkusta:( djmp Loopjdata ladenjin viT'tueLLen akkuifertigi015301539156015714;hoLen akku;abspeichern

PAGE 2TDL ZBI!l CP IM DISK ASSEt18LER VERSION 2.21.MAIN. -;1!l15A1!l15A01581315 C015F01613IH63add:lA473A 1!l21EB832 1!l21EC3 B18CLdax Dmov b,aLda akkuadd bsta akKujmp loop3A 021E2F32 821EC3 811!lCnegate:lda a :kucmasta akkujmp loop; Laden wert; akku;nach 3176131791!l17A1317 D; 1 er Komp lemc!nt;ESC3 1!l11!lCjump :mvi d,prghxehgjmp loop;nur innerhalb prg;neuer pe3A 1!l21E87CA 1!l1HC3 81713jmpnz:lda akkuora ajz loopjmp jump; fa lls null ni.eht01BI!l0181301810184lACD 13188C3 8HlCout hex :lda: dcaL L pracjmp loop131871318701BA0188018 C018 D01BE1!l1BF13192@1930194CO 81088787878747CO 810881312C3 13113 Cgethex:eall getdlgadd aadd aadd aadd amcv b,aeal l getdi.gadd bstax djmp l.oop8E8DCD 011360E0ACD 131136C3 010 CcrLf:mvl c ,0dhcall comvi c,!ilahca Ll cojmp I,coplbHl prinlJen;wle jump tue l t.er;;bJert 5

TDL Z88 CP/M OISK ASSEt1BLER VERSION 2.21.MAIN. -PAGE 3;91A481 A401AS81A601 A981AC01AC01AF01B20185ze i.ch:lA4FCO 8106C3 018C11CDCDC3820F01F001038180Ldax dmov c,acaLL cojmp I,Qop;haLt:Lxi d,hmesscaL L printcaLI, cijmp start;Zeichen ausgabe;meLdung an consnLe;zeichen eingeben danl! rsetweitere Unterprogramme818801880189018A81888l8C8180 I1 C081Cl01 Cl01 C301 C581 C701 CA01CC8iec91CD81 D8810881 D3610401 D701 D9Bi D801Dß0:t fJDIHDF I1 El\l1El Il E301E401 E4!l1E7B1EA01EO01F001F801 F116F51FlFlFlFCD 81 ClF1prac:push pswrarrarrarrarcaLL outhpop pswouth E60FC638FE3ADA 81 CCC6274FC3 8186ani 0fhadi.119 Hcpi "9" 1je outchad i It a " "9 "-1outeh:mov c,ajmp coE60FC9;getdig:cal,l, cimov c,acaL I, cocp i "0 ujrc getdigconv:cp i "9 " 1jrc nosubsu i 7nosub:an i 9fhret11CDCDC3;error:Lxi d,errmesscaLL printca L L cijmp startCD 01034FCD 3Ldax dinx dAbb.2.1-3;nach zeichen weiter rset

2.1 Der InterpreterPAGE 4TDL ZB0 CPIM DISK ASSEMBLER VERSION 2.21.MAIN. -ara arzmov e,aca I, cojmp print01F201F301F401F501FBB7CB4FCD 131136C3 4E44454649 .asclz "UNDEFlN\4E4544204F50 \ED OP \20434F4445\COOE0D0A00iAbb.2.1-3hnh SS :0::». B4B414C542052 .aseiz "HALT RE\455345543059 \SET Y0D0A00021E00iaKKu: . byte 0iram zeLLeiidaten definitionen100000113prg 1000hpl'gh l13hiprogramm auf 1000 bis 113ff max9011data llhidaten von 11313 bls 11fT loe leeehi.byte "G",0.byte uZ",1.byte "L u ,0.byte "G",0.byte "A",0.byte IIZ",2.byte "8",0.byte "0",8.byte "C",0.byte "JH ,0013283Di.loe IHl0 H.byte 0.byt.e 11 11.byte " HilBH112110131160111311102i tes"tprogrammizwei Bytes etnLf. eniAusgabe 2.eiGheniLade Wert; Je i teren Wert HQ eniAddiereniZeiehen iErgebnisiAusgabeiCRLFiSprung nach ai.end17

2 Realisierungsmöglichkeiten von BasicTDL Z80 CPIM DISK ASSEt'lBLER VERSION 2.21.MAIN. SYMBOL TABLE K.015A01060011010B02BFB14CBl EI818B00188109B000:03 eins erhöht, so daß HL nun auf den nächsten Befehl im Programmspeichergebietzeigt. Das Register D wird mit der höherwertigen Adresse des Datenbereiches geladen, da mit dem Parameter zusammen normalerweise ein vom Programm getrennterBereich adressiert wird. Nun wird der Vergleich mit dem Befehlsvorrat durchgeführt.Stimmt der im Register A vorhandene Befehl mit einem der abgefragten überein, sowird ein Sprung auf die dazugehörige Routine durchgeführt.LOAD: Mit dem Befehl LDAX D wirdder durch DE adressierte Wert in den Akkugeladen. Er wird dann mit STA AKKU inden Akkumulator der hypothetischen Maschine gespeichert; anschließend findetein Sprung zur Marke LOOP statt, und derBefehlszyklus wiederholt sich.STORE: Der Inhalt der SpeicherzelleAKKU wird in der Speicherzelle die durchDE adressiert ist abgelegt.ADD: Es wird der Inhalt der durch DEadressierten Speicherzelle in das RegisterA geladen und anschließend nach RegisterB gerettet. Dann wird der Inhalt der ZelleAKKU in das Register A (Akku des 8080)geladen und mit dem Befehl ADD B dieAddition ausgeführt. Das Ergebnis wirddann wieder in die Zelle AKKU zurückgespeichert. Hier ist ganz typisch das Verhal18XPAGE 8183j;)19701E4S1AC8178B16681 ClHl888188B1A48B88'Abb.2.1-3Xten des Interpreters zu sehen, daß sofortnach Erkennen des Befehls dieser ausgeführt wird und danach der nächste Befehlinterpretiert wird.JUMP: Hier wird der Inhalt des Registers D neu besetzt. Es wird der höherwertige Teil des Programmspeichergebiets inihm abgelegt. Dann wird der Inhalt vonDE mit HL vertauscht und dadurch derSprung ausgeführt.JUMPNZ: Es wird zunächst der Inhaltder Speicherzelle A

Druck: Franzis-Druck GmbH, Karlstraße 35, 8000 München 2 Printed in Germany . Imprime en Allemagne . Verlag sieht sich deshalb gezwungen, darauf hinzuweisen, daß er weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehler .

Related Documents:

Besuchen Sie uns im Internet www.franzis.de ISBN 978-3-645-65118-9 Der leichte Einstieg in die Elektrotechnik & Elektronik Bo Hanus FRANZIS FRANZIS ELEKTRONIK FRANZIS ELEKTRONIK 65118-9 U1 U4 29.12.2011 12:59 Uhr Seite 1

2.2. Grendel in Der kleine Hobbit 2.3. Die Hölle von Grendel’s Mutter 2.4. Das Motiv des unterirdischen Kampfes in Der kleine Hobbit 2.5. Der Dieb, der Becher und der Drache 2.6. Der Dieb, der Becher und der Drache in Der kleine Hobbit 2.7. Das Beowulf - Motiv in Der Herr der Ringe 2.

Hotline: 0900 /140 96 41 – Mo.- Fr. 1200 bis 1800 Uhr. 0,44 Euro/Minute aus dem deutschen Festnetz, mobil ggf. abweichend. www.franzis.de support@franzis.de Ø Null O Buchstabe www.franzis.de

FRANZIS Deutschlands ältester Technik-Verlag. 9 Inhalt Teill Der MOST Standard 1 MOST Cooperation 19 1.1 Motivation und Geschichte 19 1.2 Schnelle Standardisierung 21 1.3 Struktur und Spezifikationsarbeit 22 1.3.1 Der Steuerkreis 22 1.3.2 Der Administrator 23

Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit . Franzis Achtung! Augenschutz und LEDs: Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden verursachen!

tubes to DIN EN 10305-1 tubes to DIN EN 10220 tubes to ASME B36.10M size Reihe / series Reihe / series Reihe / series 100 bar 160 bar 250 bar 315 bar 400 bar 250 bar 400 bar schedule 250 schedule 400 ¹ ₂" 15 x 1 18 x 1,5 16 x 2 16 x 2,5 16

Reihe ISO 11200 untersucht. Im Freifeld und in mehreren Industriehallen wurde der Schalldruckpegel auf 94 Punkten einer Quadermeßfläche ermittelt. Mit den Normen der ISO 11200 Reihe wird für jeden dieser Punkte der Emissions-Schalldruckpegel und dessen Abweichung vom wahren Wert bestimmt. Dabei zeigt sich, daß mit ISO

Each 100 mL contains 900 mg of Sodium Chloride, USP (NaCl). The osmolarity is 308 mOsmol/L (calculated). It contains 154 mEq/L sodium and 154 mEq/L chloride. The MINI-BAG Plus Container is a standard diluent container with an integral drug vial adaptor. It allows for drug admixture after connection to a . single dose . powdered drug vial having a . 20 mm closure. A breakaway seal in the tube .