Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Assembler in QLB/LIB compilern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 22.01.2005, 19:23    Titel: Assembler in QLB/LIB compilern Antworten mit Zitat

Hi!

Ich hab vor kurzem mit SVGA angefangen und hab in QB inzwischen ein paar ganz brauchbare Subs geschrieben, die Drawing Primitives eben.
Aber: Ihr werdet es euch denken können, die QB-Version ist zum gähnen langsam.
Naja, nicht umsonst sind die meisten guten LIBs in Assembler geschrieben. Das wollte ich jetzt auch versuchen. Aber es hat nicht geklappt. Die OBJ-Datei wird noch ganz normal erstellt (auch nicht immer, meistens liegt irgendwo noch ein Fehler...).
Wenn ich dann aber LIB und LINK einsetzen will, wird der Vorgang entweder mit einer Fehlermeldung abgebrochen, oder zumindest taucht eine Warung auf, dass ein Fehler aufgetreten ist. Und QB weigert sich dann, die QLB zu laden, weil sie eben fehlerhaft ist.
Ich verwende den Turbo Assembler Version 4.1 (TASM), weil mir der von verschiedenen Seiten empfohlen wurde.

Habe ich vllt einfach nur einen BATCH-Command vergessen, oder wo liegt der Fehler?

Danke für euere Hilfe!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.01.2005, 19:46    Titel: Antworten mit Zitat

QLB -> Fertige Library.

Link verknüpft nur Lib mit Lib, nicht QLB, oder?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 23.01.2005, 18:38    Titel: Antworten mit Zitat

Naja, mit LIB bekommt man eben LIBs und LINK kann EXEs und QLBs erstellen.
Hab inzwischen (dank der Monster FAQ) selber rausgefunden, was ich falsch gemacht hab. Vor allem lags daran, dass ich nie angegeben hab, mit welcher LIB LINK arbeiten soll, und so is jedes mal so a... unvollständige QLB rausgekommen. Mit der konnte QB natürlich nix anfangen.


Aber jetzt steh ich vor dem nächsten Problemen.
Ich hab mir jetzt Eine ASM erstellt, die zwar Modiwechsel möglich macht, die ASM-Version von SvgaPset macht mir noch probleme.
Genauer, der DIV-Befehl.
Der Code sieht ungefähr so aus:
Code:

...

;ofs ist das Offset.
;Es entsteht durch:
;ofs = y * Breite + x
;und kann über 64k liegen.
;Deswegen wird in grn die Bank bestimmt.
;das 64k-fache von grn wird dann von ofs abgezogen, so dass
;es das Offset auf der Bank angibt.

MOV grn, ofs
DIV grn, 0FFFFh
MUL grn, 0FFFFh
SUB ofs, grn
DIV grn, 0FFFFh

...

Beim assemblern kommt dann immer die Fehlermeldung "extra characters on line"
Außerdem stört mich en bisschen, dass ich zuerst dividieren, dann multiplizieren, und dann wieder dividieren muss. Gibt es vllt so etwas wie den QB-Befehl MOD auch in ASM?

Danke für euere Hilfe!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 14.02.2005, 22:14    Titel: Antworten mit Zitat

Hallo!

Ein besonderer Vorschlag meinerseits:
Man kann Bibliotheken auch komplett in Assembler mit TASM (Turbo-Assembler von Borland) schreiben. Und dann wird das einfach als Bibliothek gelinkt, und fertig zwinkern

MfG das Spangengesicht lächeln
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 14.02.2005, 22:16    Titel: Antworten mit Zitat

Hallo nocheinmal lächeln

extra characters on line - Extra Zeichen auf der Zeile -> ich denke, dass du da zuviel hingeschrieben hast zwinkern
Und ich glaube sher, dass es einen MOD-Befehl unter Assembler nur dann gibt, wenn man ihn selber schreibt traurig

MfG das Spangengesicht zwinkern
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 15.02.2005, 17:30    Titel: Antworten mit Zitat

Tja, inzwischen hab ich das ganze einigermaßen hinbekommen => die SvgaPset-Sub is online *g*

Zu ner Bibliothek wollt ichs ja sowiso linken, steht ja im thread! Oder hast du mit Bib ne DLL gemeint?
Dann wüsst ich aber nicht, wie die einzbinden wäre... naja egal.

Mein Fehler war, dass ich beim DIV-Befehl geacht hab, dass der mit jedem Register funzt. geht aber nur mitm ax, entsprechend braucht er auch nur einen parameter.

und das mit dem mod-befehl: erledigt div auch:

div mit 16-bit-werten:
MOV AX, Wert1
MOV BX, Wert2
DIV BX
=> AX = Quotient (in QB wäre das so was wie INT(AX/BX) bzw AX\BX)
=> DX = Rest.

Bei 8-bit is es ähnlich, nur dass dann AH und AL statt AX und DX benutzt werden.
Trotzdem danke!

(Anmerkung: ich hab das projekt inzwischen stillgelegt. freeBASIC is besser!)
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Quark48



Anmeldungsdatum: 16.10.2004
Beiträge: 559
Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern

BeitragVerfasst am: 15.02.2005, 17:32    Titel: Antworten mit Zitat

Hallo!

Also die MUL und DIV-Befehle funktionieren nur mit 16-Bit-Registern, also mit AX, BX, CX und DX...

MfG Quark48 - nur echt mit fester Zahnspange happy
_________________
Grüßle, Stefan lächeln
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht! happy
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 15.02.2005, 17:41    Titel: Antworten mit Zitat

MUL und DIV gehen nur mit 16bit-registern, die werte können aber auch 8-bit sein.
hab mir eine asm-referenz runtergeladen, und ausprobiert.
naja egal *g*
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz