Lowlevel
OffZone => Offtopic => Thema gestartet von: joachim_neu am 03. July 2004, 17:14
-
Codeausschnitt:
.data
sEingabe: .asciiz "\nAusdruck:"
.text
main:
#Kommentar
la $a0, sEingabe
li $v0, 4
syscall
das war mal ein Codebeispiel... Sieht aus wie ASM, ist es aber nicht... Addiert wird nähmlich so:
add $t3,$t2,$t1
den Code hab ich in der LMU bei Tag der Mathematik auf einem Zettel auf dem Boden gefunden und mitgenommen...
-
Es muss ja nicht x86er Assembler sein, es kann ja auch ein Assembler für eine andere Architektur sein.
-
Ist ja nichtmal der Intel-Syntax...sieht also wirklich nach einer anderen Arch. aus wenn ihr mich fragt...
-
Müsste PowerPC sein. (http://home-3.tiscali.nl/~solognt/codingstuff/ppc_cursus.html)
-
Das ist Assembler (PPC). Das besondere daran: AT&T Syntax.
-
Aaaahaaaa. :? Hat AT&T nicht zufällig auch was mit Unix zu tun?
-
aso, also doch ein Assembler... thx.
-
Naja, da sowohl Unix als auch C (und ich glaube sogar C++), soweit ich informiert bin, aus den AT&T Labs (existieren nichtmehr) stammen hat er ein wenig mit Unix zu tun. Zum Beispiel benutzt der Gnu Assembler diesen Syntax und somit wird er auch für GCC-Inline-Asm benutzt. AT&T Syntax wird halt auf fast jeder Plattform von irgendeinem Assembler verwendet während der Intelsyntax halt speziell für die Intel-Prozessoren verwendet wird obwohl man natürlich jeden Synax für jeden Assembler auf jeder Plattform verwenden könnte soweit ich weiß...
-
Und "syscall" weißt doch auch auf Unix hin oder nicht?
-
Meines Wissens nach könnte das auch Assembler für den Motorola 68k sein...
-
Naja, das wäre was für eine Google-Suche nach Assembly Motorola 68k damit findet man vielleicht code zum vergleichen...ansonsten kannst du ja noch nach anderen Architekturen wie SPARC und so schauen...
-
@Another Stupid Coder: Syscall muss doch nicht gleich Unix sein. Das kann ja auf einem 68k z.B. auch das gleiche sein, wie int beim 8086er. Das heißt ja nur, dass man eine Systemroutine aufruft.
-
Hm...aber es _könnte_ Unix sein :)
-
Ist ja auch egal: Wenn wir selber OSes Proggen, dann brauchen wir weder Unix noch irgendein MAcOS oder sowas.
Eine Frage: Programmiert hier jemand ein OS für eine andere Architektur als di x86er Familie?
-
Naja, ich hab mal drüber nachgedacht mein OS auf den GameBoy Advance zu portieren was ich aber mangels richtiger Tastatur (Ein Steuerkreuz, Start, Select, A, B, L und R und sonst nichts) und sinnvoller Eingabemöglichkeiten wieder aufgegeben habe. Wer sich doch dafür interessiert -> http://devgba.snowcristals.net/ (An der Seite wird allerdings nicht mehr weitergearbeitet)
-
Ich hab mit Onkel Phil (einem Ex-Kolumnisten von Lowlevel) das Betriebssystem "Radiation" für Nokia's Mediamaster-Plattform (=> Motorola 68k) geschrieben. War sehr interessant, aber auch schwierig, mit einem solchen Embedded Device zu arbeiten...
Achja: hier ein wenig 68k-Code, den ich ausgegraben habe:
*******************************************************
* *
* SBR example with 'Hello World' on screen/display *
* This is only running with Radiation 0.3! *
* *
*******************************************************
org $1060000
bra start
Str1 dc.b ' '
Str2 dc.b 'Hello world +++ '
Str3 dc.b 'Good Bye... +++ ',0
even
* little pause
pause subi.l #1,D5
bne pause
rts
*********** Main ****************
start
movem.l A0-A7/D0-D7,-(A7) *save all registers
* set display luminance
move.l #0,D0
dc.w $A001 *Line Trap 1
lea.l Str1,A0
* show Str1 on screen
lea.l Str2,A1 *'Hello world'
dc.w $A002 *Line Trap 2 (show on screen)
moveq #38,D4 *numbers of scrolls
loop2 move.l A0,A1
dc.w $A003 *Line Trap 3 (show on display)
move.l #$10000,D5
bsr pause
add.l #1,A0
subi.b #1,D4
bne loop2
* show Str2 on screen
lea.l Str3,A1 *'Good bye...'
dc.w $A002 *Line Trap 2 (show on screen)
move.l #$60000,D5
bsr pause
moveq #20,D4 *numbers of scrolls
loop3 move.l A0,A1
dc.w $A003 *Line Trap 3 (show on display)
move.l #$10000,D5
bsr pause
add.l #1,A0
subi.b #1,D4
bne loop3
* end, restore all registers and SR
movem.l (A7)+,A7-A0/D7-D0
rts
-
@mastermesh
Sag ma meinste die D-BOX hat die nen 68k ?
-
Jepp, die D-Box (der ersten Generation) hat nen Motorola 68k mit 16 (?) MHz. Bei der D-Box 2 bin ich mir nicht sicher... da ist irgendein 32 Bit-RISC-Prozessor drin, wenn ich mich nicht irre. Läuft ja auch Linux drauf.
-
Another Stupid Coder postete
Und "syscall" weißt doch auch auf Unix hin oder nicht?
Syscall würde in einem C-Programm auf Linux/Unix/BSD hinweisen.
Hier würde ich syscall eher wie int verstehen(Nur ein Tipp), weil linux ja nicht neue Assembler, ergo Prozessorbefehle, hinzufügt.
Im 2.6er Kernel erlaubt es Linux jetzt auch auf der x86-Architektur syscalls nicht mehr nur mit int, sondern auch mit dem neuen Intelbefehl aufzurufen.