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.


Themen - Rookie

Seiten: [1]
1
Hallo,

Ich hab ein paar Fragen zum Beispiel, wie man eine Division durch Null abfängt (im Artikel IVT). Ich hab dazu einfach mal einen dummen Kernel gemacht, der nur eine Meldung ausgibt, das Makro verwenden soll und das Ganze dann anhand einer Division durch Null testen soll:


mov ax, 0x0800
mov ds, ax
mov es, ax
start:
xor bx, bx

;  ... hier ist der Startcode ...
IVT.Handlerwahl 0x00, IRQ_0x00
;  ... hier kommt dann noch irgendein Code ...

IRQ_0x00:   ;Handler für IRQ 0
;  ... hier kann ein Hinweistext geschreiben werden o.ä.  ...
iret


;Testen anhand einer Division durch Null
xor ax, ax
div ax


%macro IVTHandlerwahl 2
push ax
push es
xor ax, ax
mov es, ax
cli
mov WORD [es:%1*4], %2
mov WORD [es:%1*4+2], cs
sti
pop es
pop ax
%endmacro

end:
jmp end

Leider kommt beim assemblieren die Meldung
Zitat
error: parser: instruction expected
und zwar  beim Aufruf des Makros in der Zeile : IVT.Handlerwahl 0x00, IRQ_0x00
Könnt ihr mir sagen, wie ich das Makro richtig aufrufen kann und welchen Code ich wo einfügen muss, damit er bei einer Division durch Null z.B. zum Anfang des "Kernels  :-D " springt ?

Vielen Dank !   





 
2
Lowlevel-Coding / FAR-Jump in NASM
« am: 10. January 2017, 08:20 »
Hallo,
ich hab mal eine Frage zu NASM : Wie schaff ich es, den JMP-Befehl mit ES und BX oder Variablen zu verwenden ?
Hab schon jmp [es:bx], jmp es:bx und jmp [JmpSeg:JmpOff] versucht, alles ohne Erfolg. Das einzige was geht, ist eine feste Adresse ala :
jmp 0x1000:0x0000oder über retf : push es, push bx, retf.

Irgendwie ging es, dass man den JMP-Befehl in Verbindung mit ES und BX verwenden kann, nur weiß leider nicht mehr wie.
Könnt ihr mir helfen ?

Vielen Dank,
osdever
3
Lowlevel-Coding / FAT12 Handmade Frage
« am: 13. February 2016, 12:29 »
Hallo,
ich habe eine Frage zum Artikel http://forum.lowlevel.eu/index.php?topic=439.0. Hier steht, dass man nach dem Bootsektor weitere 22 Sektoren mit Nullen erstellen soll. Ich hab da ein paar Tests gemacht und zu folgenden Fragen gekommen (zum Hinweis : das Ganze bezieht sich nur auf FAT12). Das hier soll keine Korrektur oder so sein, ich möchte nur den Sinn verstehen

1. Ich hab mal testweise die 3 Byte nach dem Bootloader weggelassen (db   0xff,0x0f,0xf8) und das Image wurde dennoch als FAT12 erkannt. Wozu braucht man die 3 Bytes also ?

2. Mit times 12288-($-$$) db 0 erstellt man 22 Null-Sektoren. Mit den 22 Sektoren löscht man aber nur die beiden FATs und einen Teil des Root-Directories. Sollte man nicht nach dem Bootsektor die darauffolgenden 9+9+14 = 32 Sektoren löschen (FAT1+FAT2+RootDir) um ein jungfräuliches Diskettenimage zu erhalten ?

Vielen Dank,
Rookie
4
Lowlevel-Coding / C-Kernel mit GRUB
« am: 15. October 2014, 10:43 »
Hallo,

ich hab nur 3 kleine Fragen zum Thema GRUB und zum Tutorial C-Kernel mit GRUB. Genauer gesagt bei einigen Passagen mit GRUB. Ich hoffe ihr könnt mir helfen.

Ich will meinen Bootloader nicht ersetzen, nur GRUB Legacy haben um die Konsole starten zu können. Reicht es dazu, wenn ich sudo apt-get install grub eingebe?

Die folgenden 2 Fragen beziehen sich aufs Tutorial :
# sudo mount -oloop test.img /mnt
# sudo mkdir /mnt/grub
# sudo cp /boot/grub/stage* /mnt/grub
# sudo cp kernel /mnt                                     => Muss diese Zeile nicht "sudo cp kernel.bin /mnt" heißen ?
# sudo umount /mnt

Leider hat mein Rechner kein Floppy Laufwerk (Also kein fd0). Wie kann ich die folgenden Aktionen
# grub
grub> device (fd0) test.img
grub> root (fd0)
grub> setup (fd0)
grub> quit
dann auf dem Image ausführen? Oder muss ich dazu extra ein Loop-Device erstellen?

Vielen Dank,
Rookie
5
Das Wiki / Thema löschen
« am: 22. August 2014, 08:00 »
Hallo,

an wen muss ich mich wenden, wenn ich eines meiner Themen löschen möchte ?
6
Offtopic / Suche Mitglieder für neues Anfänger-OS
« am: 21. August 2014, 10:15 »
HALLO,

Ich möchte gerne ein neues einfaches Anfänger-Betriebssystem bauen.

Bisher hab ich nicht besonders viel Erfahrung, nur in Assembler und C kann ich Kenntnisse vorweisen, sowie im Real-Mode-Programming.
Und wenn man mehr als nur Einzelkämpfer ist, kann man schneller Probleme erkennen und lösen und es macht einfach viel mehr Spass.

Also wenn auch du Lust hast, ein OS von Grund auf neu zu entwickeln, dann hinterlass mir hier ne Nachricht

Was du mitbringen solltest : VIEL FREUDE AM PROGRAMMIEREN  :-D

Würde mich freuen.
Viele Grüße,
Rookie


Seiten: [1]

Einloggen