Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - gurru

Seiten: 1 [2] 3
21
Lowlevel-Coding / 64kb Speicher reservieren
« am: 19. July 2004, 22:44 »
hi

FS, gs wurden mit dem 386 eingeführt und können damit ab diesem Prozessor benutzt werden

Ich habe FS benutzt, da ES/DS für die String-Befehle benötigt werden, und da man so das Register nicht so oft neu laden muss

gurru
22
Lowlevel-Coding / 64kb Speicher reservieren
« am: 15. July 2004, 22:57 »
hi

@TPSeverino:
Doch, der Speicher liegt dann im CodeSegment (CS)

MOV FS, segment
MOV FS:[AX], Value

In FS ist das Segment gespeichert, in AX der Offset, und Value ist der WErt den du speichern willst

@Segment festlegen
Bei Nasm geht das nicht (oder doch?)
Bei Tasm kann man ein Teil des Codes als Datasegment und einen anderen Teil des Codes als data segment definieren

mfg
23
Lowlevel-Coding / 64kb Speicher reservieren
« am: 14. July 2004, 23:02 »
hi

Warum willst du die denn reservieren?
Wenn du deinen eigenen Kernel schreibst, kannst dir ein ein Segment freihalten und dann die Daten da rein schreiben.

mfg gurru
24
Offtopic / bücher zu Assembler
« am: 07. July 2004, 23:13 »
hi

Versuchs mal im Internet (amazon.de ...), dort wird man auf jeden Fall fündig

mfg
25
Lowlevel-Coding / CPU Temperatur
« am: 01. July 2004, 23:10 »
Der P4 hat auf jeden Fall ein Thermoter, da er sich ja selbst reguliert (Taktfrequenz runterschalten) bzw. ganz abschaltet, wenn er zu heiß wird
26
Lowlevel-Coding / Jmp oder Call
« am: 20. June 2004, 03:57 »
hallo

ip kann man nicht direkt auslesen (hab in einer Referenz nachgesehen)

@ bscreator:
  Call und Jmp benötigen zum Abarbeiten(Ausführen) nur 1 Takt-wie fast alle Befehle-, bei beiden wird eine Konstante gelesen, das heißt beide Befehle sind gleich schnell

mfg
27
Lowlevel-Coding / Jmp oder Call
« am: 19. June 2004, 22:14 »
hallo

Wenn man ip-pusht gibt es auf jeden fall Probleme, da IP ja auf
  JMP marke
zeigt, das heißt nach dem
  ret
wirtd dieser Befehl noch einmal ausgeführt. Das nächste return ist dann undefiniert -- also nicht zu empfehlen

@mastermesh:
  ich glaube man kann IP auslesen - bin mir aber nicht sicher - aber schreiben geht auf keinen Fall

@another stupid coder:
  immer noch eine der häufigsten Sicherheitslücken
28
hallo

Zitat
joachim_neu postete
stimmt schon gurru, das ist nicht so wie bei einem mathe koordinatensystem...
kann sein, aber im Code wird nach jedem Zeichen PosX um eins erhöht, weshalb das (mathematische) Koordinatesystem bei der Benennung der
Variablen zugrunde liegt, und deshalb muss er die VAribalen in der Positionsberechnung austauschen

mfg
29
hallo

Es muss
if (!(PosX < 80))
heißen, sonst wird nach jedem Zeichen eine neue Zeile angefangen.

Und noch etwas:
Die Koordinaten werden folgendermaßen angegeben, (wenn nicht, vergess den Rest des Beitrags:-)
  x->
y
|
v

deshalb musst du i mit folgender Formel berechnen:

i = 80*2*PosY+PosX*2

mfg
30
Lowlevel-Coding / Problem mit Datenzugriff im Kernel
« am: 10. June 2004, 22:53 »
hi

ich hab mal drüber geguckt. was mir aufgefallen ist:

Zum Bootloader:
ist das der komplette Bootloader, mit dem du den Kernel laden willst?
Wenn ja, im Bootloader wird niergendwo ein kernel geladen noch wird zu diesem gesprungen - was deinen oben beschriebenen Programmablauf zum Ergebnis hätte

mfg gurru
31
Offtopic / problem beim imageerstellen
« am: 26. May 2004, 23:48 »
hallo

