FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

assembler speicherzugriff

assembler speicherzugriff 2011-01-18 15:34
jonas1999
moin!

ich sitze grad an der ersten aufgabe von diesem zettel.

ich möchte sie gerne mit assembler lösen.

wir sollen ja zuerst mal die werte in die register bzw. den speicher schreiben.

register habe ich wie folgt gemacht, das geht auch:

movl $0x00000100, %eax
movl $0x00000001, %ecx
movl $0x00000100, %edx

aber wie kann ich direkt an die adressen im speicher schreiben??

also im prinzip: movl $0x000000AC, 0x104

da gibt's ne fehlermeldung (bus error). ich darf wohl nicht direkt den speicher adressieren?!? ist das korrekt? wie geht das dann?

daaanke,

jonas

RE: assembler speicherzugriff 2011-01-18 15:39
Wulf
Schau dir mal "Virtueller Speicher" und Zugriffsrechte, etc. in dem Zusammenhang an.
(kurz: Du hast nicht das Recht, an der Adresse zu schreiben.)
Eventuell kriegt man die Rechte mit dem mmap-Befehl, aber das wird dann zu kompliziert.

Mach's lieber per Hand :-)

RE: assembler speicherzugriff 2011-01-18 15:53
jonas1999
echt? schade :-(

totzdem vielen dank für den hinweis!!!!

jonas

RE: assembler speicherzugriff 2011-01-18 15:59
Wulf
Also, mmap funktioniert, hier der C-Code:
if(mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0)
== MAP_FAILED) abort();

Geht aber unter Linux nur als Root.

Außerdem:

Error: suffix or operands invalid for `imul' in der Zeile:
imull $16,(%eax,%edx)
Ist wohl der Aufgabenzettel verbuggt.

RE: assembler speicherzugriff 2011-01-18 16:06
jonas1999
hey vielen dank :-)

ich versuch's mal - bin allerdings osx nutzer …

RE: assembler speicherzugriff 2011-01-18 21:35
jonas1999
ok - ich hab's jetzt von hand gemacht!! danke für die mühe, wulf!