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

Seiten: [1]
1
Moin Leute,

Seit einiger Zeit arbeite ich an einer neuen CPU. Nun stellt sich mir aber eine Frage zum Design und zwar, ob es günstiger wäre den Stack in die Hardware einzubauen (also mit Stackpointer push und pop), oder ob es auch performant wäre den Stack als Makro zum Assembler dazuzugeben.
Im Instructionset sind die Befehle ld r#, imm (LoaD immediate to register r#), lm r#1, [imm+r#2] (Load from Memory at address r#2 (displacement) + immediate to r#1) und sm (Store to Memory at address ...)

Was haltet ihr von den beiden Varianten? was für die praktikablere.

mfg
2
So, da es einige Assembler Fans hier gibt und auch einige kreative Köpfe, möchte ich mal einen Versuch starten:
Assembler-Poesie :D

Es ist ganz einfach! Man nehme ein Gedicht, wahlweise schreibe man es selbst, und versuche es in Assembler auszudrücken.
Es muss natürlich nicht assemblierbar sein, es muss nur wie Assembler aussehen. Also ganz einfach, oder doch nicht?
Wie dem auch sei. Ich hab mich mal dran versucht - bin zwar nicht der beste, wenn es um Gedichte geht, aber ich fand die Idee neckisch.

kleine tipps (hehe wirklich klein ^^):
xore -> xor if equal/true
adde -> add if equal/true
in Anlehnung an den x86 Intelsyntax

mov dir, ich

cmp du, 0
xore ich, ich
test mich, #frage
adde ich, du


Für alle zur Erklärung

Ich zu dir

Wenn du nicht wärst,
Wär' ich nicht.
D'rum frag ich mich,
Warum sind wir nicht zusammen?

Ich sag ja, nicht das beste, aber mal sehen, was ihr so schreibt. Seht es als Herausforderung ;)
3
Lowlevel-Coding / Division mit 0?
« am: 15. November 2008, 18:34 »
ich hab mir heute eine error routine für division mit 0 geschrieben, das ganze auf int 0 in der IVT regitriert und ums zu testen die folgende routine in das os eingebaut und ausgefürt
mov ax, 0
mov bl, 01h
div bl
und nun kommt das spanneste: es kommt 0 raus!  :-o :?
kein int, kein garnichts soner ein ergebnis

ok, hab ich mir gedacht, nimmst die standart routine vom bios.
die registrierung meines int 0 in der IVT rausgenommen, kompiliert und ausgefürt und es kommt wieder 0 raus!  :? :? :?

und nun meine frage: wird im obrigen codestück garnicht durch 0 dividiert? und wenn ja, wie wird durch 0 dividiert?

ps: ja, mov, ax, 0 kann man auch xor ax, ax schreiben ich weiss...
4
ich bin seit freitag dabei eienen tastatur treiber für mein os zu schreiben aber nun will es nicht so wie ich will, meien idee war es das bios standart layout zu nehemen und die zeichen der tastatur anzupassen zb. bios standart layout z und y vertauscht-> zurücktauschen.
nun hab ich aber das problem, dass die zeichen nach der bearbeitung nicht ausgegeben werden und das der tastatur puffer nach kurzer zeit voll ist, und desshalb keine zeichen mehr aufnimmt. aber das passiert nur wenn dieser bearbeitungs code aufgerufen wird.

hier der problem code:
tasttr: 
mov ah, 0 
int 16h 

cmp ah, 0x4B  ;scancode für pfeiltaste links
je near key_left 
.
. ;hier werden noch andere scancodes abgefragt
.
cmp al, 'z'
je near key_y 
.
.  ;hier werden noch andere ascii zeichen und codes abgefragt
.

weiter:
mov ah, 0x0e   
int 10h

;das folgende sind konvertierungen von groß zu klein; haben nur bedeutung fur die befehlsauswehrtung

mov dl, 'A'   
cmp al, dl   
je near A2a_a   
.
.  ;hier werden alle buchstaben Von groß zu klein konvertiert
.
ret
A2a_a: 
mov al, 'a' 
ret 
.
. ;hier werden alle buchstaben Von groß zu klein konvertiert
.

