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:

FB zu ASM übersetzen

 
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
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 19.12.2007, 05:52    Titel: FB zu ASM übersetzen Antworten mit Zitat

Hallöle .. ich arbeite gerade ein "etwas", und benötige ein wenig hilfe. Da ich schon ewig nicht mehr in ASM geschriebenhabe, und es auch nicht mehr wirklich behersche, wäre ich euch dankbar, wenn mir jemand dieses Codefragment übersetzen könnte.

Code:
'Ist X gleich 1 dann
 If  X =      1 Then

'   Gebe aus „ja [1]“
    Print    "ja [1]"


Bitte ohne irgend welche Deklarationen, oder speicherreservierungen im ASM code. Ausschliesslich dieses Codefragment, auch wenn es nicht fuktionieren wird. Es geht hier um einen Programmiersprachenvergleich.

Vielen Dank


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 19.12.2007, 18:11    Titel: Antworten mit Zitat

Hmm, ich bin nicht sehr firm in ASM also reicht es nur zu etwas Pseudo-Asm:
Code:
Xor AX, AX 'Akku löschen
Mov AX, Vergleichswert 'in den Akku laden
Cmp 1 'durch den Vergleich werden die Flags gesetzt
JZ Ja 'JZ ist mein Lieblingsbefehl, weiß aber nicht, obs den noch gibt happy
'Nein ausgeben
Ja:
'Ja ausgeben
Die Strings mußt du halt selber reinbasteln..
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
Bimi



Anmeldungsdatum: 03.12.2007
Beiträge: 66

BeitragVerfasst am: 19.12.2007, 18:24    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
Hmm, ich bin nicht sehr firm in ASM also reicht es nur zu etwas Pseudo-Asm:
Code:
Xor AX, AX 'Akku löschen
Mov AX, Vergleichswert 'in den Akku laden
Cmp 1 'durch den Vergleich werden die Flags gesetzt
JZ Ja 'JZ ist mein Lieblingsbefehl, weiß aber nicht, obs den noch gibt happy
'Nein ausgeben
Ja:
'Ja ausgeben
Die Strings mußt du halt selber reinbasteln..
Gruß
ytwinky


Wenn du den Akku im zweiten Befehl überschreibst, kann dur dir das löschen im ersten schenken...zwinkern

Code:

  mov eax,[X]   ' X laden
  shr eax,1     ' wenn x=1 ist ergibt ein shr 0 -> Zero Flag wird gesetzt
  jnz weiter    ' wenn zeroflag nicht gesetzt ist, war X auch nicht 1

'ja ausgeben

weiter:
'weitermachen

_________________
Rechtbehelf:

Rechschreibverfehlungen, Vergehen an der Deutschen Sprache sowie Stabwechselverbuchselungen unterliegen dem Urheberrecht, sind voll beabsichtigt und fördern das aufmerksame Lesen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 19.12.2007, 18:44    Titel: Antworten mit Zitat

Danke Bimi, mehr wollte ich auch gar nicht erreichen zwinkern
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: 1874
Wohnort: D59192

BeitragVerfasst am: 20.12.2007, 10:34    Titel: Antworten mit Zitat

der FBC macht daraus ~ dies:
Code:
cmp dword ptr [X], 1
jne L_0001
push offset L_Text
call PrintString
L_0001:

Wie gewünscht ohne Deklarationen und Speicherreservierungen.
_________________
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
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 20.12.2007, 10:50    Titel: Antworten mit Zitat

Perfekt ... Vielen dank @all!


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bimi



Anmeldungsdatum: 03.12.2007
Beiträge: 66

BeitragVerfasst am: 20.12.2007, 12:03    Titel: Antworten mit Zitat

...ne Ergänzung noch:

Das man FB durhc die Option -r daran hindern kann die .asm Datei nach der Assemblierung zu löschen, dürfte bekannt sein.

Den kompletten Code (.exe) oder eine lib zu diassemblen geht mit objdump aus dem MinGW Packet.

