A
Anonymous
Gast
Hallo,
so die erste Übungsaufgabe ist gemeistert, hoffe ich. Und schon wieder (hoffentlich nicht zu blöde) Fragen...
Ich habe hier ein kleines Assemblerprogramm (da stimmt leider die Formatierung nicht mehr):
Wenn ich das jetzt in der Konsole mit spim aufrufe, geht es:
Wenn ich es jetzt versuche mit g(as), bekomme ich das:
Stimmt da der Aufruf nicht, habe ich vergessen, ein Paket zu installieren, oder kennt g(as) die ganzen Befehle nicht? Wir haben uns halt immer an unser Skript gehalten, das sich nur auf (x)spim bezieht.
Als weitere Erfahrung kann ich sagen, xspim ist Dreck (sehr umständlich alles), spim in der Konsole geht. Wir haben jetzt aber auch noch nicht soviel gemacht. Sind grade am Anfang...
Schöne Grüsse
so die erste Übungsaufgabe ist gemeistert, hoffe ich. Und schon wieder (hoffentlich nicht zu blöde) Fragen...
Ich habe hier ein kleines Assemblerprogramm (da stimmt leider die Formatierung nicht mehr):
Code:
.data
x: .half 0xABCD
little: .asciiz "little-endian \n"
big: .asciiz "big-endian \n"
.text
main:
lb $t0, x # erstes Byte
lb $t1, x+1 # zweites Byte
addi $t2, $zero, 0xCD # 0xCD in $t2 laden
beq $t2, $t0, littleout # 0xCD mit erstem Byte vergleichen und ggf zu littleout
beq $t1, $t0, bigout # 0xCD mit erstem Byte vergleichen und ggf zu bigout
littleout: # Ausgabe für little-endian und Sprung zu end
la $a0, little
li $v0, 4
syscall
j end
bigout: # Ausgabe für little-endian und Sprung zu end
la $a0, big
li $v0, 4
syscall
j end
end: # beenden
li $v0, 10
syscall
Wenn ich das jetzt in der Konsole mit spim aufrufe, geht es:
Code:
21:03 RossTheBoss:~/Temp > spim bytereihenfolge.s
SPIM Version 7.3. of August 28, 2006
Copyright 1990-2004 by James R. Larus (larus@cs.wisc.edu).
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /usr/lib/spim/exceptions.s
little-endian
Wenn ich es jetzt versuche mit g(as), bekomme ich das:
Code:
21:03 RossTheBoss:~/Temp > as bytereihenfolge.s
bytereihenfolge.s: Assembler messages:
bytereihenfolge.s:0: Warning: end of file not at end of a line; newline inserted
bytereihenfolge.s:2: Error: unknown pseudo-op: `.half'
bytereihenfolge.s:3: Error: unknown pseudo-op: `.asciiz'
bytereihenfolge.s:4: Error: unknown pseudo-op: `.asciiz'
bytereihenfolge.s:7: Error: no such instruction: `lb $t0,x'
bytereihenfolge.s:8: Error: no such instruction: `lb $t1,x+1'
bytereihenfolge.s:9: Error: no such instruction: `addi $t2,$zero,0xCD'
bytereihenfolge.s:10: Error: no such instruction: `beq $t2,$t0,littleout'
bytereihenfolge.s:11: Error: no such instruction: `beq $t1,$t0,bigout'
bytereihenfolge.s:13: Error: no such instruction: `la $a0,little'
bytereihenfolge.s:14: Error: no such instruction: `li $v0,4'
bytereihenfolge.s:16: Error: no such instruction: `j end'
bytereihenfolge.s:18: Error: no such instruction: `la $a0,big'
bytereihenfolge.s:19: Error: no such instruction: `li $v0,4'
bytereihenfolge.s:21: Error: no such instruction: `j end'
bytereihenfolge.s:23: Error: no such instruction: `li $v0,10'
Stimmt da der Aufruf nicht, habe ich vergessen, ein Paket zu installieren, oder kennt g(as) die ganzen Befehle nicht? Wir haben uns halt immer an unser Skript gehalten, das sich nur auf (x)spim bezieht.
Als weitere Erfahrung kann ich sagen, xspim ist Dreck (sehr umständlich alles), spim in der Konsole geht. Wir haben jetzt aber auch noch nicht soviel gemacht. Sind grade am Anfang...
Schöne Grüsse