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 - Kyoko12

Seiten: [1]
1
Lowlevel-Coding / Assambler: Add bei Strings??
« am: 30. December 2005, 10:55 »
Hi

ich hab mal ne frage zu Assambler...

wen ich jetzt nen "String" habe, also zB so definiert:


string db "test"


kan ich dann zu diesem String mit


add string, "a"


was hinzufügen?? also das der Inhalt dann "Testa" ist??

danke im vorraus,
kyoko12
2
Lowlevel-Coding / 16-Bit C-Compiler
« am: 25. October 2005, 16:25 »
Hi.

Ich suche einen C Compiler der mir einen 16-Bit KErnel compiliert^^ aber da gibts ein problem: mein windows lösst mich KEINE 16-Bit anwendung ausführen -.-". gibt es eienn in 32-Bit geschriebenen Compiuler, der 16-Bit compilt? oder habt ihr eine Idee was mit meinem win sein könnte?

danke im vorraus,
Kyoko12
3
Lowlevel-Coding / ASCII-Code von Enter?
« am: 19. October 2005, 14:46 »
Hi, ich code gerade an einer String.Shell, weil ich endlich von miener Live-Shell weg will, und da überprüfe ich einfach ob das Geshriebene Zeichen die Entertaste war. WEnn nicht, wird es in den String geschrieben, wenn ja, dann wird das schreiben beendet und der string mit vorhandenen Kommandos verglichen. Aber welchen ASCII-code hat die Enter-Taste? ich kann sie auf keiner ASCII-Tabelle fidnen. Bin ich einfach zu Blöd??

mfg,
Kyoko12
4
Lowlevel-Coding / Register?
« am: 15. October 2005, 11:10 »
Hi,
hat einer von euch zufällig eine Liste mit ALLEN registern und der angabe ihrer größe, also 16, 32, 64 Bit??
Ich meine wirklich alle, also ax, bx usw. aber auch die komischen (meine meiunug) w2ie cr0, cr3 usw., die hab ich nähmlich noch nie verstanden und will mal wissen, wie groß die sind. Auserdem würde mich interessieren wie die 64-Bit register heißen.

danke im vorraus,
Kyoko12
5
Lowlevel-Coding / PrintString? Ich kapiers nicht!
« am: 27. February 2005, 16:03 »
Hi leutz, ich habe mal wieder n problem bei den einfachsten sachen!

hier ist der Code meiner PrintString funktion:


PrintString:

mov ah, 0Eh
mov bl, 0x07
jmp .char
.char
lodsb
or al, al
je .end
int 10h
jmp .char
.end

ret


in meinem Kernel rufe ich sie so auf:


mov si, hallo
call PrintString
mov si, linefeed
call PrintString



Und was passiert?
Gar nix. er macht einfach das was nach dem aufruf steht.

