brauche hilfe drigend !

saber_ab
Erstie
Erstie
Beiträge: 12
Registriert: 10. Nov 2006 22:24

brauche hilfe drigend !

Beitrag von saber_ab »

ich habe diese zeilen eifach geschrieben nur um zu versuchen ein buchstabe als ausgabe (in der console) zu bekommen.aber ich bekomme immer "(nul)".


.data
text1: .asciiz "ABCDE"
.text

main : li $t1,1

lb $t0,text1($t1)
j print

print : li $v0,4
move $a0,$t0
syscall
j ende

ende: li$v0 , 10
syscall

normaleweise sollte ich "B" bekommen , aber ich bekomme immer "(null)" , habe ich was falches gemacht ? Bitte helfen Sie mir :(

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Thorti »

Hallo,

schau dir nochmal genau an wie der Syscall 4 funktioniert.

Gruss Thorti
Assistent zur Vorlesung TGDI im WS 11/12

saber_ab
Erstie
Erstie
Beiträge: 12
Registriert: 10. Nov 2006 22:24

Beitrag von saber_ab »

ich habe geschaut , aber da sind nur wenige beispiele un die sehen genau so wie mein code.
so lange ich nichts ich mein Console kriege kannst überhaupt nicht weiter kommen mit meim praktikum .

Also ich bitte nochmal um hilfe...

7mSeni
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 185
Registriert: 4. Dez 2005 12:49

Beitrag von 7mSeni »

du musst in $v0 eine 1 laden, dann kannst du es als Integer ausgeben.


Gruss

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Thorti »

Hallo,
7mSeni hat geschrieben:du musst in $v0 eine 1 laden, dann kannst du es als Integer ausgeben.
Jo, aber ob es das ist was er möchte...
Zur Stringausgabe: in $a0 muss nicht das Zeichen selbst, sondern die Adresse des Zeichens stehen.

Gruss Thorti
Assistent zur Vorlesung TGDI im WS 11/12

Benutzeravatar
plane
Computerversteher
Computerversteher
Beiträge: 337
Registriert: 21. Okt 2005 00:18

Beitrag von plane »

.data

input: .asciiz "ABCDE"
temp: .asciiz " "
komma: .asciiz "|"

.text


main:

li $t0, 0

schleife:


li $v0,4
la $a0, komma
syscall

lb $t1, input($t0)

sb $t1, temp($zero)
li $v0,4
la $a0, temp
syscall

add $t0, $t0, 1

beq $t1, $zero, exit

j schleife

exit:

j $ra


das ganze ergibt:

|A|B|C|D|E|

ich hoffe ich konnte dir helfen...

gelo
Erstie
Erstie
Beiträge: 14
Registriert: 16. Dez 2004 17:20

Beitrag von gelo »

wie wandel ich am einfachsten dezimalzahlen in ascii zeichen um (bei der ausgabe)
Coden der Barbar

7mSeni
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 185
Registriert: 4. Dez 2005 12:49

Beitrag von 7mSeni »

am besten du speichertst die Zahl, die du umwandeln willst im Datenbereich ab. Dann kannst du mit einem label an die addresse des Datenbereiches kommen und somit mit einem syscall ausgeben.

Schau dir den Code vor deinem Post an. Da steht es eigentlich schon drinn.


Gruss

rick
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 105
Registriert: 17. Jan 2006 23:20

Beitrag von rick »

gelo hat geschrieben:wie wandel ich am einfachsten dezimalzahlen in ascii zeichen um (bei der ausgabe)
umwandeln musst du es nicht - das macht spim für dich:

so gibts du zum Beispiel den Buchstaben a aus, der als Zahl im Speicher liegt:

Code: Alles auswählen

.data
letter: .word 97  # 97 = ascii-wert von 'a'

.text
main:
la $a0, letter
li $v0, 4
syscall

Antworten

Zurück zu „Archiv“