musst copy mit /b oder \b ?????? sagen, dass es sich um binär-Dateien handelt, da copy sonst beim ersten Sonderzeichen abbricht - davon gibts genug

mfg
32
Offtopic / Wie laut ist laut ?
« am: 22. May 2004, 01:53 »
hallo

fast, die lautstärke wird in Dezibel (db) angegeben - ist logarhytmisch aufgebaut

mfg gurru
33
Lowlevel-Coding / Rückgabewerte bei Strukturen
« am: 21. May 2004, 13:20 »
hallo

Wenn du das wissen wilst, schreib dir ein kleines Programm und übersetz das mit

gcc -S datei
(sollte dasauf der Kommandokonsole ausgegeben werden, schreib hinter den Befehlsaufruf einfach: > dateil.s)

in der datei.s steht dann das Assemblat des Code

Noch ein Tipp: Benutze keine Optimierungen, da sonst die Navigation im Code erschwert wird, da keine direkte zuordnung mehr möglich ist

mfg
34
Offtopic / Welche Tools benutzt ihr?
« am: 21. May 2004, 02:45 »
hallo

@anotherstupidcoder:
Nein. ich rufe zuerst die Datei mit gcc -E datei.s -o datei.p auf und übersetze diese dann mit nasm, da nasm - wie oben beschrieben- einige mir nützlich erscheinende Dinge nicht unterstützt - der präprozessor tut dies

mfg
35
Offtopic / Welche Tools benutzt ihr?
« am: 20. May 2004, 06:27 »
hallo

ich verwende den Crimson Editor zum schreiben der Codes - unterstützt syntaxhighlithing - das ausführen von programmen usw.-- alles was man so braucht

zum compilieren: (linux)
  den gcc-preprozessor (unterstützt Blockkommentare, bedingte Compilierung - mehr als nasm...)
  nasm

die fertige datei wird einfach auf hdb geschrieben

ausßerdem hab ich mir  noch ein Programm geschrieben, das die informatione, die der c++-proäprozesor in die Datei einfügt, zu entfernen

Um ein komplettes projekt zu erstellen, verwende ich make

mfg
36
Offtopic / Elf .o mit g++ einlinken
« am: 16. May 2004, 22:41 »
hallo

FEHLER:

Es müsste bei Lösung 1 auch
extern "C" assembler_function
heißen.

mfg
37
Offtopic / Elf .o mit g++ einlinken
« am: 15. May 2004, 23:19 »
extern "C++" assembler_funktion(...)
Im Assembler muss man dann nur einen Unterstrich vor die Funktion schreiben

2. Lösung

Übersetzt die Datei mit g++ -S dateiname und seh im Assemblat nach, wie die Funktion heißen muss, damit der Linker diese findet

mfg

PS: bin auf den Absenden-Butto gekommen - editieren hat nicht funktioniert
38
Offtopic / Elf .o mit g++ einlinken
« am: 15. May 2004, 23:13 »
hallo

In C++ gibt es functionname-encoding, um die mehrdeutigkeiten beim function´-overloading aufzulösen - deshalb muss die Funktion in nasm anders heißen.

1. Lösung: Du deklarierst die Funktion in C++ als:
39
Das Wiki / Einführung in Partitionstabellen?
« am: 13. May 2004, 22:45 »
hallo

<a href="http://www.nondot.org/sabre/os/articles/Partitions/">Díe partitionstypen gibts hier</a>


mfg
40
Lowlevel-Coding / Frage zu INT 13h, FUNC. 42h, 43h
« am: 04. May 2004, 23:32 »
hallo

Den beiden Funktionen 42h (Extended read), 43h (extended write) wird in DS:SI ein Pointer auf eine Struktur übergeben, welche folgendermaßen aufgebaut ist:

00h BYTE     size (10h, or 18h) - verstanden
01h
02h Word     number of Blocks to transfer - verstanden
04h DWord   eine Zeiger auf den Speicher der geschrieben/ gelesen werden soll -
08h QWord starting sektor (LBA)
...

zu 04h hab ich folgende Frage: wie wird die Adresse angegeben (linear/ Offset:Segment)?

zu 08h: Ich benutze bei meinem Dateisystem 2 Byte WErte für den Sektor - an welchen Offset muß ich diesen Wert schreiben - 08h oder 0Eh??

mfg
Seiten: 1 [2] 3

Einloggen