Ich finde einfach keinen fahler! Könnt vihr mir bitte helfen?`

mfg,
Kyoko12
6
OS-Design / FAT12
« am: 31. December 2004, 11:25 »
Hi leute.

Ich habe da mal ne frage: Wie bekomme ich FAT12 auf ne Floppy?

Unter windows formatiert er sie ja mit VFAT16! Wird das durch den Bootloadercode einfach zu nem anderen FAT?
Und wenn nein, wie bekomme ich FAT12 dann drauf? und wie FAT32?
Oder NTFS?

Danke im Vorraus und nen guten rutsch, Kyoko12.
7
OS-Design / Shell
« am: 26. December 2004, 11:04 »
Hi, ich schreibe gerade eine Shell für meine 2. OS, die rein in ASM geschrieben wird.

hier ist der code:


;Dieser Code beschreibt einen kleinen Test-Kernel.


;API anmelden und definieren:


;Die API von AgamOS

_int0x21:


;funktion1:
;gibt einen string aus!
;muss vorher mir varname in si gemovt werden
 _int60x21_ser0x01:
 cmp al, 0x01
 jne _int0x21_ser0x02
 _int0x21_ser0x01_start:
  lodsb                   ; nächstes Byte laden
 or  al, al              ; 0-Byte?
 jz  _int0x21_ser0x01_end
 mov ah, 0x0E            ; BIOS Teletype
 mov bh, 0x00            ; Page 0
 mov bl, 0x07            ; Text-Attribute
 int 0x10                ; BIOS-Call
 jmp _int0x21_ser0x01_start
_int0x21_ser0x01_end:
jmp _int0x21_end


_int0x21_ser0x02:
cmp al, 0x02
jne _int0x21_ser0x03
_int0x21_ser0x02_start:
;hexdump:
db 0Eah
dw 0000h
dw 0FFFFh
_int0x21_ser0x02_end:
jmp _int0x21_end


_int0x21_ser0x03:
cmp al, 0x03
jne _int0x21_ser0x04
_int0x21_ser0x03_start:
_int0x21_ser0x03_loop:
;
loop
_int0x21_ser0x03_end:
jmp _int0x21_end



_int0x21_ser0x04:
cmp al, 0x04
jne _int0x21_end
_int0x21_ser0x04_start:
pusha
mov ax,0xA000
mov es,ax
xor di,di
mov al,0x00
mov cx,0x2000
rep stosb
popa
_int0x21_ser0x04_end:
jmp _int0x21_end



_int0x21_end:
iret





;ints im Interrupt Vektor Table anmelden:

push dx
push es
xor ax, ax
mov es, ax
cli
mov word [es:0x21*4], _int0x21  ; Pointer auf den Handler
mov [es:0x21*4+2], cs           ; Pointer auf CS
sti
pop es
pop dx

jmp _main

;Daten:

hello db "Willkommen bei AgamOS",10,13,0
absatz db 10,13,0
input_ascii db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
input_scan db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

;main-code:
_main:

mov al, 0x01
mov si, hello
int 0x21

mov al, 0x01
mov si, absatz
int 0x21

mov cx, 0

jmp _shell

;Hier startet nun die Shell mit einem Test-Kommando, das den PC rebootet:

_shell:


mov ah, 00h
int 16h

inc cx

mov [input_ascii+cx], al
mov [input_scan+cx], ah

mov ah, 0Eh
mov al, al
mov bl, 0x07
int 10h


;überprüfungen der Eingabe für Zeilenumbruch etc.:


cmp [input_scan+cx], 28
jz _commands
jnz _shell



_commands:

;Hier werden die eingegebenen Kommandos überprüft:

 mov cx, 0

 jmp _com_reboot
 
 
  _com_reboot:
  inc cx
  cmp [input_ascii+cx], "r"
  jnz _commands_end
  inc cx
  cmp [input_ascii+cx], "e"
  jnz _commands_end
  inc cx
  cmp [input_ascii+cx], "b"
  jnz _commands_end
  inc cx
  cmp [input_ascii+cx], "o"
  jnz _commands_end
  inc cx
  cmp [input_ascii+cx], "o"
  jnz _commands_end
  inc cx
  cmp [input_ascii+cx], "t"
  jnz _commands_end
 
  mov al, 0x02
  int 0x21
  jmp commands_end


_commands_end:

mov [input_ascii], 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
mov [input_scan], 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

jmp _main





Mein Problem: bei folgenden Zeilen sgat er mir, "Invalide effictive adresse"


mov [input_ascii+cx], al
mov [input_scan+cx], ah



das sind die Zeilen 126 und 127! Könnt ihr einen Fehler finden?

Danke im Vorraus, cu
8
OS-Design / Makros
« am: 20. December 2004, 19:11 »
Hi,
ich wollte fragem, auch wennn ich die äAntwort schon zu kennen glaube,
kann ich einem Makro mehr las einen Parameter mitgeben?

als zum Beispiepl:


%macro test 1 2
mov ax, %1
mov bx, %2
%endmacro
9
OS-Design / EXT2 Tutorial
« am: 05. December 2004, 13:13 »
Hi, da ich bei den echten tuts keins machen darf, schreib ich das hier rein.
Mein kleines EXT2-"Tutorial".:

EXT2

Worum geht es in diesem Tutorial?

Es geht hier um den Aufbau von EXT2! Hier werdet ihr KEINEN Code bekommen!


Was ist EXT2?

EXT2 ist das Standartdateisystem von Linux. Es gehört zu den stabilsten am Markt, wenn auch nicht zu den schnellsten. Leider bietet es noch kein Journaling-Funktion. Es ist, logischerweise, der Nachfolger von EXT1 (bzw. EXT).


Wie ist EXT2 aufgebaut?

Einige daten:
Maximale Dateigröße:               2 GB
Maximale dateinamenslänge:    255 Zeichen

In EXT2 besteht eine Datei aus 2 Teilen: Kopf (i-node) und Rumpf.
Im I-Node-Table ist die Information über die physikalische Position einer Datei. Im Rumpf die eigentliche Datei.



Die kleinste adressierbare Einheit ist ein Block. Er ist bei EXT2 immer 4096 Byte groß. Eigentlich kann man sie anpassen, aber das sollte man nicht. Jeder Block erhält eine eindeutige Nummer. Der i-node ist bei jeder Datei vorhanden, der i-node-table ist mit dem FAT zu vergleichen.


Blöcke:

Solange eine datei nicht größer asl 10 Blöcke ist, kann sie in EXT2 noch mit dem i-node adressiert werden. Wenn sie größer ist, wird ein Indirektionsblock angelegt, der im i-node steht und in diesen werden wieder weiter Blocks adressiert. Man könnte also mit dem Indirektionsblock weitere Indirektinsblöcke adressieren und so weiter, bis die Datei 2 GB groß ist.
10
Lowlevel-Coding / FM?
« am: 28. November 2004, 13:25 »
Hi,
weiß einer von euch wie man in den FM wechselt?
Und ne Doku, was für befehle und eigewnschaften der hat?

Danke im vorraus, cu.
11
Lowlevel-Coding / Adressen
« am: 27. November 2004, 13:08 »
Hi, ich wollte fragen ob ihr mir eie Liste aller Adressen geben könnt, die der Copmuter hat.
So was wie die Video-Adresse usw.

Cu.
12
OS-Design / Boch von echter CDRom booten lassen?
« am: 21. November 2004, 11:15 »
Hi,
ich weiß dieser Post passt hier nicht her, aber ich wusste sonst keine andere Rubrik zum reinmachen.
Also, ich will ein Linux installieren, aber so dass es nur von Bochs aus zu booten geht, also, die CD einlegen, unter Bochs installieren und dann immer nur mit Bochs starten können.
Geht dass? Wie?

Danke im vorraus, cu.
13
Lowlevel-Coding / C++-Inline-Assambly
« am: 17. November 2004, 16:26 »
Hi, ich hättre mal ne Frage.

Mein Probrem:

Ich beispielsweise in C++ eine Variable definieren die a heist und sagen wir mal den Wert 5 hat.
Jetzt möchte ich den asm Befehl von C++ so einsetze ndas ich die Variable einsetzten kann.
z. B.:
mov si, a
so das a meine C++ Variable ist. Wie geht das denn?
Das Bona Fide Tutorial dazu versteh ich nähmlich nicht.

Cu.
Seiten: [1]

Einloggen