Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 19.12.2007, 06:52 Titel: FB zu ASM übersetzen |
|
|
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 |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.12.2007, 19:11 Titel: |
|
|
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
'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 |
|
|
Bimi
Anmeldungsdatum: 03.12.2007 Beiträge: 66
|
Verfasst am: 19.12.2007, 19:24 Titel: |
|
|
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
'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...
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 |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.12.2007, 19:44 Titel: |
|
|
Danke Bimi, mehr wollte ich auch gar nicht erreichen
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 |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 20.12.2007, 11:34 Titel: |
|
|
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 |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.12.2007, 11:50 Titel: |
|
|
Perfekt ... Vielen dank @all!
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
Bimi
Anmeldungsdatum: 03.12.2007 Beiträge: 66
|
Verfasst am: 20.12.2007, 13:03 Titel: |
|
|
...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 |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.12.2007, 13:13 Titel: |
|
|
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.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
Bimi
Anmeldungsdatum: 03.12.2007 Beiträge: 66
|
Verfasst am: 20.12.2007, 13:48 Titel: |
|
|
ThePuppetMaster hat Folgendes geschrieben: |
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.
MfG
TPM |
..und wo ist das Problem das codefragment einfach compilierbar zu vervollständigen.... _________________ Rechtbehelf:
Rechschreibverfehlungen, Vergehen an der Deutschen Sprache sowie Stabwechselverbuchselungen unterliegen dem Urheberrecht, sind voll beabsichtigt und fördern das aufmerksame Lesen. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 20.12.2007, 15:09 Titel: |
|
|
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 ,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 |
|
|
Bimi
Anmeldungsdatum: 03.12.2007 Beiträge: 66
|
Verfasst am: 20.12.2007, 17:17 Titel: |
|
|
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 ,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 |
|
|
|