key_left:
mov si, left ;Inhalt: 'left wurde gedrückt'
mov al, 01h ;funktion 01h (schreiben) des
int 21h   ;int 21h (eigenes int mit bios teletype)
jmp weiter
.
.
.

key_y:
mov al, 'y'
jmp weiter 

.
.
.
mfg bb chris12
5
Lowlevel-Coding / raw dateien speichern
« am: 03. September 2008, 22:24 »
ich bin jetzt mit meienem OS soweit, dass ich datem auf der diskette speichern will allerdings möchte ich es erst ein mal ohne fs machen denn dass müsste doch eigentlich auch gehen oder?

meine idee war jetzt

1. daten abfragen (text zb in einer variablen speichern)
2. daten zusammen fügen und die datei 1sek groß machen
3. die datei schreiben
4. einen eintrag in eine tabelle machen die auch gespeichert werden müsste


1. /2. sollte ich noch hinbekommen aber bei 3./4.?
gibt es zumschreiben irgentwelche ints bzw könnte man eine print- funktion nemen und die ausgabe auf die diskette umleiten?

wie bei dos
echo test > test.txt

ich hab schon gesucht aber irgent wie hab ich noch nichts passendes gefunden oder ich bin einfach nur zu blöde :)
6
Das Wiki / wiki und beiträge
« am: 31. August 2008, 10:54 »
hi ich hätt mal ne frage zur wiki
und zwar:
ich bin auch dabei ein os zu proggen und ich hab gesehen, dass einige hobby os's in der wiki stehen und nun wollt ich fragen ob ich meins auch dort eintragen darf und was es zu beachten gild?




ps: ja ich bin in der wiki angemeldet



mfg bb


chris12
7
Lowlevel-Coding / standardfarbe 0x07 ändern bei int 0x10
« am: 30. August 2008, 23:32 »
ich hab vor längerer zeit die tuts aus der wiki mir durchgelesen und auch ein os, zumindest die anfänge, geschrieben.
einige funktionen hab ich auch übernommen wie z.b. die putstr funktion und da ist jetzt meine frage wie man diese funktion umschreiben müsste um jetzt die standard farbe 0x07 auf z.b. 0x14 zu ändern oder könnte man das auch z.b an den anfang der konsole schreiben das gleich die farbe geändert wird und man dann arbeiten kann? :? :? :?
ich hab mir Ralf Brown's Interrupt List angesehen und da stand bei INT 10/AH=0Eh
Zitat
AH = 0Eh
AL = character to write
BH = page number
BL = foreground color (graphics modes only)
...

mit BL z.b= 14h oder 0x14 oder 0x1 oder anderem hat nicht gefunzt :-(
dann hab ich's mit BX z.b = 0x001 oder 0x13 oä alles hatte keine wirkung es blieb grauer text auf schwarzem grund :cry:
heir der code:

putstr:
    lodsb           
    or al,al
    jz short putstrd
    mov ah,0Eh   
    mov bx, 0x0007 ;<---- hier dacht ich wär die farbe definiert
    int 0x10
    jmp putstr       
    putstrd:
    retn


ich hoffe es hört sich nicht so an, als wenn ich  nicht gesucht hätt aber alles was ich probiert hab funzte nicht bz nicht so wie ich es gern haben wollte :-(


ich hoffe ihr könnt mir helfen sonst muss es halt grau-schwarz bleiben





mfg bb





chris12
8
Offtopic / schönen tag; kleine vorstellung
« am: 11. August 2008, 15:24 »
ich hab ne gmx adresse und ich hab mir die aktivierungsmail bestimmt 20 mal oder so zuschicken lassen, auf 2 tage verteilt, und hab nichts bekommen dann hab ich mir das thema http://lowlevel.brainsware.org/forum/index.php?topic=1998.0 durch zufall durchgelesen und danke an TheThing, der mich darauf hingewiesen hat, dass gmx adressen nicht funzen. :-(
ich würd vorschlagen, dass ihr auf die hauptseite schreibt, dass zb gmx oder web.de adressen nicht funzen. :-)


nun zu mir:
ich bin 14 jahre alt
wohne in Stralsund an der Ostsee
und Proggrammieren ist mein hobby.



mfg bb


chris12
Seiten: [1]

Einloggen