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:

imagecreate, asm, put usw.
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 20.02.2006, 00:27    Titel: Antworten mit Zitat

volta hat Folgendes geschrieben:
Hi Mecki,
ytwinky hat Recht, auf http://www.freebasic.de/ ist die Online- und Download-Version noch nicht auf dem neusten Stand.
Upsasa tatsächlich. Auf meinem Apache läuft die Page schon mit der neuen Version, hab vergessen hochzuladen *g* danke, jetzt sollts stimmen lächeln
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.02.2006, 00:35    Titel: Antworten mit Zitat

Hi Mecki,
schau doch mal auf freebasic.de selbst in der Befehlsreferenz nach..
Timer gibt immernoch die seit Mitternacht vergangenen Sekunden zurück lachen
..aber das Chm-File zum Download ist größer geworden(317k)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 20.02.2006, 01:21    Titel: Antworten mit Zitat

hnmm, zumindest ist es jetzt definitiv die aktuellste version die ich von dusky joe bekommen habe - da kann ich jetz eigentlich auch nix machen...
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.02.2006, 12:09    Titel: Antworten mit Zitat

@Mecki:
Jedenfalls ist die Chm-Datei auf dem neuesten Stand, das ist okay.
@psygate:
[Edit]
1: war gar nicht @psygate
2: ich war im falschen Thread..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.02.2006, 18:20    Titel: Antworten mit Zitat

Zitat:
geht das auch mit komma zahlen?

ich seh direkt keine möglichkeit, hab aber eine Idee:

Freebasic soll den Code mit -r kompilieren, weil dann löscht er die ASM Datei nicht:
Code:
defsng a-c
input a
input b
c=a*b
? c


Hier der passende Code auszug:
Code:
...
fld dword ptr [_Bf]
fmul dword ptr [_Af]
fstp dword ptr [_Cf]
push 1
push dword ptr
...

neutral
So einfach ist es wohl doch nicht.
(fmul seint ein Macro zusein, das ich aber leider nicht weiter verfolgen kann.
Eventuell hilft der Freebasic Quellcode)
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eastler_dart



Anmeldungsdatum: 25.09.2005
Beiträge: 177
Wohnort: Baden-Würtemberg + Sachsen

BeitragVerfasst am: 20.02.2006, 21:04    Titel: Antworten mit Zitat

da will ich dann doch einfach mal die Deffinition des MUL-Befehls hierher schreiben, = für reine Assembler-Programmierung auf x86-er Basis

MUL Quelle
(MULtiply unsigned - Vorzeichenlose Multiplikation)

veränderte Flags: OF SF ZF AF PF und CF
(dürfte für Freebasic unrelevant sein?)

MUL multipliziert den Quelloperanden mit dem AL-Register (Byte-Multiplikation) oder mit dem AX-Register bei einer Wort-Multiplikation.

Code:

Multiplikand   *   Multiplikator           = Ergebnis
AL (Byte)          Quelloperand(Byte)      AX(Wort)
AX(Wort)           Quelloperand(Wort)      DX:AX(Doppelwort)


Beispiele:
Code:

;Byte-Multiplikation
mov al,100    ;AL=100
mov bh,20     ;BH=20
mul bh        ;BH=Byte ==> AX=AL*BH

;Byte- mit Wort-Multiplikation
xor ah,ah         ;AH=0
mov al,Summe      ;AL=Summe
mov bx,500        ; BX=500
mul bx            ; BX=Wort ==> DX:AX = AX * BX
                  ; DX=höherwertiger Teil des Ergebnisses
                  ; AX=niederwertiger Teil des Ergebnisses

;Wort-Multiplikation
mov ax,300        ;AX=300
mul ax            ;AX=Wort ===> DX:AX=AX*AX
                  ; DX=höherwertiger Teil des Ergebnisses
                  ; AX=niederwertiger Teil des Ergebnisses


Zeitbedarf: 75 Cpu-Takte bei MUL Reg (8-bit)
125 Cpu-Takte bei MUL Reg (16-bit)

Wie das nun ins FreeBasic zu übertragen ist, hab ich noch nicht probiert traurig

hoffe es hilft

Eastler
_________________
Kaum macht mans richtig, schon geht's
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 21.02.2006, 18:20    Titel: Antworten mit Zitat