Hier hat mal jemand die Frage gestellt wie effektiv PSET in BASIC ist. Ich habe es mir mal angeschaut, die Datei wieder geschlossen und mir vorgenommen auf PSET bis auf weiteres zu verzichten....
_________________
Rechtbehelf:

Rechschreibverfehlungen, Vergehen an der Deutschen Sprache sowie Stabwechselverbuchselungen unterliegen dem Urheberrecht, sind voll beabsichtigt und fördern das aufmerksame Lesen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 20.12.2007, 12:13    Titel: Antworten mit Zitat

grinsen

jo .. ich weis, das dies geht, jedoch kann ich dieses codefragment nicht kompilieren, da er ja nicht vollständig ist.

Aber, das was ich benötige hab ich ja jetzt. zwinkern


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bimi



Anmeldungsdatum: 03.12.2007
Beiträge: 66

BeitragVerfasst am: 20.12.2007, 12:48    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:
grinsen

jo .. ich weis, das dies geht, jedoch kann ich dieses codefragment nicht kompilieren, da er ja nicht vollständig ist.

Aber, das was ich benötige hab ich ja jetzt. zwinkern


MfG
TPM



..und wo ist das Problem das codefragment einfach compilierbar zu vervollständigen....zwinkern
_________________
Rechtbehelf:

Rechschreibverfehlungen, Vergehen an der Deutschen Sprache sowie Stabwechselverbuchselungen unterliegen dem Urheberrecht, sind voll beabsichtigt und fördern das aufmerksame Lesen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 20.12.2007, 14:09    Titel: Antworten mit Zitat

Bimi hat Folgendes geschrieben:
Hier hat mal jemand die Frage gestellt wie effektiv PSET in BASIC ist. Ich habe es mir mal angeschaut, die Datei wieder geschlossen und mir vorgenommen auf PSET bis auf weiteres zu verzichten....

Das könnte ich nicht so generell sagen und sollte differenzierter betrachtet werden.
Nur um einen Farbpunkt zu setzen ist PSET ideal. Weder die Adresse des Pixels aus x,y und Screenptr muss ich berechnen noch muss ich befürchten falsche Speicherbereiche zu überschreiben.
Möchte man mehre Farbpunkte setzen, bieten sich die anderen Grafikbefehle an LINE, CIRCLE, PAINT ...
Wesentlich langsamer ist das nicht.
Natürlich sind diese Grafikbefehle nicht dazu gedacht Animationen (Video) auf den Screen zu bringen. So etwas mit PSET zu versuchen ist schon durchgeknallt ,da sind dann spezielle Routinen gefragt.
_________________
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
Bimi



Anmeldungsdatum: 03.12.2007
Beiträge: 66

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

volta hat Folgendes geschrieben:
Bimi hat Folgendes geschrieben:
Hier hat mal jemand die Frage gestellt wie effektiv PSET in BASIC ist. Ich habe es mir mal angeschaut, die Datei wieder geschlossen und mir vorgenommen auf PSET bis auf weiteres zu verzichten....

Das könnte ich nicht so generell sagen und sollte differenzierter betrachtet werden.
Nur um einen Farbpunkt zu setzen ist PSET ideal. Weder die Adresse des Pixels aus x,y und Screenptr muss ich berechnen noch muss ich befürchten falsche Speicherbereiche zu überschreiben.
Möchte man mehre Farbpunkte setzen, bieten sich die anderen Grafikbefehle an LINE, CIRCLE, PAINT ...
Wesentlich langsamer ist das nicht.
Natürlich sind diese Grafikbefehle nicht dazu gedacht Animationen (Video) auf den Screen zu bringen. So etwas mit PSET zu versuchen ist schon durchgeknallt ,da sind dann spezielle Routinen gefragt.


Das stimmt schon was du sagst. Jedoch finde ich das auch unter Berücksichtigung der Parameterprüfung, des Bildschirmmodus und der Adresskalkulation geht das ganze ein wenige kompakter...
_________________
Rechtbehelf:

Rechschreibverfehlungen, Vergehen an der Deutschen Sprache sowie Stabwechselverbuchselungen unterliegen dem Urheberrecht, sind voll beabsichtigt und fördern das aufmerksame Lesen.
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