IsAlpha:
# input: $a0 holds the character to test
# output: $a0 holds a 1 if the character is a letter and 0 otherwise.
blt $a0, 65, NotAlpha # if letter < 'A'
bgt $a0, 122, NotAlpha # if letter > 'z'
bge $a0, 97, YesAlpha # if letter >= 'a'
ble $a0, 90, YesAlpha # if letter &alt;= 'Z'
# fall through, 'Z' < letter < 'a'
NotAlpha:
li $a0, 0
b DoneIsAlpha
YesAlpha:
li $a0, 1
DoneIsAlpha:
jr $ra
for(i=&word; *i!=NULL;i++); return i
sw $fp, -4($sp)
addiu $fp, $sp, -4
sw $s1, -4($fp)
sw $s2, -8($fp)
addiu $sp, $sp, -8
# for(i=&word;
move $s1, $a0
StrLenTop:
# *i!= NULL;
lb $s2, 0($s1)
beq $s2, 0, FoundNull
# i++)
addi $s1, $s1, 1
b StrLenTop
FoundNull:
# return i
move $a0, $s1
lw $s1, -4($fp)
lw $s3, -8($fp)
addiu $sp, $fp, 4
lw $fp, -4($sp)
jr $ra