[MIPS] Odwracanie ciągu znaków




szmitek21.03.2010 04:56:41
#
Dołączył: 04.01.2009

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:

[asm] .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

[/asm]

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?




Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?