[Tutorial] Assembler in PB

Hier kannst du häufig gestellte Fragen/Antworten und Tutorials lesen und schreiben.
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

[Tutorial] Assembler in PB

Beitrag von Helle »

Habe das Sch...wetter der letzten Woche mal genutzt, ein ASM-Tutorial anzufangen. Da jetzt doch wieder Biergarten-Wetter ist, ruht es erstmal.
Stelle es jedoch hier http://www.mdcc-fun.de/k.helbing/ASM-Tu ... _Neu_2.zip für Interessierte vorab zur Verfügung.

Gruss
Helle

Edit: URL angepasst.
Zuletzt geändert von Helle am 20.07.2011 07:37, insgesamt 1-mal geändert.
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

Klasse!!!
Ein Assembler Tutorial wie ich es mir seit langem wünsche. Vor allem wie du es aufgebaut hast. Vielen Dank!

Viel Spaß im Biergarten!
Hier gibts die OOP Option für PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Super, danke Helle :)
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

@Helle: die Version 4.30 versteht den '#Long' nicht (mehr). :(
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Beitrag von Kevin »

das ist jetzt #PB_Long steht aber in der hilfe zu StrU()
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: [Tutorial] Assembler in PB

Beitrag von ullmann »

@Helle. Danke für das Tutorial.

Kann es sein, dass hier ein Fehler steckt? (Zeile 458ff):

Code: Alles auswählen

;--------
;!@@:                    ;anonymes Label1
;irgendwas ausführen
;!jmp @f                 ;springt vorwärts zum anonymen Label2
;irgendwas ausführen
;!jmp @b                 ;springt zurück zum anonymen Label1
;!@@:                    ;anonymes Label2
;!@@:                    ;anonymes Label3, ist für den obigen Code nicht erreichbar! 
;--------
Aus meiner Sicht wird mit jmp @f der Befehl jmp @b übersprungen, der Sprung geht bis zum anonymen Label 2 , jmp @b wird also nicht ausgeführt. Nach dem anonymen Label 2 erreicht der Prozessor das anonyme Label 3. Damit wäre der Kommentar "... ist für obigen Code nicht erreichbar!" falsch.
Benutzeravatar
Falko
Admin
Beiträge: 3526
Registriert: 29.08.2004 11:27
Computerausstattung: PC: Asrock-Mainborad Z77 Pro4; Intel HD-Grafic Onboard
16GB-DDR3, ICore5; 3TB-SATA2; Intel ICore5 @ 3.4GHz (Win10 Pro. 64-Bit), MacBook(Retina-12", early 2016) macOS Sierra, Version 10.12.5
Acer Aspire E15 (Win10 Home X64). Purebasic 5.60, GFA-Basic, Emergence Basic und Powerbasic9.05-Windows, NS-Basic all Versions
Kontaktdaten:

Re: [Tutorial] Assembler in PB

Beitrag von Falko »

Klasse, kann ich gut gebrauchen.
Danke @Helle

[Edit]
Ich habe erst jetzt gesehen wie alt der Thread ist, und mich vorher gewundert, warum dieses Tut nicht im neuen
PB 4.6B3 läuft. :lol:

Da müssen einige Änderungen gemacht werden, weil das alte PB bei einigen PB-Konstanten als auch bei der Str()-Funktion
geändert wurden. Ich habe mir den Code jetzt komplett angepasst, ohne den Inhalt zu ändern. Falls gewünscht, würde ich den
ans Ende eintragen, oder Helle macht's vielleicht selbst? 8)

[/Edit]
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: [Tutorial] Assembler in PB

Beitrag von ullmann »

Und noch ein kleiner Schreibfehler (Zeilen 1503, 1504):

Code: Alles auswählen

; Zum Tauschen zweier Operanden gibt es XCHG (Exchange):
; Syntax: BSWAP Operand1, Operand2. Beeinflusste Flags: Keine
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Re: [Tutorial] Assembler in PB

Beitrag von Helle »

Wow, dieses Tut hatte ich völlig aus den Augen verloren. Ich werde es mal überarbeiten/aktualisieren und hier dann eine entsprechende Meldung abliefern.
Danke für das Feedback :D !
Gruß
Helle
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: [Tutorial] Assembler in PB

Beitrag von ullmann »

Vielleicht könntest du auch die Multiplikation zweier großer Zahlen (Zeilen 2114 - 2219) ausführlicher
kommentieren? Ich habe dreimal relativ zügig drüber geschaut - und es nicht verstanden. Vielleicht
würde ich es verstehen, wenn ich langsam und detailliert versuchen würde, jeden Schritt
nachzuvollziehen - aber die Zeit nahm ich mir noch nicht.
Antworten