Forum: PC-Programmierung Assembler programmieren


von Viktor (Gast)


Lesenswert?

Hallo Leute!

Da wir zur Zeit in der Schule Assembler gelehrt bekommen und ich zum 
Verständnis das Ganze nicht nur in der Theorie sondern auch in der 
Praxis ausprobieren möchte, suche ich jetzt schon seit Tagen nach einem 
Programm, mit dem man Assembler "programmieren" kann.

Ich möchte quasi in Register Werte schreiben, dabei aber nicht Gefahr 
laufen, mein System zum Absturz zu bringen.

Kennt ihr ein Programm, mit dem man komfortabel Assembler schreiben 
kann?




Vielen Dank!

von Markus bücker (Gast)


Lesenswert?

Hallo,

ich habe seinerzeit den FASM benutzt. Suche einfach unter Google.


Gruß

Markus Bücker

von B. G. (smarti)


Lesenswert?

Nun ja,

dir ist schon bekannt, dass Assembler eine Hardware nahe 
Programmiersprache ist? Also welche Zielhardware??? x86, AVR, PIC, ARM, 
...

Also für
AVR -> AVRStudio
x86 -> emu8086
Pic -> mplab

LG Smarti

von Michael (Gast)


Lesenswert?

Wir haben in der Uni immer SPIM für sowas benutzt. Das ist ein MIPS 
simulator dem man einfach ein assembler programm geben kann. Ich fands 
fürs verständnis damals immer recht gut.

http://pages.cs.wisc.edu/~larus/spim.html

Kannst es ja mal anschauen, da sollte es auch tutorials von diversen 
unis dafür geben.

Gruß,
Michael

von (prx) A. K. (prx)


Lesenswert?

Viktor schrieb:

> Ich möchte quasi in Register Werte schreiben, dabei aber nicht Gefahr
> laufen, mein System zum Absturz zu bringen.

Es dürfte dir schwer fallen, als Anfänger auf einem heutigen PC mit 
einem normalen Assembler-Programm das System zum Absturz zu bringen.

Was du problemlos zum Absturz bringen kannst ist das Programm selbst. 
Aber an die Daten und I/O-Register, die das System zerlegen, kommst du 
nicht ran.

Wenn du dir sorgen machst, mit falschen Parametern im Filesystem unfug 
zu stiften, dann arbeite als Benutzer ohne Administrationsrecht.

von Imon (Gast)


Lesenswert?

Für x86 hatten wir seiner Zeit in der Uni masm

nasm, finde ich auch nicht schlecht.(auch x86)

von Viktor (Gast)


Lesenswert?

Danke erstmal für die zahlreichen Antworten! :-)

Also mir geht es darum, eine Art Simulation zu haben, um ausschließlich 
die Sprache zu verstehen.

Heißt, man kann in "virtuelle Register" Werte schreiben und diese dann 
manipulieren (shiften/verUNDen/verODERn/...).

Ziel des Ganzen soll zum Beispiel sein, als Übung (was wir mit großer 
Sicherheit bald in der Prüfung haben) ein Programm zu schreiben, welches 
aus 5 Telegrammen (2 aus 5-Code -->Hamming-Code) vertikale Parity zu 
bilden und diese in ein Register zu schreiben.



Gruß

von Egal (Gast)


Lesenswert?

>die Sprache
für welches Zielsystem?!?

B. G. schrieb:
> Nun ja,
>
> dir ist schon bekannt, dass Assembler eine Hardware nahe
> Programmiersprache ist? Also welche Zielhardware??? x86, AVR, PIC, ARM,
> ...

von Viktor (Gast)


Lesenswert?

Windows.

von Egal (Gast)


Lesenswert?

Das ist kein Zielsystem sondern ein Betriebssystem, du meinst x86. 
Empfehlungen wurden oben genannt.

von Sepp (Gast)


Lesenswert?

Assembler ist eine Hardwarenahe Programmiersprache, wie viele
der Vorposter schon schrieben. Windows ist ein Betriebs-System,
das auf unterschieedlichen Prozessoren läuft (Intel, AMD).
Für welchen Prozessor wurde euch der Assembler gezeigt?
Oder wurde es mit einer Art "Pseudo-Code" demonstriert?

Frage doch in der Schule, ob es nicht möglich ist dieses
System/Programm oder was auch immer das sein mag, einzusetzen.
Für die zu erwartende Prüfung sollte man wohl die Lehrbeispiele
als Assembler-Grundlage verwenden.

Wenn man z.B. den Assembler vom AVR-Studio mit seinem Simulator
verwendet, (für das Erlarnen von Assembler gut geeignet) kommt
schon beim Sourcecode etwas anderes heraus als bei einem
8051-Assembler.

von Stefan B. (stefan) Benutzerseite


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.