![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Stammuser
![]() Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
|
Hallo,
kennt jemand von euch ein gutes x86-Assembler-Tutorial? Ich programmiere nämlich auf kleinen 8-Bit-Mikrocontrollern schon mit ASM (mit Erfolg) und wollte es auch mal auf 'nem PC versuchen. Da auf einem PC natürlich alles anders ist als auf einem kleinen 8-Bit-Käfer, habe ich auch noch ein paar weitere Fragen: 1. Wenn ich mein Programm durch den Assembler jage, bekomme ich dann nur den nackten Maschinencode von meinem Assemblercode? 2. Welchen Assembler könnt ihr mir empfehlen? 3. Wenn ich das ganze dann im XProfan-Interpreter aufrufen will, kann ich das so machen?: Code:
Declare ASMCode# Dim ASMCode#, irgendwas 'Array befüllen... @Call(Addr(ASMCode#)) Gruß Jonathan
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b Das Schönste am Programmieren ist immernoch die Fehlersuche Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
|
|
|
|
|
|
|
#2 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Wenn du Assembler in XProfan verwenden willst, empfehle ich dir dringend meinen Inline-Assembler XPIA. Findest du auf meiner Webseite.
Zitat:
Du kannst den Assembler aber veranlassen die erstellten, nativen Bytes anzuzeigen/zu speichern Zu 2.: Unbedingt JWasm, zusammen mit dem PoLinker. Der ist MASM32 kompatibel, kann aber auch 64-Bit Assembler produzieren. Zu 3.: Ja, das geht mit Call. Wenn du allerdings API oder Variablen verwenden willst, wird es ziemlich kompliziert. Ohne ist problemlos möglich. Mit XPIA hättest du den Vorteil, dass du deinen Assemblercode direkt in den XProfancode integrieren könntest, und trotzdem die komplette JWasm-Syntax nutzen kannst, inclusive Makros und API. Ausserdem erstellt er eine Dll aus dem Assemblercode, die du mit allen Sprachen verwenden kannst. Ein Beispielcode: Code:
$MAKE CLE
Declare x&,y&,z&,dauer&
Cls
x&=37
y&=999999
dauer&=&GetTickCount
AsmStart Funktionsname1(x&,y&)
mov eax,0
mov ebx,para1
mov ecx,para2 ;ecx als Schleifen-Zähler einsetzen
.while ecx!=0 ;Schleife so lange wiederholen, bis ecx gleich Null ist
add eax,ebx
dec ecx ;Wert von ecx um eins subtrahieren
.endw
;Diese Assemblerroutine macht das gleiche wie:
;
;x&=0
;Whileloop 999999
; x&=x&+37
;EndWhile
;
;Eine Schleife, die eine Millionen mal einen Wert addiert
;Dauer: XProfan = 18 Sekunden / XPIA = 1 Millisekunde
AsmEnd (z&)
dauer&=&GetTickCount-dauer&
Print "Ich addierte 999999 mal 37 = "+Str$(z&)+", berechnet in "+Str$(dauer&)+" ms."
WaitInput
End
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
der Crashkurs ist gut
.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#4 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.079
|
Und danach (aber wirklich erst viel viel später!) wird das hier interessant:
Iczelions Win32Asm Tutorials (36 Beiträge) - auf Deutsch übersetzt von Joachim Rhode. Gruss P.S.: Den neuesten JWasm gibts hier. Leider etwas veraltet ist dagegen das nachstehende Link zum Thema. In den Artikeln wird aber auf die Unterschiede, Stärken und Schwächen der einzelnen Freeware-Assembler besonders eingegangen.
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (25.11.2011 um 16:55 Uhr) |
|
|
|
|
|
#5 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Zitat:
Flat Assembler ? Wikipedia (der kann z.B. auch Linux oder sich selbst compilieren)
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Er kann Linux kompilieren?
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Oh, er kann Elf-Binaries für Linux oder Unix erstellen, meinte ich
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#8 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Kann JWasm doch auch:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#9 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Hab ja auch nichts gegenteiliges Behauptet, dafür kenne ich den zu wenig.
Ich weiß, ist Dein LieblingsAssembler, weil er die steinalte Syntax von MASM unterstützt wesentlich bekannter, deshalb mein Hinweis. Entscheiden muss er wohl selber.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#10 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Die tun sich alle (ausser vieleicht der antike NASM) von der Syntax her nicht viel - ist wirklich minimal. Masm32/JWasm hat aber High-Level-Syntax und ist für Umsteiger daher optimal geeignet. Und es gibt dafür sehr aktive Foren zum Austauschen, wenn auch nur englisch-sprachig. Die deutschen Foren taugen nicht viel.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#11 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
High-Level-Syntax kann FASM auch, das was Du vielleicht vermißt, dafür
gibt es Macros, sollten im Ergebnis sogar effektiver sein, als eingebaute Funktionen. Aber im Endeffekt ist es ziemlich egal, die nehmen sich nicht viel und ASM ist für heutige PCs sowieso kein Werkzeug der ersten Wahl mehr. Außer zur PIC-Programmierung sollte ASM nutzlos sein
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#12 (Direktlink) |
|
Stammuser
![]() Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
|
@Frabbing: Danke!!! Genau sowas habe ich gesucht
@Alle: Ich bevorzuge die Syntax von MASM - die bin ich schon von meinen 8-Bit-Käfern gewohnt Gruß Jonathan
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b Das Schönste am Programmieren ist immernoch die Fehlersuche Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
|
|
|
|
|
|
#13 (Direktlink) |
|
Stammuser
![]() Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
|
Ach, ein PIC-ler
Ich benutze ja die AVRs von ATMEL. Gruß Jonathan
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b Das Schönste am Programmieren ist immernoch die Fehlersuche Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
Geändert von Jonathan (25.11.2011 um 21:44 Uhr) |
|
|
|
|
|
#14 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
MASM32 kann natürlich ebenfalls Makros. Die Wahl des passenden Assemblers ist wohl reine Geschmackssache.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#15 (Direktlink) |
|
Stammuser
![]() Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
|
So...
Das hier müsste doch eigentlich die Byte-Folge 0-1-2-3-4-5-6-7-8-9 in "MeinArray" schreiben, oder? Kann da mal jemand drüberschauen? Code:
.code
PUSHF
PUSH eax
PUSH ebx
PUSH ecx
LEA eax, MeinArray
MOV ebx, eax
Schleife:
MOV ecx, eax
SUB ecx, ebx
MOV [eax], cl
INC eax
CMP ecx, 10
JB Schleife
POP ecx
POP ebx
POP eax
POPF
RET
.data
MeinArray db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Gruß Jonathan
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b Das Schönste am Programmieren ist immernoch die Fehlersuche Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
|
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Assembler | Destruction | Sonstige Programmiersprachen | 2 | 29.10.2007 22:43 |
| Gutes C++ tutorial | 1989moni1989 | C/C++, Visual C++, Visual C++.NET | 1 | 08.04.2007 10:03 |
| Assembler ISR | Don_Pazo | Sonstige Programmiersprachen | 1 | 04.02.2007 19:59 |
| Will php lernen, weiß jemand ein sehr gutes tutorial? | Dönerman | PHP/MySQL | 3 | 28.05.2005 15:16 |
| Suche gutes C/C++ Tutorial | Schwabenpfeil! | C/C++, Visual C++, Visual C++.NET | 5 | 20.02.2005 20:14 |