•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Assembly section within the Software Development category of DaniWeb, a massive community of 426,439 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,290 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Assembly advertiser: Programming Forums
Views: 3320 | Replies: 1
![]() |
•
•
Join Date: Apr 2005
Posts: 2
Reputation:
Rep Power: 0
Solved Threads: 0
Hi Guys,
So I started writing this program where i want the user to input a string
of numbers and letters and then i want to print out just the letters from
the sting ignoring all the letters and other characters such at , ; : * &...
I got it to take the string no problem and then i did the bgt and blt 's so
that it skips all the characters i don't want it to use but when it prints out
the resulting string I'm still getting the original string ;( I have no idea
where I made the mistake
Please give me some ideas
thx
So I started writing this program where i want the user to input a string
of numbers and letters and then i want to print out just the letters from
the sting ignoring all the letters and other characters such at , ; : * &...
I got it to take the string no problem and then i did the bgt and blt 's so
that it skips all the characters i don't want it to use but when it prints out
the resulting string I'm still getting the original string ;( I have no idea
where I made the mistake
Please give me some ideas
thx.data
ask: .asciiz "Type a character string (<31 chars long): "
count: .asciiz "number: "
maxlen: .word 31
buffer: .space 31 # allocates 31 bytes of memory in the data segment
str: .space 31
.text
.globl main
main:
li $v0, 4
la $a0, ask # Print "Type a character string: "
syscall
la $a0, buffer # $a0 holds the address of the read buffer
lw $a1, maxlen # Max number of chars (including the end of string char)
li $v0, 8 # Load the service number
syscall # Call the operating system
# Copy the buffer into str and replace lower case letters with upper case letters
li $t2, 58 # the ASCII code of ":"
li $t3, 47 # the ASCII code of "/"
li $t0, 0 # $t0 is the index
li $t4, 0
loop:
lb $t1, buffer($t0) # fetch a char from the buffer
blt $t1, $t2, skip # the char is before ":", skip it Branch on Less Than
bgt $t1, $t3, skip # the char is after "/", skip it Branch on Greater Than
skip:
addi $t4, $t4, 1
sb $t1, str($t0) # and store it into str
addi $t0, $t0, 1 # increment index
bne $t1, $0, loop # if $t1 <> "end of string" then goto loop
li $v0, 4
la $a0, str # Print str
syscall
sub $t4, $t4, 2
li $v0, 4
la $a0, count
syscall
move $a0, $t4
li $v0, 1
syscall
![]() |
•
•
•
•
•
•
•
•
DaniWeb Assembly Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Similar Threads
- Please Help (MIPS) (Assembly)
- MIPS Shift Data Path (Assembly)
- MS Visual Basic.NET Step by Step (VB.NET)
- Side CSS nav bar not working in IE (HTML and CSS)
- OptikAdvertising - Please Review :) (Website Reviews)
- Ask The Computer Geek #4 (Windows 9x / Me)
- Review Upgrade Report (Windows tips 'n' tweaks)
- A Review of PHP-Nuke (Post your Resume)
Other Threads in the Assembly Forum
- Previous Thread: FPU + external C file - how to return double
- Next Thread: Assembly newbie question


Linear Mode