Forum Programowanie c++, delphi Ostatnio aktywny: Nigdy
Nie zalogowany [Zaloguj ]
Pokaż koniec
Wersja do druku | Zapisz | Dodaj do Ulubionych   Wyślij nową wiadomość Sonda:
Autor: Temat: [asembler, MIPS] Odwracanie ciągu znaków
szmitek
Newbie
*




Postów: 4
Zarejestrowano: 28-1-2009
Miasto: Chotomów
Offline


question.gif wysłano w 21-3-2010 o godz. 04:54 Odpowiedz cytując
[asembler, MIPS] Odwracanie ciągu znaków



Chciałbym napisać program asemblerze MIPS (dla SPIM), który będzie "przepuszczał" tylko znaki 0 - 9, a - f i A -F oraz będzie odwracał powstały ciąg znaków (tzn. zamiana miejscami pierwszego znaku z ostatnim, drugie z przedostatnim itd.). Napisany przeze mnie program poprawnie "przepuszcza znaki", ale nie odwraca ciągu:

Kod:

.globl main
.data
s1: .asciiz "01amFH"
.text
main:
la $a0, s1
jal stricnv
move $a0, $v0
li $v0, 4
syscall
li $v0, 10
syscall
stricnv:
move $v0, $a0
move $t0, $a0
chloop:
lb $t1, ($a0)
beqz $t1, exit
blt $t1, '0', skip
ble $t1, '9', store
blt $t1, 'A', skip
ble $t1, 'F', store
blt $t1, 'a', skip
bgt $t1, 'f', skip
store:
sb $t1, ($t0)
addi $t0, $t0, 1
skip:
addi $a0, $a0, 1
j chloop
exit:
sb $zero, ($t0)
move $a0, $v0
addi $t0, $t0, -1
loop:
lb $t1, ($a0)
beqz $t1, end
lb $t2, ($t0)
sb $t1, ($t0)
sb $t2, ($a0)
addi $a0, $a0, 1
addi $t0, $t0, -1
j loop
end:
jr $ra




Ciąg próbuje odwrócić po etykiecie loop. Dlaczego program wyświetla nie odwrócony ciąg? Co zrobić, aby został wyświetlony w konsoli odwrócony ciąg znaków?




Pokaż profil użytkownika Pokaż wszystkie wiadomości użytkownika Użytkownik U2U
Wyślij nową wiadomość Sonda:


Pokaż początek

Sitemap
Copyright © 2005-2007 by coding-portal.com
Programowaniedla każdego. Programowanie w c++, java, delphi, pascal, perl oraz innych językach. Tworzenie stron w html, xhtml, php z użyciem mysql, css oraz ich pozycjonowanie. Zapraszamy do udziału w życiu naszego forum!
[zapytań: 15]
[PHP: 76.3% - SQL: 23.7%]