MCSE Forum - German Windows 2000/XP/2003/2008/Windows Vista und Windows 7 - IT Community Board
Werbung
Zurück   MCSE Forum - German Windows 2000/XP/2003/2008/Windows Vista und Windows 7 - IT Community Board > Internet, Netzwerk & Co > Coding
Seite neu laden Brauche einen Rat bzg. assembler.
Spenden

Login
Benutzername:
Kennwort:


Werbung


Statistik
Themen: 26011
Beiträge: 43222
Benutzer: 3,521
Produkte: 1
Links: 1
Wir begrüßen unseren neuesten Benutzer: darkarchon
Mit 901 Benutzern waren die meisten Benutzer gleichzeitig online (05.04.2008 um 14:21).
Neue Benutzer:
01.08.2011
- darkarchon
27.07.2011
- kirvad
26.07.2011
- Mama1970
21.06.2011
- quam2000
21.06.2011
- amandany67...


Antwort
 
LinkBack Themen-Optionen Ansicht
  (#1 (permalink)) Alt
Neuer Benutzer
 
Beiträge: 3
Registriert seit: 28.10.2004
Standard Brauche einen Rat bzg. assembler. - 28.10.2004, 03:45

So, solangsam bin ich am verzweifeln.Hab mir nen schönes asm Buch gekauft dachte mir so fängst mal an.Wo es dann von der Theorie zur Praxis Übergang viel mir echt die Kinnlade runter.Entweder is das Buch scheisse oder ich raff das einfach nicht.Es wird gar nicht drauf eingegangen warum ich welchen Register nach welchen mov.Dann habs das 16 bit Programmieren sein gelassen und bin zu 32 bit und Win32 übergegangen.Dann fängt der an mit tasm32 und dann masm32 dann sagt der benutz die addr Funktion statt offset ach dann nimm lieber invoke statt call für die win-api boar das bringt mich alles vollkommen durcheinander.

Nun würde ich mal gerne wissen wie man am besten anfangen soll kann ich 16.bit gleich sein lassen und zu 32 bit übergehen oder ist das von nöten.Was wäre besser tasm32 oder masm32?
In dem Buch stehen riesen Listings die meiner Meinung nach nicht gut erklärt sind.Habe mich auch lange nach Büchern umgeschaut die habe alle schlechte Kritik bekommen.Nun weiß ich nicht so richtig wie ich weiter machen soll.Vielleicht kann mir da jemand nen kleinen Rat geben.
Mit Zitat antworten
Sponsored Links
  (#2 (permalink)) Alt
Quoten-Depp
 
Benutzerbild von BeoWulf
 
Beiträge: 2,805
Registriert seit: 18.06.2003
Standard 28.10.2004, 19:52

irghs, hab ein wenig geduld, assambler war eins der fächer wo ich eigendlich immer nur dumm aus der wäsche geschaut hab und freundlich genickt hab , aber ich würde sagen, fang lieber ganz vorne an.


Wer Rechtschreibfehler findet, der kann se gerne behalten. Ja ich kenn Groß- und Kleinschreibung,so gehts aber einfach schneller :P
Mit Zitat antworten
  (#3 (permalink)) Alt
Administrator
 
Benutzerbild von Jochen
 
Beiträge: 4,146
Registriert seit: 18.06.2003
Ort: Essen
Standard 28.10.2004, 20:08

Ich würde vorerst mit der 16-Bit-Programmierung anfangen, denn ASM + WinAPI ist schon ziemlich schwer, wenn man die Grundlagen noch nicht verstanden hat. Das mit den Registern ist eigentlich leicht erklärt:
Jeder der vier Allzweckregister(AX, BX, CX und DX) hat eine bestimmte Aufgabe. Natürlich darfst du sie auch benutzen, um einfach Werte darin abzulegen:

AX: Spezielle Funktion bei Arithmetischen Befehlen, wie der Multiplikation & Division. Um z.B. 4000 mit dem Wert in BX zu multiplizieren, schiebst du die 4000 in AX:
Code:
mov ax, 4000
mul bx
Der mul-Befehl verwendet standartmäßig das AX-Register. Bei einer WORD-Multiplikation liegt das Ergebnis dann im Registerpaar DX:AX.

Bei einer Byte-Multiplikation(also Werte bis 2^8 ) muss der Faktor in AL liegen. Das Ergebnis liegt dann in AX.

Mit BX kann man als Index direkt auf den Speicher zugreifen, um z.B. Strings zu bearbeiten.
Code:
name db "Horst",0
mov bx, offset name       ;bx zeigt auf den Anfang von name(ne Variable)         
mov [bx],"a"              ;schreibt ein a an die Stelle, wo bx hinzeigt
inc bx                  ;wandert eine Speicherstelle weiter. So kann man
                       ; zeichenweise Strings im Speicher bearbeiten etc.
[] benutzt man, wenn auf den Wert der Speicherzelle zugegriffen werden soll, auf die der entsprechende Indexregister zeigt. Beispielsweise enthält BX nach der Anweisung
mov bx, offset name
die Adresse, an der name beginnt. Mit [bx] greift man auf den Wert zu, der an dieser Speicherzelle gespeichert ist. In diesem Fall wäre es H.

Das CX-Register benutzt man z.B. in Verbindung mit loop, um Schleifen zu realisieren:
Code:
mov cx, 10
schleife:
....
loop schleife
Der loop-Befehl verwendet dabei standartmäßig das CX Register, und vermindert dessen Wert um eins, wenn ein Schleifendurchgang erfolgt ist. Es wird solange zum Label schleife gesprungen, bis CX den Wert 0 aufweist.

Und DX wird in Verbindung mit dem AX-Register bei der Word-Multiplikation eingesetzt. Der High-Teil befindet sich dann in DX und der Low-Teil in AX


Bitte beachten, das hier Braindumps unerwünscht sieht. Sie dazu auch hier!
Mit Zitat antworten
  (#4 (permalink)) Alt
Neuer Benutzer
 
Beiträge: 16
Registriert seit: 18.12.2004
Standard 27.12.2004, 17:25

Hallo,

ich habe in den 89er.Jahren mit Z80-Assembler angefangen. Zu Beginn war das Verstehen der Funktionen der Prozessorregister und deren Funktionzusammenhang im Prozessor selbst notwendig.


Das Messbare messen, das Nichtmessbare messbar machen. Galilei
Mit Zitat antworten
  (#5 (permalink)) Alt
QuotenFrau
 
Beiträge: 728
Registriert seit: 30.03.2006
Standard 19.10.2007, 01:52

Zitat:
Original von lefg
Hallo,

ich habe in den 89er.Jahren mit Z80-Assembler angefangen. Zu Beginn war das Verstehen der Funktionen der Prozessorregister und deren Funktionzusammenhang im Prozessor selbst notwendig.
Yepp kann ich als einsteigende Assemblerin bestätigen 8)

Mikroprozessortechnik, Prozessorregister, Segmente usw.

und dann gehts weiter.... :kaffeetrinken: mit lernen und verstehen....

zum verstehen...
@jochen wenn ich es bis hier richtig verstanden hab, müsste Horst jetzt aorst heissen.
Mit Zitat antworten
  (#6 (permalink)) Alt
lustiger Kerl
 
Benutzerbild von docyounix
 
Beiträge: 218
Registriert seit: 22.05.2007
Ort: Essen
Standard 19.10.2007, 13:09

... erinnert mich so ein wenig an die Zeiten meines geliebten Sinclair ZX81 mit 16 KB !! Speichererweiterung.

Das waren noch Zeiten ... ;-)



Heute leider nur noch hierzu zu gebrauchen:

Mit Zitat antworten
  (#7 (permalink)) Alt
Administrator
 
Benutzerbild von Jochen
 
Beiträge: 4,146
Registriert seit: 18.06.2003
Ort: Essen
Standard 19.10.2007, 14:04

Ich hab damit schon ewig nix mehr gemacht, muss ich zu meiner schande gestehen.

Bin irgendwie total auf Shellprogrammierung fixiert :]


Bitte beachten, das hier Braindumps unerwünscht sieht. Sie dazu auch hier!
Mit Zitat antworten
  (#8 (permalink)) Alt
QuotenFrau
 
Beiträge: 728
Registriert seit: 30.03.2006
Standard 19.10.2007, 14:08

Oki, no Problem

werde mich da einfach mal durchbeissen.
Hab in meinem näheren Umfeld echte Assembler Cracks.
Wenn ich dann mal durch bin, kann ich hoffentlich Tipps geben.

so long
purple
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bin neu brauche Hilfe !!!! SpeNceR Windows 95 - XP | sonstige 0 04.09.2007 19:48
Brauche hilfe zu Multicast Sundancer Aufbau | Topologie | Protokolle 7 07.05.2007 20:24
Brauche dringend Hilfe Nomis Windows Vista 6 05.03.2007 14:17
Brauche dringend Hilfe bei einem Bild für Gericht De_Admin Offtopic 13 08.12.2005 21:31
brauche dringend hilfe Kampfmade Windows Server 1 03.11.2005 17:57




Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.5.0 RC2
Powered by vBCMS® 2.7.1 ©2002 - 2012 vbdesigns.de
vBulletin Skin developed by: vBStyles.com


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122