.data
bletter:.asciiz
"Alpha ","Bravo ","China ","Delta ","Echo ","Foxtrot ","Golf ","Hotel ","India ",
"Juliet ","Kilo ","Lima ","Mary ","November ","Oscar ","Paper ","Quebec ","Research ",
"Sierra ","Tango ","Uniform ","Victor ","Whisky ","X-ray ","Yankee ","Zulu "
bltr_offset: .word
0,7,14,21,28,34,43,49,56,63,71,77,83,89,99,106,113,121,131,139,146,155,163,171,178,186
number: .asciiz
"zero ","First ","Second ","Third ","Fourth ","Fifth ","Sixth ","Seventh ","Eighth ","Ninth "
num_offset: .word
0,6,13,21,28,36,43,50,59,67
sletter:.asciiz
"alpha ","bravo ","china ","delta ","echo ","foxtrot ","golf ","hotel ","india ",
"juliet ","kilo ","lima ","mary ","november ","oscar ","paper ","quebec ","research ",
"sierra ","tango ","uniform ","victor ","whisky ","x-ray ","yankee ","zulu "
sltr_offset:.word
0,7,14,21,28,34,43,49,56,63,71,77,83,89,99,106,113,121,131,139,146,155,163,171,178,186
.text
.globl main
main: li $v0, 12 #read character
syscall #load argument values
sub $t0,$v0,63 #"?"
beqz $t0,exit
sub $t0,$v0,48 # < '0'
bltz $t0,other
sub $t1,$t0,10 #'0'<= val <= '9'
bltz $t1,num
sub $t1,$t0,17 #'9' < val < 'A'
bltz $t1,other
sub $t2,$t1,26 #'A' < val < 'Z'
bltz $t2,bltr
sub $t3,$t2,6 #'Z' < val < 'a'
bltz $t3,other
sub $t3,$t2,32 #'a' < val < 'z'
bltz $t3,sltr
num: add $t1,$t1,10
sll $t1,$t1,2 # ,居然也算一位
la $s0,num_offset
add $s0,$s0,$t1
lw $s1,($s0)
la $a0,number
add $a0,$a0,$s1
li $v0,4 #print string
syscall
j main
bltr: sll $t1,$t1,2
la $s0,bltr_offset
add $s0,$s0,$t1
lw $s1,($s0)
la $a0,bletter
add $a0,$a0,$s1
li $v0,4
syscall
j main
sltr: add $t3,$t3,26
sll $t3,$t3,2
la $s0,sltr_offset
add $s0,$s0,$t3
lw $s1,($s0)
la $a0,sletter
add $a0,$a0,$s1
li $v0,4
syscall
j main
other: li $a0,42
li $v0,11
syscall
j main
exit: li $v0,10
syscall
计组第3周互评作业1
最新推荐文章于 2021-07-21 19:33:10 发布