Zitat:
veränderte Flags: OF SF ZF AF PF und CF
(dürfte für Freebasic unrelevant sein?)

Freebasic ermöglicht das einbinden von echten ASM Code in den Basic Code.
Wo dem her haben die Flags ihren Existenz Grund und sind sicher nicht "unrelevent". Sie sing genau so "wichtig" wie in reinem ASM.

Hier zum FB Code der Multiplikation:
Code:
dim a as byte
dim b as byte
dim c as byte
do
    input a
    input b
    asm
        mov al,[a]
        mov bh,[b]
        mul bh
        mov [c], AX
    end asm
    ? c
loop

Anmerkung:
Dieser Code erreicht schon fast die Wahnsinns Grenze, Freebasic kann eine Multiplikation recht gut in Asembler umsetzen und PRINT und INPUT brauchen viel mehr Rechenzeit als die Multiplikation.

Allgemein staune ich jetzt, über die super ASM einbindung in FB, ich hab's mir schwere vorgestellt. zwinkern
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 21.02.2006, 22:13    Titel: Antworten mit Zitat

Frage am rande, bin ich verrückt oder haut da echt was nicht hin?

mir gibt das programm bei 128*128 eine 0 zurück?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 21.02.2006, 23:27    Titel: Antworten mit Zitat

Hallo.

Hast du dir mal die dimensonierungen angeguckt?
Die datentypen sind BYTE, gehen also nur von -128 bis 127. Also kann man 128 gar nicht darin speichern, erst recht nicht 128*128 zwinkern

Hoffe, das ich mich nicht irre.

Michael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.02.2006, 11:56    Titel: Antworten mit Zitat

Hi,
Multiplikation von Integerzahlen in Asm:
Code:
Dim As Integer A,B
Dim As LongInt C
    Input A
    Input B
    asm
      mov eax, [A]   'lade A nach eax
      mov ebx, [B]   'lade B nach ebx
      mul ebx        ' eax * ebx
      mov [C], eax   'Lo-Teilergebnis
      mov [C+4], edx 'Hi-Teilergebnis
    end asm
    ? C
sleep

Das 'dword ptr' kann hier entfallen, da die Registerbezeichnungen auf eine 32Bit (dword) Aktion deutet.
Für die Multiplikation in der FPU gibt es einen eigenen Befehlssatz (erkennbar am f....).
Code:
Dim As Single A,B,C

    Input A
    Input B
    asm
      fld dword ptr [A]   'lade A in die FPU
      fmul dword ptr [B]  'mul mit B
      fstp dword ptr [C]  'speicher Ergebnis in C
    end asm
    ? c
sleep

Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2006, 16:17    Titel: Antworten mit Zitat

Klasse, das erspart mir die Suche.
volta hat Folgendes geschrieben:
..Für die Multiplikation in der FPU gibt es einen eigenen Befehlssatz (erkennbar am f....).
Code:
Dim As Single A,B,C

    Input A
    Input B
    asm
      fld dword ptr [A]   'lade A in die FPU
      fmul dword ptr [B]  'mul mit B
      fstp dword ptr [C]  'speicher Ergebnis in C
    end asm
    ? c
sleep
Gilt das auch für
Code:
Dim As Double A, B, C
?
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.02.2006, 16:34    Titel: Antworten mit Zitat

jein,
double ist ein 64Bit Datentyp also 'qword ptr' verwenden:
Code:
Dim As Double A,B,C

    Input A
    Input B
    asm
      fld  qword ptr [A]
      fmul qword ptr [B]
      fstp qword ptr [C]
    end asm
    ? C
sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2006, 16:39    Titel: Antworten mit Zitat

Ooops, das hätte schief gehen können..
Danke für die Antwort
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 22.02.2006, 17:29    Titel: Antworten mit Zitat

Also... mein kompliment an alle. Ihr habt mir sehr geholfen, nur noch eins:

Wie kann ich kommazahlen damit multiplizieren?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.02.2006, 19:54    Titel: Antworten mit Zitat

volta hat Folgendes geschrieben:
Code:
Dim As Single A,B,C

    Input A
    Input B
    asm
      fld dword ptr [A]   'lade A in die FPU
      fmul dword ptr [B]  'mul mit B
      fstp dword ptr [C]  'speicher Ergebnis in C
    end asm
    ? c
sleep

Siehe weiter oben.
Probiers einfach mal aus.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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